These endpoints require a Client API Key or Client Session Token (CST) as a bearer token.
POST
https://mpc-client.portalhq.io/v1/generate
This endpoint generates MPC shares for both SECP256K1 (EVM, etc) and ED25519 (Solana, XRP, etc) curves (a Portal wallet).
Name | Type | Description |
---|---|---|
Authorization* | String | Bearer <Client API Key> |
Content-Type* | String | application/json |
[token]
with either a Client API Key or a Client Session Token.
POST
https://mpc-client.portalhq.io/v1/assets/send
This endpoint allows you to easily send a token the client holds to another address.
Send Assets
endpoint builds, signs, and submits a transaction to an RPC gateway.Important: A 200 response only confirms that the transaction was received by the RPC gateway — it does not mean the transaction is confirmed on-chain. The transaction must first be placed in the mempool of the RPC gateway nodes, submitted to miner/validator nodes, and then validated and finalized by the network. This process can take seconds to minutes, depending on the blockchain.Name | Type | Description |
---|---|---|
Authorization* | String | Bearer <Client API Key> |
Content-Type* | String | application/json |
Name | Type | Description |
---|---|---|
share (Required) | String | The MPC share generated from “Create Wallets” for a specific curve. |
chain (Required) | String CAIP-2 Chain ID or one of:
| The blockchain network. |
to (Required) | String | The recipient’s address. |
token (Required) | String | The token contract address (for ERC20 tokens on EVM chains) or the mint
address (for Solana SPL tokens). You can also use “USDC” or “USDT” for
the respective tokens. For native token transfers, use
"NATIVE" . |
amount (Required) | String | The amount of tokens to send (“0.1” is 0.1 USDC) |
rpcUrl | String | The node provider RPC URL. Not required for Solana or Solana Devnet. |
nonce | String | The hex string of the nonce to set on the transaction (“0x01” sets the nonce of the transaction to 1). Note that the hex string needs to include the “0x” and for single digits to include a leading zero like “0x0”. |
metadataStr | String | Optional metadata string for the transaction. |
Send Assets
endpoint, ensuring unique nonces for concurrent requests.[token]
with either a Client API Key or a Client Session Token.
transactionHash
is actually a User Operation hash. You can manually look up the user operation hash here.POST
https://mpc-client.portalhq.io/v1/sign
This endpoint allows you to sign a transaction or message by chain.
Name | Type | Description |
---|---|---|
Authorization* | String | Bearer <Client API Key> |
Content-Type* | String | application/json |
Name | Type | Description |
---|---|---|
method d;”>* | String | The signer RPC method (e.g. “personal_sign”, “eth_sendTransaction”, “sol_signAndSendTransaction”, etc). |
params d;”>* | String | A JSON stringified array of the parameters for the RPC method (e.g. ”[\“test\”]”). |
share d;”>* | String | The MPC share generated from “Create Wallets” for a specific curve. |
chainId d;”>* | String | The blockchain network (a CAIP-2 chain ID like “eip155:11155111” for Sepolia). |
to d;”>* | String | The recipient’s address. |
rpcUrl d;”>* | String | The node provider RPC URL. |
metadataStr | String | Optional metadata string for the transaction. |
[token]
with either a Client API Key or a Client Session Token.
POST
https://mpc-client.portalhq.io/v1/raw/sign/:curve
This endpoint allows you to sign a raw message by curve.
Name | Type | Description |
---|---|---|
Authorization* | String | Bearer <Client API Key> |
Content-Type* | String | application/json |
Name | Type | Description |
---|---|---|
curve d;”>* | String | The curve you want to use (e.g. SECP256K1 for EVM chains and ED25519 for Solana). |
Name | Type | Description |
---|---|---|
param d;”>* | String | A hex string of the digest to sign without the leading 0x (e.g. "param": "7369676e2074686973" ). |
share d;”>* | String | The MPC share generated from “Create Wallets” for a specific curve. |
[token]
with either a Client API Key or a Client Session Token.
POST
https://mpc-client.portalhq.io/v1/backup
This endpoint allows you to create backup shares for your wallet.
Name | Type | Description |
---|---|---|
Authorization* | String | Bearer <Client API Key> |
Content-Type* | String | application/json |
Name | Type | Description |
---|---|---|
generateResponse d;”>* | JSON | The response body from “Create Wallets”. |
[token]
with either a Client API Key or a Client Session Token.
POST
https://mpc-client.portalhq.io/v1/recover
This endpoint allows you to recover shares for your wallet using your backup shares.
Name | Type | Description |
---|---|---|
Authorization* | String | Bearer <Client API Key> |
Content-Type* | String | application/json |
Name | Type | Description |
---|---|---|
backupResponse d;”>* | JSON | The response body from “Back Up Wallets”. |
[token]
with either a Client API Key or a Client Session Token.