You’re viewing the 2.0 (LTS) docs. View the current 3.0 version of this page.
POST /v1/wallets/{walletId}/sign-transaction for EVM, Solana, Stellar, and Sui transaction payloads. The wallet
ID selects the parser. Cosmos does not support this route, so send the exact chain-specific bytes to sign-raw instead.
The examples use ParaRestClient. The object passed to each SDK method is the JSON body for the matching REST route.
See REST SDK to initialize the client.
Sign transactions
EVM transaction
Pass an unsigned transaction object. REST supports ordinary legacy type0 and EIP-1559 type 2 transactions.
broadcast: true to submit the signed transaction and create a transaction-history record. EVM also
supports signTypedData() for EIP-712 and signAuthorization() for EIP-7702. Both REST adapters cover message,
transaction, and typed-data signing. Only the Viem REST adapter exposes signAuthorization(); ethers callers use the
core client’s para.signAuthorization() method.
EIP-712 typed data
EIP-712 is EVM-only. Pass the structured domain, types, primary type, and message directly. Para builds and signs the EIP-712 digest.EIP712Domain in types; Para derives it from the domain fields.
EIP-7702 authorization
EIP-7702 authorization signing is EVM-only.r, s, yParity, and the combined signature. yParity is 0 or 1, rather than the legacy
EVM v value of 27 or 28. contractAddress is accepted as an alias for address.
Cosmos transaction
The chain-specificsign-transaction route does not support Cosmos Direct or Amino sign documents. Construct the exact
bytes required by the target Cosmos signing flow, encode them as hex, and send them through signRaw().
Solana transaction
Pass a base64-encoded serialized Solana transaction. Both legacyTransaction and v0 VersionedTransaction formats are
accepted and auto-detected.
broadcast: true when Para should submit the transaction and create a transaction-history record. In beta,
SOLANA_DEVNET is the supported broadcast network.
Stellar transaction
Pass a base64-encoded Stellar transaction envelope in XDR format and the exact network passphrase used to build it.broadcast: true is not supported.
Sui transaction
Pass a base64-encoded BCS serialization of SuiTransactionData.
broadcast: true is not supported. networkPassphrase is ignored for Sui. The
REST SDK can submit the route through para.signTransaction(), but its generic response type models signedTransaction.
Use the raw HTTP response when TypeScript code needs typed access to Sui’s separate signature and transaction fields.
Sign exact bytes
UsesignRaw() or POST /v1/wallets/{walletId}/sign-raw when your backend owns chain-specific serialization and
hashing. The input is hex, and Para signs those exact bytes without adding a prefix or hash.
walletType is optional, but it is a useful guard: Para rejects the request if it does not match the wallet
referenced by walletId.
For message payloads, see Sign messages by wallet type. See
Wallet lifecycle by wallet type to create each wallet type, or use the Endpoints section
in the REST API navigation for complete request and response schemas.