V1 endpoints
These endpoints require a Client API Key or Client Session Token (CST) as a bearer token.
Create Wallets
POST
https://mpc-client.portalhq.io/v1/generate
This endpoint generates MPC shares for both SECP256K1 (EVM, etc) and ED25519 (Solana, XRP, etc) curves.
Headers
Name | Type | Description |
---|---|---|
Authorization* | String | Bearer |
Content-Type* | String | application/json |
Request Body
You can leave this empty.
Response Body
Send Assets
POST
https://mpc-client.portalhq.io/v1/assets/send
This endpoint allows you to easily send a token to another address.
Headers
Name | Type | Description |
---|---|---|
Authorization* | String | Bearer |
Content-Type* | String | application/json |
Request Body
Name | Type | Description |
---|---|---|
share* | String | The MPC share generated from "Create Wallets" for a specific curve. |
chain* | String | The blockchain network (e.g. "ethereum", "sepolia", "solana", "solana-devnet", or a CAIP-2 chain ID like "eip155:11155111") |
to* | String | The recipient's address. |
token* | 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 "ETH" or "SOL". |
amount* | 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. |
metadataStr | String | Optional metadata string for the transaction. |
Response Body
If your client is using Account Abstraction, then transactionHash
is actually a User Operation hash. You can manually look up the user operation hash here.
Submit Transaction
POST
https://mpc-client.portalhq.io/v1/sign
This endpoint allows you to sign a transaction or message.
Headers
Name | Type | Description |
---|---|---|
Authorization* | String | Bearer |
Content-Type* | String | application/json |
Request Body
Name | Type | Description |
---|---|---|
method* | String | The signer RPC method (e.g. "personal_sign", "eth_sendTransaction", "sol_signAndSendTransaction", etc). |
params* | String | A JSON stringified array of the parameters for the RPC method (e.g. "[\"test\"]"). |
share* | String | The MPC share generated from "Create Wallets" for a specific curve. |
chainId* | String | The blockchain network (a CAIP-2 chain ID like "eip155:11155111" for Sepolia). |
to* | String | The recipient's address. |
rpcUrl* | String | The node provider RPC URL. |
metadataStr | String | Optional metadata string for the transaction. |
Response Body
Sign Raw Message
POST
https://mpc-client.portalhq.io/v1/raw/sign/:curve
This endpoint allows you to sign a raw message.
Headers
Name | Type | Description |
---|---|---|
Authorization* | String | Bearer |
Content-Type* | String | application/json |
Request Path Params
Name | Type | Description |
---|---|---|
curve* | String | The curve you want to use (e.g. |
Request Body
Name | Type | Description |
---|---|---|
param* | String | A hex string of the digest to sign without the leading |
share* | String | The MPC share generated from "Create Wallets" for a specific curve. |
Response Body
Back Up Wallets
POST
https://mpc-client.portalhq.io/v1/backup
This endpoint allows you to create backup shares for your wallets.
Headers
Name | Type | Description |
---|---|---|
Authorization* | String | Bearer |
Content-Type* | String | application/json |
Request Body
Name | Type | Description |
---|---|---|
generateResponse* | JSON | The response body from "Create Wallets". |
Response Body
Recover Wallets
POST
https://mpc-client.portalhq.io/v1/recover
This endpoint allows you to recover shares for your wallets using your backup shares.
Headers
Name | Type | Description |
---|---|---|
Authorization* | String | Bearer |
Content-Type* | String | application/json |
Request Body
Name | Type | Description |
---|---|---|
backupResponse* | JSON | The response body from "Back Up Wallets". |
Response Body
Last updated