Skip to main content
POST
Server — 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.

Headers

x-dyn-server-signing-proof
string

Request proof: a compact ES256 JWS, signed with the server's registered key, binding this request to a single-use nonce from GET /nonces. The JWS header is RequestSigningProofHeader and its payload is RequestSigningProofPayload. Required when the request carries a DYN API token and no JWT, and a server signer with a registered key controls the resource. A proof that is present is always verified.

Maximum string length: 4096
Pattern: ^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$

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