V3 endpoints

These endpoints require a Client API Key as a bearer token.

Fetch your client

GET https://api.portalhq.io/api/v3/clients/me

Fetches your client information.

Headers

NameTypeDescription

Authorization*

String

Bearer <Client API Key>

Content-Type*

String

application/json

{
  "createdAt": "2024-04-16T21:15:06.443Z",
  "custodian": {
    "id": "custodianId",
    "name": "Custodian Name"
  },
  "ejectedAt": null,
  "environment": {
    "id": "environmentId",
    "name": "Development"
  },
  "id": "clientId",
  "isAccountAbstracted": false,
  "metadata": {
    "namespaces": {
      "eip155": {
        "address": "0x6e818d8f9b6c53c59a2d957d36c2146e28906195",
        "curve": "SECP256K1"
      }
    }
  },
  "wallets": [
    {
      "createdAt": "2024-04-16T21:15:45.144Z",
      "curve": "SECP256K1",
      "id": "wallet1Id",
      "backupSharePairs": [
        {
          "backupMethod": "PASSWORD",
          "createdAt": "2024-04-16T21:16:48.723Z",
          "id": "backupSharePairId1",
          "status": "completed"
        },
        {
          "backupMethod": "GDRIVE",
          "createdAt": "2024-04-16T21:17:02.074Z",
          "id": "backupSharePairId2",
          "status": "incomplete"
        },
        {
          "backupMethod": "ICLOUD",
          "createdAt": "2024-04-16T21:18:06.996Z",
          "id": "backupSharePairId3",
          "status": "incomplete"
        }
      ],
      "signingSharePairs": [
        {
          "createdAt": "2024-04-16T21:15:45.151Z",
          "id": "signingSharePairId1",
          "status": "completed"
        }
      ],
      "publicKey": "stringifiedJSON"
    }
  ]
}

Retrieve a client's ERC20 balances

GET https://api.portalhq.io/api/v3/clients/me/balances

Retrieves the client's ERC20 balances for a specific chain. (Currently only supports eip155 chains.)

Headers

NameTypeDescription

Authorization*

String

Bearer <Client API Key>

Content-Type*

String

application/json

Request Params

NameTypeDescription

chainId*

String

Must be in CAIP-2 format (e.g. "eip155:11155111").

[
  {
    "contractAddress": "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984",
    "balance": "0.000211681761928783"
  }
]

Retrieve a client's NFTs

GET https://api.portalhq.io/api/v3/clients/me/nfts

Retrieves the client's owned NFTs for a specific chain. (Currently only supports eip155 chains.)

Headers

NameTypeDescription

Authorization*

String

Bearer <Client API Key>

Content-Type*

String

application/json

Request Params

NameTypeDescription

chainId*

String

Must be in CAIP-2 format (e.g. "eip155:11155111").

[
  {
    "contract": {
      "address": "0xabcdef1234567890abcdef1234567890abcdef12"
    },
    "id": {
      "tokenId": "99",
      "tokenMetadata": {
        "tokenType": "ERC721"
      }
    },
    "title": "GalacticExplorer #99",
    "description": "Galactic Explorers venture into the unknown regions of space to discover new worlds and civilizations.",
    "tokenUri": {
      "raw": "https://galacticexplorers.io/api/explorers/99",
      "gateway": "https://galacticexplorers.io/api/explorers/99"
    },
    "media": [
      {
        "raw": "https://galacticexplorers.io/explorer_images/99.png",
        "gateway": "https://galacticexplorers.io/explorer_images/99.png"
      }
    ],
    "metadata": {
      "name": "GalacticExplorer #99",
      "description": "Galactic Explorers venture into the unknown regions of space to discover new worlds and civilizations.",
      "image": "https://galacticexplorers.io/explorer_images/99.png",
      "external_url": "https://galacticexplorers.io",
      "attributes": [
        {
          "value": "Space Suit (Blue)",
          "trait_type": "Clothes"
        },
        {
          "value": "Happy Smile",
          "trait_type": "Mouth"
        },
        {
          "value": "Space",
          "trait_type": "Background"
        }
      ]
    },
    "timeLastUpdated": "2023-01-01T10:00:00.000Z",
    "contractMetadata": {
      "name": "GalacticExplorers",
      "symbol": "GEXP",
      "totalSupply": "5000",
      "tokenType": "ERC721"
    }
  },
  ...
]

Retrieve a client's transaction history

GET https://api.portalhq.io/api/v3/clients/me/transactions

Retrieves the client's transaction history for a specific chain. (Currently only supports eip155 chains.)

Headers

NameTypeDescription

Authorization*

String

Bearer <Client API Key>

Content-Type*

String

application/json

Request Params

NameTypeDescription

chainId*

String

Must be in CAIP-2 format (e.g. "eip155:11155111").

[
  {
    "blockNum": "0x57450c",
    "uniqueId": "0x3b8a06c63d02ba6826cce6188c2caa44b68dd6a36050dcfd5c085a7cba5444e3:external",
    "hash": "0x3b8a06c63d02ba6826cce6188c2caa44b68dd6a36050dcfd5c085a7cba5444e3",
    "from": "0xdfd8302f44727a6348f702ff7b594f127de3a902",
    "to": "0x8eddb4067a73061e93583897d4684b749a93f19c",
    "value": 0.01,
    "erc721TokenId": null,
    "erc1155Metadata": null,
    "tokenId": null,
    "asset": "ETH",
    "category": "external",
    "rawContract": {
      "value": "0x2386f26fc10000",
      "address": null,
      "decimal": "0x12"
    },
    "metadata": {
      "blockTimestamp": "2024-04-17T17:32:24.000Z"
    },
    "chainId": 11155111
  }
]

Simulate transaction

POST https://api.portalhq.io/api/v3/clients/me/simulate-transaction

Simulates a transaction for a specific chain. (Currently only supports eip155 chains.)

Headers

NameTypeDescription

Authorization*

String

Bearer <Client API Key>

Content-Type*

String

application/json

Request Params

NameTypeDescription

chainId*

String

Must be in CAIP-2 format (e.g. "eip155:11155111").

Request Body

NameTypeDescription

from*

String

The sender's address.

to*

String

The recipient's address.

gas

String (optional)

The gas limit provided for the transaction.

gasPrice

String (optional)

The price per unit of gas the sender is willing to pay.

maxFeePerGas

String (optional)

The maximum total fee per gas unit the sender is willing to pay.

maxPriorityFeePerGas

String (optional)

The maximum priority fee per gas unit the sender is willing to pay.

value

String (optional)

The amount of native token to send with the transaction.

data

String (optional)

The input data to send with the transaction (used for contract calls).

nonce

String (optional)

The transaction count of the sender's address, used to ensure uniqueness.

{
  "changes": [
    {
      "amount": "0.000000000000000016",
      "assetType": "NATIVE",
      "changeType": "TRANSFER",
      "contractAddress": null,
      "decimals": 18,
      "from": "0x0282c3974e48e645d977758838a0211e5c11bd64",
      "name": "Ethereum",
      "rawAmount": "16",
      "symbol": "ETH",
      "to": "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad",
      "tokenId": null
    }
  ],
  "gasUsed": "0x5258"
}

Update Signing Share Pairs' Statuses

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.

Do not use this endpoint if you are using the Portal SDKs. The Portal SDKs already use this endpoint internally for your convenience.

Headers

NameTypeDescription

Authorization*

String

Bearer <Client API Key>

Content-Type*

String

application/json

Request Body

NameTypeDescription

signingSharePairIds*

String[]

An array of signing share pair IDs.

status*

"STORED_CLIENT"

The updated status of the signing share pairs.

Update Backup Share Pairs' Statuses

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.

Do not use this endpoint if you are using the Portal SDKs. The Portal SDKs already use this endpoint internally for your convenience.

Headers

NameTypeDescription

Authorization*

String

Bearer <Client API Key>

Content-Type*

String

application/json

Request Body

NameTypeDescription

backupSharePairIds*

String[]

An array of backup share pair IDs.

status*

"STORED_CLIENT_BACKUP_SHARE_KEY" | "STORED_CLIENT_BACKUP_SHARE"

The updated status of the backup share pairs.

Last updated