Skip to main content
Request example
Response example
POST /api/external/vaults/

Request body

string
required
Vault name. Cannot be blank. Naming it “NGN” does not set its asset; asset is not a create input.
string
Sub-org that owns the vault.
string[]
Requested wallet chains. Use identifiers from Assets and Chains.
boolean
Creates a testnet vault when supported. Default: false.
string[]
Organization-scoped vault groups to attach.

Response

Returns the new Vault. Wallet addresses can be generated after the response, so retrieve the vault until walletsGenerated is true before using them.
string
Vault ID.
string
Organization that owns the vault.
string
Sub-org that owns the vault, if any.
string
Vault name.
VaultType
DEFAULT, EXCHANGE, or GAS. See VaultType.
string | null
Currency of a multi-currency account vault, for example NGN. null for self-custody vaults.
object[]
Blockchain wallets in the vault.
boolean
Whether wallet addresses are ready. Wait for true before using wallets.
string
Creation timestamp (ISO 8601).
string
Last update timestamp (ISO 8601).
boolean
Whether the vault is deleted.

Approve the vault

Creating a vault opens a change request that your API user must approve. Call Get Approval Message with entityId set to the vault id, sign the message, and send the signature to Submit Approval Action. See Approvals for the full flow. With the SDK, approve separately or in one call:
After approval, retrieve the vault until walletsGenerated === true before using its wallet addresses. Approval does not make wallet generation synchronous.
Request example
Response example