op_jwt — a short-lived JWT (max 5 minutes) — along with the access_key returned at wallet creation. The Nitro Enclave verifies the JWT offline, then strictly matches iss and sub against the wallet’s identity binding before authorizing the operation.
sign_data and sign_transaction are for EVM wallets. sign_message accepts a raw base64-encoded message and is designed for Solana wallets. There is no personal_sign or sign_typed_data endpoint — for EVM typed-data signing, pre-hash with keccak256 and use sign_data.Transaction Signing
Sign transaction payloads for different blockchain networks. The payload format varies by network type.EVM Transaction Signing
Sign Ethereum and EVM-compatible chain transactions.cURL
Solana Transaction Signing
Sign Solana blockchain transactions.cURL
Bitcoin Transaction Signing
Sign Bitcoin blockchain transactions.cURL
Request Parameters
string
required
Body
Short-lived JWT (max 5 minutes) for the user performing the operation. Verified inside the enclave against the wallet’s identity binding.
string
required
Body
The UUID of the wallet to sign with.
string
required
Body
The access key returned from wallet creation. Retrieve from your database.
object
required
Body
Transaction payload to be signed. Format varies by network:
- EVM: Standard Ethereum transaction object
- Solana: Base64-encoded transaction string
- Bitcoin: Object with inputs and outputs arrays
Response Fields
string
The signed transaction ready for broadcast to the blockchain.
string
The transaction hash that will be generated when the transaction is submitted to the network.
Message Signing
Sign Data
Sign arbitrary data using keccak256 hash (EVM only).cURL
Request Parameters
string
required
Body
Short-lived JWT (max 5 minutes) for the user performing the operation.
string
required
Body
The UUID of the wallet to sign with.
string
required
Body
The access key returned from wallet creation. Retrieve from your database.
string
required
Body
The keccak256 hash of the data to sign.
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 Message (Solana)
Sign an arbitrary message using a Solana wallet.cURL
Request Parameters
string
required
Body
Short-lived JWT (max 5 minutes) for the user performing the operation.
string
required
Body
The UUID of the wallet to sign with.
string
required
Body
The access key returned from wallet creation. Retrieve from your database.
string
required
Body
The message to be signed, encoded in base64.
Response Fields
string
The signature in base64 format.
v1 Wallet Migration
If you have existing v1 wallets, they are migrated to v2 on first use. Includeencryption_context alongside op_jwt and access_key on the first v2 operation for that wallet. The enclave will re-key the wallet to v2 JWT binding as a side effect, and subsequent operations will not require encryption_context.
string
Body
Required only when migrating a v1 wallet on first v2 use. The original encryption context used during v1 wallet creation.
After the first successful v2 operation, the wallet is permanently migrated and
encryption_context is no longer accepted or needed.