Skip to content

Create wallets ​

Use createDigitalWallet with an authenticated platform user. Choose a wallet type supported by your deployment and provide its required options.

Card partners provision collateral wallets through their card application flow.

Create a wallet ​

graphql
mutation CreateWallet($walletTypeId: Int!, $label: String!, $options: CreateDigitalWalletTypeSpecificOptions) {
  createDigitalWallet(input: { label: $label, walletTypeId: $walletTypeId, walletTypeSpecificOptions: $options }) {
    digitalWallet {
      id
      label
      walletTypeId
      nativeDepositAddress
    }
    activationCode
    backupCardPdf
    errors
    warnings
  }
}

Use the configured type ID in walletTypeId. Type-specific options are defined by CreateDigitalWalletTypeSpecificOptions in the Platform schema browser.

The created wallet is returned in digitalWallet. Check errors, warnings, and whether a wallet was returned before proceeding. When the response includes a backup PDF or activation code, follow the provider's recovery and activation procedure.

Smart wallets ​

The platform can provision a smart wallet on the server when the required smart wallet account options are absent. Organization provisioning can be paused by deployment configuration; in that case, the mutation returns a warning and no wallet.

Use the configured chain and wallet options for your application rather than assuming that all wallet types share the same provisioning requirements.

Creation failures ​

Wallet creation can be blocked by an incomplete risk declaration, a pending risk review, a creation rate limit, or a provider failure. Display the returned error and resolve its cause before retrying.

New hot wallet creation is disabled. Existing hot wallets retain their signing support.

Verify creation ​

Read the returned digitalWallet.id and use it in the wallet balance queries. Once funded, the wallet can be used for transfers and swaps supported by its provider.