Skip to main content
AccountCore holds assets and records balances by numeric account ID. Read Accounts for the user-facing model first. All snippets here use the reviewed SDK release.

Register and fund a root

depositToOwner can register an owner that has no root yet. deposit({ rootAccountId, token, amount }) funds an existing root. Anyone can pay, but the payer receives no account authority. A child ID is rejected. Native MON uses NATIVE_TOKEN_ADDRESS; the request builder attaches the transaction value.

Read balances

These methods accept root or child IDs. Passive inventory is accounted for separately. IDs are bigint at the SDK boundary; token amounts are raw token units.

Transfer within a family

The same call handles child-to-root and sibling transfers. Both IDs must share a root. The caller must be the owner or have INTERNAL_TRANSFER, WITHDRAW, or ADMIN authority. Transfer only free balance.

Withdraw to a wallet

Withdrawals accept only a root ID and require an explicit external recipient. A successful return from the SDK is a transaction hash: await and check its receipt. Pricing, capacity, freezes, balance, and permission checks still apply. See WithdrawalLimiter.

Signers and builders

Signer administration identifies the root by its owner address:
This grant covers every account in the family. See Signer Reference for implied permissions and authorization epochs. Builder approvals are root-wide. Positive builder fees credit the builder’s ordinary root free balance, registering the root if needed. There is no separate claimable-fee ledger or claim method; builders use ordinary root withdrawals.