Skip to main content
Express API v1 will be retired on July 31, 2026. After that date, /v1/ endpoints will stop working. Wallets that have not been migrated to v2 by that date will be permanently inaccessible. See the migration guide.

Wallet Management

Get or Create Wallet

Get or create a wallet for the authenticated user and return its public address. If a wallet doesn’t exist for the user, one is created automatically and cryptographically bound to the user’s JWT identity.
cURL
Response:

Request Parameters

string
required
Header
The blockchain to create the wallet for. Available values: ETH, SOL, BTC

Response Fields

string
The wallet’s public address on the specified blockchain.
Each user can have one wallet per blockchain. Calling this endpoint multiple times with the same user and chain will return the same wallet address.

Signing Operations

All signing operations use the Authorization: Bearer JWT as the operation JWT (op_jwt). The Nitro Enclave verifies this JWT offline against JWKS baked into the enclave image and confirms the caller’s identity matches the wallet’s owner before authorizing the operation.

Sign Data

Sign a hash of arbitrary data using the wallet’s private key. Useful for signing transaction data, typed data, or any structured information.
cURL
Response:

Request Parameters

string
required
Header
The blockchain to sign for. Available values: ETH, SOL, BTC
string
required
Body
The keccak256 hash of the data to sign (hex string with 0x prefix).

Response Fields

string
The hash that was signed.
string
The complete signature in hex format.
string
The r component of the ECDSA signature.
string
The s component of the ECDSA signature.
string
The recovery parameter of the ECDSA signature.

Sign EIP-7702 Authorization

Sign an EIP-7702 authorization that delegates an EOA to a smart contract implementation. This is used to temporarily upgrade an EOA into a smart wallet for a transaction bundle, enabling features like batched calls and gas sponsorship.
cURL
Response:

Request Parameters

string
required
Header
The blockchain to sign for. Available values: ETH, SOL, BTC
number
required
Body
The chain ID for the authorization (e.g., 84532 for Base Sepolia).
string
required
Body
The smart contract address to delegate to (20-byte hex string).
number
required
Body
The authorization nonce.

Response Fields

string
The r component of the ECDSA signature (decimal string).
string
The s component of the ECDSA signature (decimal string).
number
The y-parity bit (0 or 1) used for EIP-7702 signature recovery.

Sign Message

Sign an arbitrary message using the wallet’s private key. Useful for authentication, off-chain verification, and personal signatures.
cURL
Response:

Request Parameters

string
required
Header
The blockchain to sign for. Available values: ETH, SOL, BTC
string
required
Body
The message to sign, encoded as base64.

Response Fields

string
The complete signature in hex format.
string
The r component of the ECDSA signature.
string
The s component of the ECDSA signature.
string
The recovery parameter of the ECDSA signature.