POST /accounts
Register an account commitment on-chain. Must be called before an account can send or receive transfers.What an account commitment is
An account commitment isH(wallet_address) — a one-way hash of the wallet address.
It is the public on-chain identifier for an account. The wallet address itself never
appears on-chain or in any API response.
The account can hold balances across multiple assets. Each (account_commitment, asset_id)
pair has an independent AccountRecord.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
account_commitment | string | yes | H(wallet_address) using SHA-256 |
wallet_proof | bytes | yes | ECDSA signature proving ownership of the wallet |
Deriving the account commitment
Signing the wallet proof
Thewallet_proof is an ECDSA signature over the canonical registration message:
Response
Errors
| Status | Error | Cause |
|---|---|---|
| 400 | missing account_commitment | Required field absent |
| 400 | missing wallet_proof | Required field absent |
| 400 | invalid wallet_proof | Signature does not verify against commitment |
| 409 | account already registered | Commitment already exists on-chain |