Skip to main content

Entities

An entity is one customer — a person or a business. It carries your own externalId (so you never have to store KeyPair’s id as the source of truth) and a status: active, frozen, or closed. An entity holds no balance itself — it’s the record a customer’s accounts hang off.

Accounts

An account is one entity’s balance in one asset — USDC_TRON and USDC_ETH are two different accounts, even though both are “USDC” to you. This is deliberate: a customer’s Tron balance and Ethereum balance never move together, because they never touch the same chain. Open an account explicitly before a customer can hold that asset, or implicitly the first time you issue them a deposit address for it.

Addresses

A deposit address is issued per account, or per payment for a one-time-use address that ties a specific deposit to a specific order — useful when several customers might otherwise pay into the same shared address and you need to attribute each one.
Addresses are cheap to issue and never expire on their own. Issuing a new one for a customer does not invalidate the old one — funds sent to either still land in the same account.

Transactions

A transaction moves a signed amount between two accounts — the sum across every leg is always zero, per currency. There is no such thing as a transaction that only credits or only debits: money that appears from nowhere is exactly what the ledger exists to make impossible. Deposits and withdrawals are transactions too, just with one leg on a system account that represents the chain itself.