Networks
The payload field selects the network.
chainId is ignored for these transaction payloads.
Examples use API client signing.
Signing request types
To sign transactions you build yourself or messages you format yourself, use raw signing.
Wallet
Create a wallet withnetworkType: "NETWORK_TYPE_SOLANA". Fund it with SOL for transfers, transaction fees and any token-account creation, plus the token balance for token transfers.
For Sonic SVM, fund the wallet on Sonic SVM and use its native fee balance and token mints.
Send SOL
This Solana Mainnet example sends0.01 SOL.
CreateSigningRequest
value is an integer string in lamports: 1 SOL = 1,000,000,000 lamports. to is a wallet address, rather than an SPL token account.
Send USDC
ReplacesolanaSendNative with this payload in the same request. This example sends 1 USDC on Solana Mainnet.
amount: "1000000" sends 1 USDC (six decimals). The example uses Circle’s Solana Mainnet USDC mint. to can be the recipient wallet or an existing USDC token account. SOL pays transaction fees and any token-account creation.
Call a program
Build a transaction containing your program instructions, then replacesolanaSendNative with solanaSendCustom:
txBase64 accepts one to five serialized transactions in legacy or v0 format, each encoded as standard base64. The from wallet signs every transaction; any other required signatures are already present. When a transaction has no existing signatures, MPCVault refreshes its recent blockhash before signing. A transaction carrying another signer’s signature keeps its blockhash and can expire while awaiting execution. For individual txHash tracking, submit one transaction per request; a custom request containing multiple transactions returns only the first transaction’s hash.
Use Sonic SVM
UsesonicSvmSendNative, sonicSvmSendSplToken or sonicSvmSendCustom in place of the corresponding Solana payload. Their fields and encoding are the same. For example, a program call on Sonic SVM uses:
Sign and track
Sign the request, then query the returnedtxHash as follows.
The UUID identifies the signing request; the returned txHash is the transaction’s first signature in base58. Query getSignatureStatuses on the network selected by the payload:
txHash as <TRANSACTION_SIGNATURE>. In result.value[0], err: null with confirmationStatus: "finalized" indicates successful, finalized execution; a non-null err reports transaction failure. A null entry means the provider has no status; poll with an interval and timeout.
After a timeout, check the existing request and on-chain result before creating another request.
Sign a Solana message
Use this payload with the shared message-signing flow:content is standard base64 of the message bytes. This example signs the UTF-8 text MPCVault example; printable ASCII and valid UTF-8 are supported.
solanaMessage has no Sonic SVM network selector.