Skip to content

How to issue a native token

Goal: create a fungible token on ACE and mint an initial supply, using only the public RPC surface.

Endpoints: public testnet https://testnet.acechain.io/rpc, or a local node at http://127.0.0.1:18545. Both use chain-id 122766.

1. Choose parameters

ParameterNotes
symbolDisplay ticker.
decimals≤ 10. Native mint supply is u64 (max ≈1.8e19); total_tokens × 10^decimals must fit. 9 is the canonical choice; 6 is common.
mint_id32-byte on-chain token identifier you choose (e.g. a hash).

2. Build → sign → submit (CreateMint)

ace_buildTokenCreate(mint_id_hex, decimals)   → { payload_hex, mint_id_hex }

Sign the attestation over SHA256(payload) with Domain(chain_id, slot), then:

ace_submitSignedPayload(idcom_hex, payload_hex, credential_hex, pubkey_hex,
                        chain_id, slot, null)

The signer becomes the mint authority.

3. Mint supply (MintToOwner)

ace_buildTokenMint(mint_id_hex, owner_idcom_hex, amount)  → { payload_hex }

Sign and submit the same way. Only the mint authority's signature is accepted.

Notes

  • The build methods only encode the canonical 0x20 SVM-invoke payload; the node never signs. Hex arguments accept an optional 0x prefix.
  • For brand-new tokens use a native mint, not an oAsset — oAssets are bridge-backed and can only be minted by real cross-chain deposits.

Released under the Apache-2.0 License · Testnet · GitHub