These endpoints require a Client API Key or Client Session Token (CST) as a bearer token.
GET
https://api.portalhq.io/api/v3/clients/me
This endpoint retrieves the details of the current client, including information about associated wallets.
Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
[token]
with either a Client API Key or a Client Session Token.
GET
https://api.portalhq.io/api/v3/clients/me/chains/:chain/assets
This endpoint retrieves the asset balances (native and token balances) for a specified blockchain. It provides detailed information on the native balance and token balances held by a given address on the specified chain.
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
or solana
)solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
or solana-devnet
)bip122:000000000019d6689c085ae165831e93-p2wpkh
or bitcoin-p2wpkh
or bitcoin-segwit
)bip122:000000000933ea01ad0ee984209779ba-p2wpkh
or bitcoin-p2wpkh-testnet
or bitcoin-segwit-testnet
)eip155:42220
or celo
)eip155:44787
or celo-alfajores
)tron:mainnet
)tron:nile
)tron:shasta
)stellar:pubnet
)stellar:testnet
)eip155:1
or ethereum
)eip155:11155111
or sepolia
)eip155:8453
or base
)eip155:84532
or base-sepolia
)eip155:137
or polygon
)eip155:80002
or polygon-amoy
)eip155:10
)eip155:56
)eip155:97
)eip155:250
)eip155:1284
)eip155:42161
)eip155:421614
)eip155:43114
)eip155:59144
)eip155:11155111
), ensure the URL is URI encoded to accommodate the ”:” character.Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
Name | Type | Description |
---|---|---|
chainId (Required) | String | Must be in CAIP-2 format or chain identifier shortcut (e.g. eip155:11155111 or sepolia ). |
includeNfts | Boolean - Defaults to false | Optionally includes the NFTs of the client on the specified chain. |
[token]
with either a Client API Key or a Client Session Token and the chain
with a valid chain value.
GET
https://api.portalhq.io/api/v3/clients/me/chains/:chain/assets/nfts
This endpoint retrieves the NFT assets for a specified blockchain.
eip155:1
or ethereum
)eip155:11155111
or sepolia
)eip155:8453
or base
)eip155:84532
or base-sepolia
)eip155:137
or polygon
)eip155:80002
or polygon-amoy
)eip155:10
)eip155:56
)eip155:97
)eip155:250
)eip155:1284
)eip155:42161
)eip155:43114
)eip155:59144
)eip155:11155111
), ensure the URL is URI encoded to accommodate the ”:” character.Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
Name | Type | Description |
---|---|---|
chainId (Required) | String | Must be in CAIP-2 format or chain identifier shortcut (e.g. eip155:11155111 or sepolia ). |
[token]
with either a Client API Key or a Client Session Token and the chain
with a valid chain value.
GET
https://api.portalhq.io/api/v3/clients/me/chains/:chain/transactions
Retrieves the client’s transaction history for a specific chain.
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
or solana
)solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
or solana-devnet
)eip155:11155111
), ensure the URL is URI encoded to accommodate the ”:” character.Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
Name | Type | Description |
---|---|---|
chain (Required) | String | Must be in CAIP-2 format or chain identifier shortcut (e.g. eip155:11155111 or sepolia ). |
Name | Type | Description |
---|---|---|
limit | Number | The max amount of transactions returned in the request. Defaults to 1000 . Max is 1000 . |
offset | Number | The number of transactions to skip before returning results. Used for pagination when combined with the limit parameter. Defaults to 0 . |
[token]
with either a Client API Key or a Client Session Token and the chain
with a valid chain value.
GET
https://api.portalhq.io/api/v3/clients/me/transactions
Retrieves the client’s transaction history for a specific chain.
eip155:1
)eip155:5
) // @deprecatedeip155:11155111
)eip155:8453
)eip155:84532
)eip155:137
)eip155:80001
)eip155:80002
)eip155:42161
)eip155:421614
)eip155:11155111
), ensure the URL is URI encoded to accommodate the ”:” character.Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
Name | Type | Description |
---|---|---|
chainId (Required) | String | Must be in CAIP-2 format (e.g. "eip155:11155111" ). |
[token]
with either a Client API Key or a Client Session Token and the chain
with a valid chain value.
POST
https://api.portalhq.io/api/v3/clients/me/fund
Sends testnet tokens to your Portal client’s wallet.
eip155:11155111
)
0.01
ETH
per Portal client per 24 hours.eip155:44787
)
0.1
CELO
per Portal client per 24 hours.solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
)
0.01
SOL
per Portal client per 24 hours.Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
Name | Type | Description |
---|---|---|
chainId (Required) | String | The CAIP-2 chainId you want to receive testnet tokens on. |
token (Required) | String | The testnet token you want to receive. |
amount (Required) | String | The amount to transfer (as a string, in the token’s primary denomination). |
[token]
with either a Client API Key or a Client Session Token and the chain
with a valid chain value.
POST
https://api.portalhq.io/api/v3/clients/me/chains/:chain/assets/send/build-transaction
Creates an unsigned transaction for transferring assets to another address on a specific chain. You can then use this unsigned transaction to sign and submit the transaction.
chain
path param (or alternatively you can use the CAIP-2 chainId
):
ethereum
(eip155:1
)sepolia
(eip155:11155111
)base
(eip155:8453
)base-sepolia
(eip155:84531
)polygon
(eip155:137
)polygon-mumbai
(eip155:80001
)celo
(eip155:42220
)celo-alfajores
(eip155:44787
)solana
(solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
)solana-devnet
(solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
)tron
(tron:mainnet
)tron-nile
(tron:nile
)tron-shasta
(tron:shasta
)stellar
(stellar:pubnet
)stellar-testnet
(stellar:testnet
)bitcoin-segwit
(bip122:000000000019d6689c085ae165831e93-p2wpkh
)bitcoin-segwit-testnet
(bip122:000000000933ea01ad0ee984209779ba-p2wpkh
)bitcoin-p2wpkh
(bip122:000000000019d6689c085ae165831e93-p2wpkh
)bitcoin-p2wpkh-testnet
(bip122:000000000933ea01ad0ee984209779ba-p2wpkh
)eip155:11155111
), ensure the URL is URI encoded to accommodate the ”:” character.Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
Name | Type | Description |
---|---|---|
chain (Required) | String | Must be one of the chains in “Supported Chains”. |
Name | Type | Description |
---|---|---|
to (Required) | String | The recipient’s address. |
token (Required) | String | The token symbol (e.g., “USDC”) or contract address or mint address (for Solana). For native token transfers, use "NATIVE" . |
amount (Required) | String | The amount to transfer (as a string, in the token’s primary denomination). For example, “0.01” is 1 cent of USDC. |
[token]
with either a Client API Key or a Client Session Token and the chain
with a valid chain value.
token
field can accept either a token symbol (e.g. “USDC” or “USDT”) or a contract address (for EIP-155 tokens) or a mint address (for Solana tokens).amount
should be provided in the token’s primary denomination (e.g. whole USDC, not micro-USDC).POST
https://api.portalhq.io/api/v3/clients/me/evaluate-transaction
This endpoint evaluates a transaction by either simulating its execution or validating its authenticity (or both). The evaluation provides detailed insights into the transaction, including potential changes in asset balances, exposures, and a classification of the transaction’s risk.
eip155:1
)eip155:11155111
)eip155:10
)eip155:56
)eip155:137
)eip155:238
)eip155:324
)eip155:300
)eip155:8453
)eip155:84532
)eip155:13371
)eip155:42161
)eip155:43113
)eip155:43114
)eip155:59144
)eip155:534352
)eip155:7777777
)eip155:666666666
)solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
)solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
)eip155:11155111
), ensure the URL is URI encoded to accommodate the ”:” character.Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
Name | Type | Description |
---|---|---|
chainId (Required) | String | Must be in CAIP-2 format (e.g. eip155:11155111 , solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1 ). |
Name | Type | Description |
---|---|---|
to (Required) | String | The recipient’s address. |
gas | String | The gas limit provided for the transaction. |
gasPrice | String | The price per unit of gas the sender is willing to pay. |
maxFeePerGas | String | The maximum total fee per gas unit the sender is willing to pay. |
maxPriorityFeePerGas | String | The maximum priority fee per gas unit the sender is willing to pay. |
value | String | The amount of native token to send with the transaction. |
data | String | The input data to send with the transaction (used for contract calls). |
operationType |
| The operation to perform with the transaction. |
[token]
with either a Client API Key or a Client Session Token and the chain
with a valid chain value.
PATCH
https://api.portalhq.io/api/v3/clients/me/signing-share-pairs
Updates a client’s signing share pairs’ statuses. Intended to be used after successfully storing the client signing share on the client’s device.
Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
Name | Type | Description |
---|---|---|
signingSharePairIds (Required) | String[] | An array of signing share pair IDs. |
status (Required) | "STORED_CLIENT" | The updated status of the signing share pairs. |
[token]
with either a Client API Key or a Client Session Token.
PATCH
https://api.portalhq.io/api/v3/clients/me/backup-share-pairs
Updates a client’s backup share pairs’ statuses. Intended to be used after successfully storing the encrypted client backup share.
Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
Name | Type | Description |
---|---|---|
backupSharePairIds (Required) | String[] | An array of backup share pair IDs. |
status (Required) | "STORED_CLIENT_BACKUP_SHARE_KEY" | "STORED_CLIENT_BACKUP_SHARE" | The updated status of the backup share pairs. |
[token]
with either a Client API Key or a Client Session Token.
PATCH
https://api.portalhq.io/api/v3/clients/me/backup-share-pairs/:backupSharePairId
Stores a client’s encrypted backup share for Portal-Managed Backups. This endpoint is used when running eject while using the Enclave MPC API with a Portal-Managed Backup configuration. Call this endpoint once for the SECP256K1 share and once for the ED25519 share.
Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
Name | Type | Description |
---|---|---|
clientCipherText (Required) | String | The ciphertext from encrypting a backup share. |
[token]
with either a Client API Key or a Client Session Token and the backupSharePairId
with the relevant backup share pair ID.
GET
https://api.portalhq.io/api/v3/clients/me/backup-share-pairs/:backupSharePairId/cipher-text
Your custodian must be using Portal-Managed Backups to use this endpoint. Fetches a client’s encrypted backup share for Portal-Managed Backups. This endpoint is used when running eject while using the Enclave MPC API with a Portal-Managed Backup configuration.
Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
[token]
with either a Client API Key or a Client Session Token and the backupSharePairId
with the relevant backup share pair ID.
GET
https://api.portalhq.io/api/v3/clients/me/wallets/:walletId/ejectable-backup-shares
You must have made the wallet ejectable before using this endpoint. Your custodian must be using Portal-Managed Backups to use this endpoint. Fetches a client’s encrypted backup share and their custodian backup share. This endpoint is used when running eject while using the Enclave MPC API with a Portal-Managed Backup configuration.
Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
[token]
with either a Client API Key or a Client Session Token and the walletId
with the relevant Portal client wallet ID.
GET
https://api.portalhq.io/api/v3/clients/me/nfts
This endpoint retrieves the NFTs for the client for a particular chain.
eip155:1
)eip155:5
) // @deprecatedeip155:11155111
)eip155:8453
)eip155:84532
)eip155:137
)eip155:80001
)eip155:80002
)eip155:11155111
), ensure the URL is URI encoded to accommodate the ”:” character.Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
Name | Type | Description |
---|---|---|
chainId (Required) | String | Must be in CAIP-2 format (e.g. "eip155:11155111" ). |
POST
https://api.portalhq.io/api/v3/clients/me/simulate-transaction
Simulates a transaction for a specific chain.
eip155:1
)eip155:5
) // @deprecatedeip155:11155111
)eip155:8453
)eip155:84532
)eip155:137
)eip155:80001
)eip155:80002
)eip155:11155111
), ensure the URL is URI encoded to accommodate the ”:” character.Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
Name | Type | Description |
---|---|---|
chainId (Required) | String | Must be in CAIP-2 format (e.g. "eip155:11155111" ). |
Name | Type | Description |
---|---|---|
from (Required) | String | The sender’s address. |
to (Required) | String | The recipient’s address. |
gas | String | The gas limit provided for the transaction. |
gasPrice | String | The price per unit of gas the sender is willing to pay. |
maxFeePerGas | String | The maximum total fee per gas unit the sender is willing to pay. |
maxPriorityFeePerGas | String | The maximum priority fee per gas unit the sender is willing to pay. |
value | String | The amount of native token to send with the transaction. |
data | String | The input data to send with the transaction (used for contract calls). |
nonce | String | The transaction count of the sender’s address, used to ensure uniqueness. |
GET
https://api.portalhq.io/api/v3/clients/me/balances
Retrieves the client’s ERC20 balances for a specific chain.
eip155:1
)eip155:5
) // @deprecatedeip155:11155111
)eip155:8453
)eip155:84532
)eip155:137
)eip155:80001
)eip155:80002
)eip155:11155111
), ensure the URL is URI encoded to accommodate the ”:” character.Name | Type | Description |
---|---|---|
Authorization (Required) | String | Bearer <Client API Key> |
Content-Type (Required) | String | application/json |
Name | Type | Description |
---|---|---|
chainId (Required) | String | Must be in CAIP-2 format (e.g. "eip155:11155111" ). |