Skip to main content
POST
/
api
/
v1
/
wallets
Create wallet
curl --request POST \
  --url https://api.paratro.com/api/v1/wallets \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "wallet_name": "<string>",
  "description": "<string>"
}
'
{
  "wallet_id": "wal_a1b2c3d4e5f6",
  "client_id": "cli_x1y2z3",
  "wallet_name": "Treasury Wallet",
  "status": "PROGRESSING",
  "key_status": "GENERATING",
  "created_at": "2026-01-15T10:30:00Z",
  "updated_at": "2026-01-15T10:30:00Z",
  "description": "Main treasury wallet for operations."
}

Create Wallet

Create a new MPC wallet. The wallet’s key shares will be generated asynchronously (key_status: "GENERATING"). Wait until both status and key_status become ACTIVE before creating accounts or initiating transfers with this wallet.
wallet_name
string
required
Wallet display name (1-100 characters).
description
string
Optional description (max 500 characters).

Response

{
  "wallet_id": "w_01HXYZ...",
  "client_id": "c_01HXYZ...",
  "wallet_name": "My Wallet",
  "description": "Optional description",
  "status": "PROGRESSING",
  "key_status": "GENERATING",
  "created_at": "2025-01-15T10:30:45+08:00",
  "updated_at": "2025-01-15T10:30:45+08:00"
}

Errors

HTTPCodeCondition
400invalid_parameterInvalid request body
400wallet_limit_reachedClient wallet limit exceeded
500internal_errorCreation failed

Authorizations

Authorization
string
header
required

JWT access token obtained from the /api/v1/auth/token endpoint.

Body

application/json
wallet_name
string
required

A human-readable name for the wallet.

Required string length: 1 - 100
description
string

Optional description for the wallet.

Maximum string length: 500

Response

Wallet created successfully.

wallet_id
string
required

Unique identifier for the wallet.

Example:

"wal_a1b2c3d4e5f6"

client_id
string
required

The client ID that owns this wallet.

Example:

"cli_x1y2z3"

wallet_name
string
required

Human-readable name for the wallet.

Example:

"Treasury Wallet"

status
string
required

Wallet lifecycle status returned by the gateway, for example PROGRESSING or ACTIVE.

Example:

"PROGRESSING"

key_status
string
required

Key lifecycle status returned by the gateway, for example GENERATING or ACTIVE.

Example:

"GENERATING"

created_at
string<date-time>
required

Timestamp when the wallet was created.

Example:

"2026-01-15T10:30:00Z"

updated_at
string<date-time>
required

Timestamp when the wallet was last updated.

Example:

"2026-01-15T10:30:00Z"

description
string | null

Optional description of the wallet.

Example:

"Main treasury wallet for operations."