Smart Contract Dapps deployed in Acala EVM can directly use native and cross-chain assets such as DOT, ACA, aUSD, renBTC, etc. ERC-20 tokens deployed in EVM can also be made available at runtime level, to be listed in the DeX, or (by governance approval) to be used as fee tokens. Read more here.
ERC20 Contract Addresses
Token Ticker
ER20 Address
ACA
0x0000000000000000000000000000000001000000
AUSD
0x0000000000000000000000000000000001000001
DOT
0x0000000000000000000000000000000001000002
LDOT
0x0000000000000000000000000000000001000003
XBTC
0x0000000000000000000000000000000001000004
RENBTC
0x0000000000000000000000000000000001000005
POLKABTC
0x0000000000000000000000000000000001000006
PLM
0x0000000000000000000000000000000001000007
PHA
0x0000000000000000000000000000000001000008
HDT
0x0000000000000000000000000000000001000009
KAR
0x0000000000000000000000000000000001000080
KUSD
0x0000000000000000000000000000000001000081
KSM
0x0000000000000000000000000000000001000082
LKSM
0x0000000000000000000000000000000001000083
SDN
0x0000000000000000000000000000000001000087
Oracle
0x0000000000000000000000000000000000000801
Schedule
0x0000000000000000000000000000000000000802
Contract Methods
// Returns the currencyId of the token.
function currencyId() public view returns (uint256);
// Returns the name of the token.
function name() public view returns (string memory);
// Returns the symbol of the token, usually a shorter version of the name.
function symbol() public view returns (string memory);
// Returns the number of decimals used to get its user representation.
function decimals() public view returns (uint8);
// Returns the amount of tokens in existence.
function totalSupply() public view returns (uint256);
// Returns the amount of tokens owned by `account`.
function balanceOf(address account) public view returns (uint256);
// Moves `amount` tokens from the caller's account to `recipient`.
// Returns a boolean value indicating whether the operation succeeded.
// Emits a {Transfer} event.
function transfer(address recipient, uint256 amount) public returns (bool);
// Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}.
// This is zero by default.
function allowance(address owner, address spender) public view returns (uint256);
// Sets `amount` as the allowance of `spender` over the caller's tokens.
// Returns a boolean value indicating whether the operation succeeded.
function approve(address spender, uint256 amount) public returns (bool);
// Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance.
// Returns a boolean value indicating whether the operation succeeded.
function transferFrom(address sender, address recipient, uint256 amount) public returns (bool);
// Atomically increases the allowance granted to `spender` by the caller.
// This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}.
// Emits an {Approval} event indicating the updated allowance.
function increaseAllowance(address spender, uint256 addedValue) public returns (bool);
// Atomically decreases the allowance granted to `spender` by the caller.
// This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}.
// Emits an {Approval} event indicating the updated allowance.
function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool);