Protocol Info

Tokens

  • Acala Token
    • Name: Acala
    • Symbol: ACA
    • Decimal: 12
    • Total Fixed Supply: 1,000,000,000
    • Token type: Native / Tokens(ACA)
    • Check balance: system.account
  • Acala USD
    • Name: Acala USD
    • Symbol: aUSD
    • Decimal: 12
    • Token type: Tokens(AUSD)
    • Check balance: tokens.accounts
    • Total issuance: tokens.totalIssuance
  • Liquid DOT:
    • Name: Liquid DOT
    • Symbol: LDOT
    • Decimal: 10
    • Token type: Tokens(LDOT)
    • Check balance: tokens.accounts
    • Total issuance: tokens.totalIssuance
  • Liquid Crowdloan DOT
    • Name: Liquid Crowdloan DOT
    • Symbol: LCDOT
    • Decimal: 10
    • Token type: LiquidCrowdloan(13)
    • Check balance: tokens.accounts
    • Total issuance: tokens.totalIssuance

Account

Address Format

Acala uses the SS58 (Substrate) address format. Relevant SS58 prefixes are:

Existential Deposit

Acala uses an existential deposit (ED) to prevent dust accounts from bloating state. If an account drops below the ED, it will be removed from this account and be donated to the Treasury.
ED of native token ACA is configured in the runtime. Non-native tokens (DOT, aUSD, BTC etc) can be queried via SDK. The amount of ED can only be decreased, not increased, therefore it often starts with a higher number.
transfer and deposit in pallet_balances and orml_tokens will check the ED of the receiver account. A transaction may fail due to not meeting ED requirements, a typical one would be a user is swapping token A for token B, where token A balance no longer meets ED requirements. A front-end DApp shall perform checks and prompt user for such incidents.
Read more on ED here.

Protocol Fees

  • Mint aUSD with DOT & lDOT:
    • Liquidation penalty: 12%
    • Stability Fee: 3%

Transaction Fees

Acala uses weight-based fees, unlike gas, are predictable and charged pre-dispatch. See the transaction fee page for more info.

Types

Type definitions allow the SDK to know how to serialize / deserialize blocks, transactions and events.
Acala's type definition bundle can be found here.

MultiLocation

You can use these MultiLocation to add Karura token assets to other parachains foreign token list.
aUSD:
{ "parents": 1, "interior": { "X2": [{ "Parachain": 2000 }, { "GeneralKey": [0, 1] } ]}}
LDOT:
{ "parents": 1, "interior": { "X2": [{ "Parachain": 2000 }, { "GeneralKey": [0, 3] } ]}}
ACA:
{ "parents": 1, "interior": { "X2": [{ "Parachain": 2000 }, { "GeneralKey": [0, 0] } ]}}

JS SDK

Please also refer to the documentation of polkadot.js.