Sign a transaction or message by chain
Signs a transaction or message using an RPC method and chain ID.
The Idempotency-Key header is accepted only for broadcast methods
(for example eth_sendTransaction, sol_signAndSendTransaction).
Supplying the header with a non-broadcast method returns 400.
Documentation Index
Fetch the complete documentation index at: https://docs.portalhq.io/llms.txt
Use this file to discover all available pages before exploring further.
Authorizations
Client API Key or Client Session Token
Headers
A caller-provided key used for safe retries. Behavior depends on the endpoint:
POST /v1/presign/{curve}withmanaged: true— retrying a completed request with the same key returns the same{id, expiresAt}(200). If the original attempt is still in progress, the retry returns 409 with aRetry-Afterheader; if the original attempt failed before completing, it returns 409 withoutRetry-After(caller should retry with a new key). Reusing a key after the wallet's signing share has changed (for example, after a reshare or recovery) returns 422.POST /v1/sign— only honored for broadcast methods (for exampleeth_sendTransaction,sol_signAndSendTransaction). Supplying the header with a non-broadcast method returns 400. For broadcast methods, retrying a completed request returns 409 (IDEMPOTENT_REQUEST_ALREADY_COMPLETED), and reuse with a different payload returns 422. On 409, the response body does not include the original signing result — the header prevents double-execution, it does not replay the prior response.POST /v1/assets/send— retrying a completed request returns 409 (IDEMPOTENT_REQUEST_ALREADY_COMPLETED), and reuse with a different payload returns 422. On 409, the response body does not include the originaltransactionHash— the header prevents double-submission, it does not replay the prior response.
Client-stored presignature creation does not currently honor this header.
Body
Request body for signing a transaction or message by chain.
The signer RPC method (e.g. personal_sign, eth_sendTransaction,
sol_signAndSendTransaction).
The parameters for the RPC method as a JSON object or array
(e.g. {"value": "0x01", "from": "", "to": "0x...", "data": ""}).
The MPC share for the relevant curve.
The blockchain network as a CAIP-2 chain ID (e.g. eip155:10143).
The recipient's address.
The node provider RPC URL.
Optional metadata string for the transaction.
Set to false to opt out of gas sponsorship for Account Abstraction
clients. Defaults to true when omitted.
The data value from a client-stored presign response. Omit for standard
(non-presigned) signing. Mutually exclusive with presignatureId.
The id value from a Portal-managed presign response. Omit for standard
(non-presigned) signing. Mutually exclusive with presignature.
Response
Signed successfully
Response containing the signed data.
The signed data as a hex string.