Skip to main content
POST
Create a new wallet

Authorizations

x-api-key
string
header
required

Headers

x-idempotency-key
string<uuid>
required

Unique key (UUID) to ensure request idempotency on POST, PUT and PATCH requests.

A key is scoped to your client, the HTTP method and the path, and is remembered for 24 hours after a successful (below 400) response. Repeating the same request (same JSON body, whatever the key order or whitespace) with the same key within that window returns the original response with X-Idempotent-Replayed: true instead of executing the request again. Using the same key on the same endpoint with a different body returns 422 with problem type idempotency-key-reused; the request is not executed. Error responses (4xx and 5xx) are not remembered, so a request refused for a fixable reason can be corrected and retried under the same key. Request bodies that are not JSON (for example file uploads) are not compared.

Body

application/json

Request to create a new non-custodial wallet

signer_groups
string[]
required

Array of signer group ids to attach to the wallet.

policies
string[]
required

Array of policy ids to attach to the wallet.

family
enum<string>
required

Blockchain family for the crypto account.

Available options:
evm,
solana
Example:

"evm"

name
string
required

Name of the wallet

customer_id
string

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

external_id
string

Your own label for this wallet in your system, for your own lookups and reconciliation. Not unique: Dakota does not reject a duplicate, and several wallets can share one value.

Maximum string length: 255
Pattern: ^[^\x00-\x1f]*$
Example:

"treasury-wallet-1"

Response

Wallet created successfully

Non-custodial wallet managed by Dakota Platform with a single address usable across networks within the same family.

id
string
required

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

client_id
string
required

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

family
enum<string>
required

Blockchain family for the crypto account.

Available options:
evm,
solana
Example:

"evm"

address
string
required

The wallet address, same across all networks within the same family

Example:

"0x165cd37b4c644c2921454429e7f9358d18a45e14"

name
string
required

The wallet name

Example:

"My Wallet"

external_id
string

Your own label for this wallet in your system, for your own lookups and reconciliation. Not unique: Dakota does not reject a duplicate, and several wallets can share one value.

Example:

"treasury-wallet-1"

customer_id
string

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

customer_name
string | null

Customer name joined server-side. Populated on GET responses; omitted from create responses.

created_at
integer

Created-at unix timestamp. Populated on GET responses.

card_enabled
boolean

Whether the wallet has an active card-settlement enablement, the precondition for issuing cards against it.