Skip to main content
POST
Co-sign enclave-built confidential-transfer transactions

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

environmentId
string
required

ID of the environment

Required string length: 36
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"95b11417-f18f-457f-8804-68e361f9164f"

walletId
string
required

UUID of the wallet

Required string length: 36
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"95b11417-f18f-457f-8804-68e361f9164f"

Body

application/json
solanaAddress
string
required

Solana address (base58 public key) the confidential transfer signs for. Must match the wallet bound by transactionsTag.

Pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
serializedTransactions
string[]
required

The single Base64-encoded v1 transaction returned by POST /waas/{walletId}/signConfidentialTransfer, unchanged.

Required array length: 1 element
transactionsTag
string
required

The transactionsTag returned alongside serializedTransactions. The enclave verifies the tag and the message hashes it binds before co-signing: it refuses tampered, reordered, extra or expired transactions.

chainId
string

SVM cluster identifier (genesis hash) — a sanity check against the tag's binding.

Response

The MPC room id for the operation

roomIds
string[]
required

The MPC signing ceremony room for the operation — v1 packs it into one transaction, so exactly one room. Join it with the wallet's client share to complete the threshold signature.

Required array length: 1 element