The short answer is:
You should go and find one exchange lists your tokens and trade them to get back your ethers.
The long answer is below:
Ether is converted to an ERC-20 token (like BAT), via a smart contract.
In fact, i's not a conversion.
According to https://ethereum.org/ether, ether is a fuel for operating the distributed application platform Ethereum (or we can say that ether is the native currency on Ethereum), and it doesn't conform to ERC20 standard. (That's why we need something like weth).
ERC20 tokens are just smart contracts (or dumb programs can get and set states on Ethereum) that confrom to ERC20 standard.
If you read the source code of BAT token contract, you will find a method called createTokens
:
/// @dev Accepts ether and creates new BAT tokens.
function createTokens() payable external {
if (isFinalized) throw;
if (block.number < fundingStartBlock) throw;
if (block.number > fundingEndBlock) throw;
if (msg.value == 0) throw;
uint256 tokens = safeMult(msg.value, tokenExchangeRate); // check that we're not over totals
uint256 checkedSupply = safeAdd(totalSupply, tokens);
// return money if something goes wrong
if (tokenCreationCap < checkedSupply) throw; // odd fractions won't be found
totalSupply = checkedSupply;
balances[msg.sender] += tokens; // safeAdd not needed; bad semantics to use here
CreateBAT(msg.sender, tokens); // logs token creation
}
So the process is basically like this:
- You send or transfer the ethers to the contract. (Note: These ethers are no longer owned by you!)
- the contract mutilply
the ethers with
tokenExchangeRate
, which is predefined with 6400, as your token balance.
- the contract records the token balance for the address (where you sent the ether).
- If
finalize
called, all the ethers owned by the contact will be sent to ethFundDeposit
, which is 0x88e2efac3d2ef957fcd82ec201a506871ad06204
, a Multi-sig Wallet owned by Brave International (Source here: https://etherscan.io/token/BAT#readContract)
In this case, you can't convert BAT tokens back to ethers since the crowd sale was finalized and the refund
method won't be executed:
/// @dev Allows contributors to recover their ether in the case of a failed funding campaign.
function refund() external {
if(isFinalized) throw; // prevents refund if operational
if (block.number <= fundingEndBlock) throw; // prevents refund until sale period is over
if(totalSupply >= tokenCreationMin) throw; // no refunds if we sold enough
if(msg.sender == batFundDeposit) throw; // Brave Intl not entitled to a refund
uint256 batVal = balances[msg.sender];
if (batVal == 0) throw;
balances[msg.sender] = 0;
totalSupply = safeSubtract(totalSupply, batVal); // extra safe
uint256 ethVal = batVal / tokenExchangeRate; // should be safe; previous throws covers edges
LogRefund(msg.sender, ethVal); // log it
if (!msg.sender.send(ethVal)) throw; // if you're using a contract; make sure it works with .send gas limits
}
So if you don't want these tokens, you have to trade them to get back your ethers on some exchanges (lists your tokens).