> ## 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.

# Informational webhook events

> What each informational webhook event means, when Portal sends it, and what its payload contains.

This page lists every event you can subscribe to on your [informational webhook](/resources/informational-webhooks/overview). The sections follow the groups in the **Events** step of the dashboard: EVM transactions, Solana transactions, Wallet lifecycle, and Wallet actions.

Every event shares the same envelope: `data` holds the event, `metadata` holds context about where it came from, and `type` names the event. Use `type` to route events in your handler.

| Group | Dashboard label | `type` |
| - | - | - |
| EVM transactions | Wallet transactions | `EIP_155_TX_V1` |
| Solana transactions | Wallet transactions | `SOLANA_TX_V2` |
| Solana transactions | Token approvals | `SOLANA_APPROVE_V2` |
| Solana transactions | Token revocations | `SOLANA_REVOKE_V2` |
| Solana transactions | Delegated transfers | `SOLANA_DELEGATED_TRANSFER_V2` |
| Wallet lifecycle | Wallet created | `WALLET_GENERATE_V1` |
| Wallet lifecycle | Wallet backed up | `WALLET_BACKUP_V1` |
| Wallet lifecycle | Wallet recovered | `WALLET_RECOVER_V1` |
| Wallet actions | Wallet ejected | `WALLET_EJECT_V1` |

## EVM transactions

### Wallet transactions (`EIP_155_TX_V1`)

Portal sends this event when an EVM address it watches for you sends or receives tokens, or approves or revokes a token spender. That covers:

* Sending and receiving native tokens, such as ETH.
* Sending and receiving ERC-20 tokens, such as USDC.
* Sending and receiving NFTs.
* Approving an ERC-20 spender, and revoking an approval by setting the allowance to 0.

Portal starts watching as soon as you subscribe, and includes every client you create afterwards.

Each transaction produces two events for each watched address involved. The first arrives with `confirmed: false` as soon as the transaction is in a block. The second arrives with `confirmed: true` once the chain reaches the number of blocks in the table below. If a chain reorganization replaces the block, you can get the `confirmed: false` event without a `confirmed: true` one.

| Chain | Chain ID | Blocks until confirmed |
| - | - | - |
| Ethereum | `eip155:1` | `12` |
| Ethereum Sepolia | `eip155:11155111` | `18` |
| Polygon | `eip155:137` | `100` |
| Polygon Amoy | `eip155:80002` | `100` |
| Arbitrum | `eip155:42161` | `18` |
| Arbitrum Sepolia | `eip155:421614` | `600` |
| Optimism | `eip155:10` | `500` |
| Optimism Sepolia | `eip155:11155420` | `600` |
| Base | `eip155:8453` | `100` |
| Base Sepolia | `eip155:84532` | `100` |

`data` is an array with one item per transfer in the transaction:

| Field | Type | Description |
| - | - | - |
| `from` | String | The address that sent the tokens, or the owner that approved a spender. |
| `to` | String | The address that received the tokens, or the approved spender. |
| `amount` | String | The amount, in token units. `0` when an approval is revoked. |
| `assetType` | String | `NATIVE_TOKEN`, `NON_NATIVE_TOKEN`, `NFT`, or `ERC20_APPROVAL`. |
| `chainId` | String | The CAIP-2 chain ID, such as `eip155:1`. |
| `chainName` | String or `null` | The chain name, such as `sepolia`. |
| `direction` | String | `OUTBOUND` if the watched address sent the tokens or approved the spender, `INBOUND` if it received them. |
| `tokenSymbol` | String | The token symbol, such as `ETH` or `USDC`. |
| `metadata.confirmed` | Boolean | Whether the transaction reached the confirmation depth for its chain. |
| `metadata.sentAt` | String | When the transaction was included in a block, in ISO 8601. |
| `metadata.transactionHash` | String or `null` | The transaction hash. |
| `metadata.userOperationHash` | String or `null` | The user operation hash for account abstraction wallets. `null` for regular transactions. |
| `metadata.blockNumber` | String or `null` | The block number. |
| `metadata.triggeredBy` | String or `null` | The watched address this event was sent for. |
| `metadata.tokenAddress` | String or `null` | The token contract. `null` for native tokens. |
| `metadata.tokenName` | String | The token name. |
| `metadata.tokenDecimals` | Number | The token's decimals. |
| `metadata.rawAmount` | String | The amount in the token's smallest unit. |
| `metadata.fee` | Object | The network fee: `amount`, `rawAmount`, `decimals`, and `tokenSymbol`. |
| `metadata.actualGasCost` | String or `null` | The gas cost of a user operation, as a hex Wei amount. |
| `metadata.formattedActualGasCost` | String or `null` | The same gas cost as a base-10 Wei string. |
| `metadata.approvalSpender` | String | The approved spender. Only present on `ERC20_APPROVAL` items. |
| `metadata.nftTokenId` | String or `null` | The token ID. Only set on `NFT` items. |

The envelope's `metadata` includes `custodianId`, `environmentId`, `chainId`, and `confirmed`. It can also include the raw block, logs, and transactions from Portal's chain data provider in `block`, `logs`, `txs`, and `retries`. Don't rely on their shape.

`actualGasCost` and `formattedActualGasCost` are only set when the client's transaction ran as an account abstraction user operation. With a gas policy on the chain, they show the gas you sponsored.

<Tabs>
  <Tab title="Receive ETH">
    **Unconfirmed event (`confirmed: false`):**

    ```json theme={null}
    {
      "data": [
        {
          "to": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d", // Your Portal wallet
          "from": "0x76acbd1eb20236f303d6f5fc3d50fe5f88caec3f",
          "amount": "0.01",
          "chainId": "eip155:11155111",
          "assetType": "NATIVE_TOKEN",
          "chainName": "sepolia",
          "direction": "INBOUND",
          "tokenSymbol": "ETH",
          "metadata": {
            "fee": {
              "amount": "0.001933021424187",
              "decimals": 18,
              "rawAmount": "1933021424187000",
              "tokenSymbol": "ETH"
            },
            "sentAt": "2025-02-05T14:44:00.000Z",
            "confirmed": false,
            "actualGasCost": null,
            "formattedActualGasCost": null,
            "rawAmount": "10000000000000000",
            "tokenName": "ETH",
            "nftTokenId": null,
            "blockNumber": "7645517",
            "triggeredBy": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d",
            "tokenAddress": null,
            "tokenDecimals": 18,
            "approvalSpender": null,
            "transactionHash": "0xd3e43c0c352d6d60e16115416ae9d1406394e149096d449a7c88068f923ada8a",
            "userOperationHash": null
          }
        }
      ],
      "metadata": {
        "custodianId": "custodianId",
        "environmentId": "environmentId"
      },
      "type": "EIP_155_TX_V1"
    }
    ```

    **Confirmed event (`confirmed: true`):**

    ```json theme={null}
    {
      "data": [
        {
          "to": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d", // Your Portal wallet
          "from": "0x76acbd1eb20236f303d6f5fc3d50fe5f88caec3f",
          "amount": "0.01",
          "chainId": "eip155:11155111",
          "assetType": "NATIVE_TOKEN",
          "chainName": "sepolia",
          "direction": "INBOUND",
          "tokenSymbol": "ETH",
          "metadata": {
            "fee": {
              "amount": "0.001933021424187",
              "decimals": 18,
              "rawAmount": "1933021424187000",
              "tokenSymbol": "ETH"
            },
            "sentAt": "2025-02-05T14:44:00.000Z",
            "confirmed": true,
            "actualGasCost": null,
            "formattedActualGasCost": null,
            "rawAmount": "10000000000000000",
            "tokenName": "ETH",
            "nftTokenId": null,
            "blockNumber": "7645517",
            "triggeredBy": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d",
            "tokenAddress": null,
            "tokenDecimals": 18,
            "approvalSpender": null,
            "transactionHash": "0xd3e43c0c352d6d60e16115416ae9d1406394e149096d449a7c88068f923ada8a",
            "userOperationHash": null
          }
        }
      ],
      "metadata": {
        "custodianId": "custodianId",
        "environmentId": "environmentId"
      },
      "type": "EIP_155_TX_V1"
    }
    ```
  </Tab>

  <Tab title="Send ETH">
    **Unconfirmed event (`confirmed: false`):**

    ```json theme={null}
    {
      "data": [
        {
          "to": "0xdfd8302f44727a6348f702ff7b594f127de3a902",
          "from": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d", // Your Portal wallet
          "amount": "0.001",
          "chainId": "eip155:11155111",
          "assetType": "NATIVE_TOKEN",
          "chainName": "sepolia",
          "direction": "OUTBOUND",
          "tokenSymbol": "ETH",
          "metadata": {
            "fee": {
              "amount": "0.001955140746657",
              "decimals": 18,
              "rawAmount": "1955140746657000",
              "tokenSymbol": "ETH"
            },
            "sentAt": "2025-02-05T14:52:24.000Z",
            "confirmed": false,
            "actualGasCost": null,
            "formattedActualGasCost": null,
            "rawAmount": "1000000000000000",
            "tokenName": "ETH",
            "nftTokenId": null,
            "blockNumber": "7645557",
            "triggeredBy": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d",
            "tokenAddress": null,
            "tokenDecimals": 18,
            "approvalSpender": null,
            "transactionHash": "0x297602294abe88d847a0e74af600b149cf3ed31f4cd775b37628cead9b2fabb6",
            "userOperationHash": null
          }
        }
      ],
      "metadata": {
        "custodianId": "custodianId",
        "environmentId": "environmentId"
      },
      "type": "EIP_155_TX_V1"
    }
    ```

    **Confirmed event (`confirmed: true`):**

    ```json theme={null}
    {
      "data": [
        {
          "to": "0xdfd8302f44727a6348f702ff7b594f127de3a902",
          "from": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d", // Your Portal wallet
          "amount": "0.001",
          "chainId": "eip155:11155111",
          "assetType": "NATIVE_TOKEN",
          "chainName": "sepolia",
          "direction": "OUTBOUND",
          "tokenSymbol": "ETH",
          "metadata": {
            "fee": {
              "amount": "0.001955140746657",
              "decimals": 18,
              "rawAmount": "1955140746657000",
              "tokenSymbol": "ETH"
            },
            "sentAt": "2025-02-05T14:52:24.000Z",
            "confirmed": true,
            "actualGasCost": null,
            "formattedActualGasCost": null,
            "rawAmount": "1000000000000000",
            "tokenName": "ETH",
            "nftTokenId": null,
            "blockNumber": "7645557",
            "triggeredBy": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d",
            "tokenAddress": null,
            "tokenDecimals": 18,
            "approvalSpender": null,
            "transactionHash": "0x297602294abe88d847a0e74af600b149cf3ed31f4cd775b37628cead9b2fabb6",
            "userOperationHash": null
          }
        }
      ],
      "metadata": {
        "custodianId": "custodianId",
        "environmentId": "environmentId"
      },
      "type": "EIP_155_TX_V1"
    }
    ```
  </Tab>

  <Tab title="Receive USDT">
    **Unconfirmed event (`confirmed: false`):**

    ```json theme={null}
    {
      "data": [
        {
          "to": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d", // Your Portal wallet
          "from": "0xdfd8302f44727a6348f702ff7b594f127de3a902",
          "amount": "2",
          "chainId": "eip155:11155111",
          "assetType": "NON_NATIVE_TOKEN",
          "chainName": "sepolia",
          "direction": "INBOUND",
          "tokenSymbol": "USDT",
          "metadata": {
            "fee": {
              "amount": "0.003163263549129086",
              "decimals": 18,
              "rawAmount": "3163263549129086",
              "tokenSymbol": "ETH"
            },
            "sentAt": "2025-02-05T16:50:12.000Z",
            "confirmed": false,
            "actualGasCost": null,
            "formattedActualGasCost": null,
            "rawAmount": "2000000",
            "tokenName": "USDT",
            "nftTokenId": null,
            "blockNumber": "7646117",
            "triggeredBy": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d",
            "tokenAddress": "0x419fe9f14ff3aa22e46ff1d03a73edf3b70a62ed",
            "tokenDecimals": "6",
            "approvalSpender": null,
            "transactionHash": "0x165f68557bb15ca9396b58f9f71f5113b83affce4fe445b37728af6c3fdb3e48",
            "userOperationHash": null
          }
        }
      ],
      "metadata": {
        "custodianId": "custodianId",
        "environmentId": "environmentId"
      },
      "type": "EIP_155_TX_V1"
    }
    ```

    **Confirmed event (`confirmed: true`):**

    ```json theme={null}
    {
      "data": [
        {
          "to": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d", // Your Portal wallet
          "from": "0xdfd8302f44727a6348f702ff7b594f127de3a902",
          "amount": "2",
          "chainId": "eip155:11155111",
          "assetType": "NON_NATIVE_TOKEN",
          "chainName": "sepolia",
          "direction": "INBOUND",
          "tokenSymbol": "USDT",
          "metadata": {
            "fee": {
              "amount": "0.003163263549129086",
              "decimals": 18,
              "rawAmount": "3163263549129086",
              "tokenSymbol": "ETH"
            },
            "sentAt": "2025-02-05T16:50:12.000Z",
            "confirmed": true,
            "actualGasCost": null,
            "formattedActualGasCost": null,
            "rawAmount": "2000000",
            "tokenName": "USDT",
            "nftTokenId": null,
            "blockNumber": "7646117",
            "triggeredBy": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d",
            "tokenAddress": "0x419fe9f14ff3aa22e46ff1d03a73edf3b70a62ed",
            "tokenDecimals": "6",
            "approvalSpender": null,
            "transactionHash": "0x165f68557bb15ca9396b58f9f71f5113b83affce4fe445b37728af6c3fdb3e48",
            "userOperationHash": null
          }
        }
      ],
      "metadata": {
        "custodianId": "custodianId",
        "environmentId": "environmentId"
      },
      "type": "EIP_155_TX_V1"
    }
    ```
  </Tab>

  <Tab title="Send USDT">
    **Unconfirmed event (`confirmed: false`):**

    ```json theme={null}
    {
      "data": [
        {
          "to": "0xdfd8302f44727a6348f702ff7b594f127de3a902",
          "from": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d", // Your Portal wallet
          "amount": "0.1",
          "chainId": "eip155:11155111",
          "assetType": "NON_NATIVE_TOKEN",
          "chainName": "sepolia",
          "direction": "OUTBOUND",
          "tokenSymbol": "USDT",
          "metadata": {
            "fee": {
              "amount": "0.002395433635667721",
              "decimals": 18,
              "rawAmount": "2395433635667721",
              "tokenSymbol": "ETH"
            },
            "sentAt": "2025-02-05T16:58:36.000Z",
            "confirmed": false,
            "actualGasCost": null,
            "formattedActualGasCost": null,
            "rawAmount": "100000",
            "tokenName": "USDT",
            "nftTokenId": null,
            "blockNumber": "7646155",
            "triggeredBy": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d",
            "tokenAddress": "0x419fe9f14ff3aa22e46ff1d03a73edf3b70a62ed",
            "tokenDecimals": "6",
            "approvalSpender": null,
            "transactionHash": "0xa1da1738225b012c328724454dd46db4279133cfbf4a3054c094f3986de9ffe0",
            "userOperationHash": null
          }
        }
      ],
      "metadata": {
        "custodianId": "custodianId",
        "environmentId": "environmentId"
      },
      "type": "EIP_155_TX_V1"
    }
    ```

    **Confirmed event (`confirmed: true`):**

    ```json theme={null}
    {
      "data": [
        {
          "to": "0xdfd8302f44727a6348f702ff7b594f127de3a902",
          "from": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d", // Your Portal wallet
          "amount": "0.1",
          "chainId": "eip155:11155111",
          "assetType": "NON_NATIVE_TOKEN",
          "chainName": "sepolia",
          "direction": "OUTBOUND",
          "tokenSymbol": "USDT",
          "metadata": {
            "fee": {
              "amount": "0.002395433635667721",
              "decimals": 18,
              "rawAmount": "2395433635667721",
              "tokenSymbol": "ETH"
            },
            "sentAt": "2025-02-05T16:58:36.000Z",
            "confirmed": true,
            "actualGasCost": null,
            "formattedActualGasCost": null,
            "rawAmount": "100000",
            "tokenName": "USDT",
            "nftTokenId": null,
            "blockNumber": "7646155",
            "triggeredBy": "0xab44dca8a4c606298d6be3e1b53115ed4785fe1d",
            "tokenAddress": "0x419fe9f14ff3aa22e46ff1d03a73edf3b70a62ed",
            "tokenDecimals": "6",
            "approvalSpender": null,
            "transactionHash": "0xa1da1738225b012c328724454dd46db4279133cfbf4a3054c094f3986de9ffe0",
            "userOperationHash": null
          }
        }
      ],
      "metadata": {
        "custodianId": "custodianId",
        "environmentId": "environmentId"
      },
      "type": "EIP_155_TX_V1"
    }
    ```
  </Tab>

  <Tab title="Approve token">
    **Unconfirmed event (`confirmed: false`):**

    ```json theme={null}
    {
      "data": [
        {
          "to": "0xee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5",
          "from": "0x8cd6145d0555b867a708ad92f311bc6d67d41fd2", // Your Portal wallet
          "amount": "0.12345",
          "chainId": "eip155:11155111",
          "metadata": {
            "fee": {
              "amount": "0.000472352150647304",
              "decimals": 18,
              "rawAmount": "472352150647304",
              "tokenSymbol": "ETH"
            },
            "sentAt": "2026-02-10T18:30:12.000Z",
            "confirmed": false,
            "actualGasCost": "0x39fb8298c6e800",
            "formattedActualGasCost": "16320612000000000",
            "rawAmount": "123450",
            "tokenName": "USDC",
            "nftTokenId": null,
            "blockNumber": "10233184",
            "triggeredBy": "0x8cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "tokenAddress": "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
            "tokenDecimals": "6",
            "approvalSpender": "0xee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5",
            "transactionHash": "0x39537e4f9a06d0356ea2c201190ff9fd2ffa4c1220c5b3eca7e15b1c03f64273",
            "userOperationHash": "0x13b97495af27950461811eb68667d3ca631f9a510d5fe6b422d964962fbe995a"
          },
          "assetType": "ERC20_APPROVAL",
          "chainName": "sepolia",
          "direction": "OUTBOUND",
          "tokenSymbol": "USDC"
        }
      ],
      "metadata": {
        "txs": [
          {
            "r": "39239007254912289268771055931432113831270460789053050427072713407646027577443",
            "s": "26623931638950271666893416961845058711739468843419989769967475848834369193733",
            "v": "0",
            "gas": "446711",
            "hash": "0x39537e4f9a06d0356ea2c201190ff9fd2ffa4c1220c5b3eca7e15b1c03f64273",
            "type": "2",
            "input": "0x1fad948c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000004337016838785634c63fce393bfc6222564436c4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000200de000000000000000000000000000000000000000000000000000000000001e41f000000000000000000000000000000000000000000000000000000000000d33c0000000000000000000000000000000000000000000000000000000054c87c2e0000000000000000000000000000000000000000000000000000000000195d3600000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104519454470000000000000000000000001c7d4b196cb0c7b01d743fbc6116a902379c72380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000ee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5000000000000000000000000000000000000000000000000000000000001e23a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000626666666666667849c56f2850848ce1c4da65c68b010000698b7b7f000000000000053dd9ed70c3f6ad900618ff48c6c00d5602d43378f8ca53f57e962c7a74e3cd38ecd4efa48743a0178be82451503ad6eadac99a6bab178321046537e6ef1a7a1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004500000000295dde855329661f3fbb2f2e84a269102acc5211aa255c3007e60368f2bc13b479bf98ea586f92485e23a404d125421d2ae2fda087337471c2e889535c6262bd1b000000000000000000000000000000000000000000000000000000",
            "nonce": "58551",
            "value": "0",
            "gasPrice": "1057399864",
            "toAddress": "0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789",
            "fromAddress": "0x4337016838785634c63fce393bfc6222564436c4",
            "receiptRoot": null,
            "triggered_by": ["0x8cd6145d0555b867a708ad92f311bc6d67d41fd2"],
            "receiptStatus": "1",
            "receiptGasUsed": "153229",
            "transactionFee": "0.000162024323760856",
            "transactionIndex": "97",
            "receiptContractAddress": null,
            "receiptCumulativeGasUsed": "19941570"
          }
        ],
        "logs": [
          {
            "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
            "topic0": "0x7a270f29ae17e8e2304ff1245deb50c3b6206bca82928d904f3e284d35c5ffd2",
            "topic1": "0x13b97495af27950461811eb68667d3ca631f9a510d5fe6b422d964962fbe995a",
            "topic2": "0x0000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "topic3": null,
            "address": "0x6666666666667849c56f2850848ce1c4da65c68b",
            "logIndex": "193",
            "triggered_by": ["0x8cd6145d0555b867a708ad92f311bc6d67d41fd2"],
            "transactionHash": "0x39537e4f9a06d0356ea2c201190ff9fd2ffa4c1220c5b3eca7e15b1c03f64273"
          },
          {
            "data": "0x000000000000000000000000000000000000000000000000000000000001e23a",
            "topic0": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
            "topic1": "0x0000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "topic2": "0x000000000000000000000000ee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5",
            "topic3": null,
            "address": "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
            "logIndex": "195",
            "triggered_by": [
              "0x8cd6145d0555b867a708ad92f311bc6d67d41fd2",
              "0xee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5"
            ],
            "transactionHash": "0x39537e4f9a06d0356ea2c201190ff9fd2ffa4c1220c5b3eca7e15b1c03f64273"
          },
          {
            "data": "0x00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000098b979dbd6590000000000000000000000000000000000000000000000000000000000026c4b",
            "topic0": "0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f",
            "topic1": "0x13b97495af27950461811eb68667d3ca631f9a510d5fe6b422d964962fbe995a",
            "topic2": "0x0000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "topic3": "0x0000000000000000000000006666666666667849c56f2850848ce1c4da65c68b",
            "address": "0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789",
            "logIndex": "196",
            "triggered_by": ["0x8cd6145d0555b867a708ad92f311bc6d67d41fd2"],
            "transactionHash": "0x39537e4f9a06d0356ea2c201190ff9fd2ffa4c1220c5b3eca7e15b1c03f64273"
          }
        ],
        "block": {
          "hash": "0x90e7bfd7100ae7858028e870efd6d195814ac2cb0ccadf88ebc3e901e053c77e",
          "number": "10233184",
          "timestamp": "1770748212"
        },
        "chainId": "eip155:11155111",
        "retries": 0,
        "confirmed": false,
        "custodianId": "cl7hygkd200063g6l5nn0",
        "environmentId": "8c95033b-f3f0-4a15-a4ae-8938e3087990"
      },
      "type": "EIP_155_TX_V1"
    }
    ```

    **Confirmed event (`confirmed: true`):**

    ```json theme={null}
    {
      "data": [
        {
          "to": "0xee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5",
          "from": "0x8cd6145d0555b867a708ad92f311bc6d67d41fd2", // Your Portal wallet
          "amount": "0.12345",
          "chainId": "eip155:11155111",
          "metadata": {
            "fee": {
              "amount": "0.000472352150647304",
              "decimals": 18,
              "rawAmount": "472352150647304",
              "tokenSymbol": "ETH"
            },
            "sentAt": "2026-02-10T18:30:12.000Z",
            "confirmed": true,
            "actualGasCost": "0x39fb8298c6e800",
            "formattedActualGasCost": "16320612000000000",
            "rawAmount": "123450",
            "tokenName": "USDC",
            "nftTokenId": null,
            "blockNumber": "10233184",
            "triggeredBy": "0x8cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "tokenAddress": "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
            "tokenDecimals": "6",
            "approvalSpender": "0xee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5",
            "transactionHash": "0x39537e4f9a06d0356ea2c201190ff9fd2ffa4c1220c5b3eca7e15b1c03f64273",
            "userOperationHash": "0x13b97495af27950461811eb68667d3ca631f9a510d5fe6b422d964962fbe995a"
          },
          "assetType": "ERC20_APPROVAL",
          "chainName": "sepolia",
          "direction": "OUTBOUND",
          "tokenSymbol": "USDC"
        }
      ],
      "metadata": {
        "txs": [
          {
            "r": "39239007254912289268771055931432113831270460789053050427072713407646027577443",
            "s": "26623931638950271666893416961845058711739468843419989769967475848834369193733",
            "v": "0",
            "gas": "446711",
            "hash": "0x39537e4f9a06d0356ea2c201190ff9fd2ffa4c1220c5b3eca7e15b1c03f64273",
            "type": "2",
            "input": "0x1fad948c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000004337016838785634c63fce393bfc6222564436c4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000200de000000000000000000000000000000000000000000000000000000000001e41f000000000000000000000000000000000000000000000000000000000000d33c0000000000000000000000000000000000000000000000000000000054c87c2e0000000000000000000000000000000000000000000000000000000000195d3600000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104519454470000000000000000000000001c7d4b196cb0c7b01d743fbc6116a902379c72380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000ee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5000000000000000000000000000000000000000000000000000000000001e23a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000626666666666667849c56f2850848ce1c4da65c68b010000698b7b7f000000000000053dd9ed70c3f6ad900618ff48c6c00d5602d43378f8ca53f57e962c7a74e3cd38ecd4efa48743a0178be82451503ad6eadac99a6bab178321046537e6ef1a7a1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004500000000295dde855329661f3fbb2f2e84a269102acc5211aa255c3007e60368f2bc13b479bf98ea586f92485e23a404d125421d2ae2fda087337471c2e889535c6262bd1b000000000000000000000000000000000000000000000000000000",
            "nonce": "58551",
            "value": "0",
            "gasPrice": "1057399864",
            "toAddress": "0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789",
            "fromAddress": "0x4337016838785634c63fce393bfc6222564436c4",
            "receiptRoot": null,
            "triggered_by": ["0x8cd6145d0555b867a708ad92f311bc6d67d41fd2"],
            "receiptStatus": "1",
            "receiptGasUsed": "153229",
            "transactionFee": "0.000162024323760856",
            "transactionIndex": "97",
            "receiptContractAddress": null,
            "receiptCumulativeGasUsed": "19941570"
          }
        ],
        "logs": [
          {
            "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
            "topic0": "0x7a270f29ae17e8e2304ff1245deb50c3b6206bca82928d904f3e284d35c5ffd2",
            "topic1": "0x13b97495af27950461811eb68667d3ca631f9a510d5fe6b422d964962fbe995a",
            "topic2": "0x0000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "topic3": null,
            "address": "0x6666666666667849c56f2850848ce1c4da65c68b",
            "logIndex": "193",
            "triggered_by": ["0x8cd6145d0555b867a708ad92f311bc6d67d41fd2"],
            "transactionHash": "0x39537e4f9a06d0356ea2c201190ff9fd2ffa4c1220c5b3eca7e15b1c03f64273"
          },
          {
            "data": "0x000000000000000000000000000000000000000000000000000000000001e23a",
            "topic0": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
            "topic1": "0x0000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "topic2": "0x000000000000000000000000ee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5",
            "topic3": null,
            "address": "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
            "logIndex": "195",
            "triggered_by": [
              "0x8cd6145d0555b867a708ad92f311bc6d67d41fd2",
              "0xee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5"
            ],
            "transactionHash": "0x39537e4f9a06d0356ea2c201190ff9fd2ffa4c1220c5b3eca7e15b1c03f64273"
          },
          {
            "data": "0x00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000098b979dbd6590000000000000000000000000000000000000000000000000000000000026c4b",
            "topic0": "0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f",
            "topic1": "0x13b97495af27950461811eb68667d3ca631f9a510d5fe6b422d964962fbe995a",
            "topic2": "0x0000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "topic3": "0x0000000000000000000000006666666666667849c56f2850848ce1c4da65c68b",
            "address": "0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789",
            "logIndex": "196",
            "triggered_by": ["0x8cd6145d0555b867a708ad92f311bc6d67d41fd2"],
            "transactionHash": "0x39537e4f9a06d0356ea2c201190ff9fd2ffa4c1220c5b3eca7e15b1c03f64273"
          }
        ],
        "block": {
          "hash": "0x90e7bfd7100ae7858028e870efd6d195814ac2cb0ccadf88ebc3e901e053c77e",
          "number": "10233184",
          "timestamp": "1770748212"
        },
        "chainId": "eip155:11155111",
        "retries": 0,
        "confirmed": true,
        "custodianId": "cl7hygkd200063g6l5nn0",
        "environmentId": "8c95033b-f3f0-4a15-a4ae-8938e3087990"
      },
      "type": "EIP_155_TX_V1"
    }
    ```
  </Tab>

  <Tab title="Revoke approval">
    **Unconfirmed event (`confirmed: false`):**

    ```json theme={null}
    {
      "data": [
        {
          "to": "0xee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5",
          "from": "0x8cd6145d0555b867a708ad92f311bc6d67d41fd2", // Your Portal wallet
          "amount": "0",
          "chainId": "eip155:11155111",
          "metadata": {
            "fee": {
              "amount": "0.000445696678391486",
              "decimals": 18,
              "rawAmount": "445696678391486",
              "tokenSymbol": "ETH"
            },
            "sentAt": "2026-02-10T18:37:12.000Z",
            "confirmed": false,
            "actualGasCost": "0x39fb8298c6e800",
            "formattedActualGasCost": "16320612000000000",
            "rawAmount": "0",
            "tokenName": "USDC",
            "nftTokenId": null,
            "blockNumber": "10233219",
            "triggeredBy": "0x8cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "tokenAddress": "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
            "tokenDecimals": "6",
            "approvalSpender": "0xee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5",
            "transactionHash": "0x433aade80380542c5f7294ba4eb43d08bb09352a605a1e41eeab88a823d4bb95",
            "userOperationHash": "0xf55e82b32f6d94a13607882f976a45834f2555faa871b1ea93c74ddc50857ede"
          },
          "assetType": "ERC20_APPROVAL",
          "chainName": "sepolia",
          "direction": "OUTBOUND",
          "tokenSymbol": "USDC"
        }
      ],
      "metadata": {
        "txs": [
          {
            "r": "69800324002112404822417539847516648270674922755017207604406921620605970296563",
            "s": "4822640581286792349111363455420646915276302091523407157768067240978332247031",
            "v": "1",
            "gas": "420689",
            "hash": "0x433aade80380542c5f7294ba4eb43d08bb09352a605a1e41eeab88a823d4bb95",
            "type": "2",
            "input": "0x1fad948c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000004337013ef5cd421cef649fc58c1b0defd37bbeb1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000001a396000000000000000000000000000000000000000000000000000000000001e41f000000000000000000000000000000000000000000000000000000000000d3140000000000000000000000000000000000000000000000000000000050bfe2440000000000000000000000000000000000000000000000000000000000195d3600000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104519454470000000000000000000000001c7d4b196cb0c7b01d743fbc6116a902379c72380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000ee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000626666666666667849c56f2850848ce1c4da65c68b010000698b7d21000000000000d40df9ba9d664ab5a8ff593573c305b43d64e873527d5cf6ce67dc48f99c16fa7f20287cc8c6c962d52a148fcafc96ec8b40606fb5a07c9da959e9f35207a5fe1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004500000000bb5aaeb821928ef77ebdc0fe2e8c78fcec7e77cb7f7ab4892c33308605436aea164785e076475f85cbc15d70d937422a12d9a4735d9714ffde7e41fd1776e2321c000000000000000000000000000000000000000000000000000000",
            "nonce": "58458",
            "value": "0",
            "gasPrice": "1059444574",
            "toAddress": "0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789",
            "fromAddress": "0x4337013ef5cd421cef649fc58c1b0defd37bbeb1",
            "receiptRoot": null,
            "triggered_by": ["0x8cd6145d0555b867a708ad92f311bc6d67d41fd2"],
            "receiptStatus": "1",
            "receiptGasUsed": "133305",
            "transactionFee": "0.000141229258937070",
            "transactionIndex": "96",
            "receiptContractAddress": null,
            "receiptCumulativeGasUsed": "11334942"
          }
        ],
        "logs": [
          {
            "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
            "topic0": "0x7a270f29ae17e8e2304ff1245deb50c3b6206bca82928d904f3e284d35c5ffd2",
            "topic1": "0xf55e82b32f6d94a13607882f976a45834f2555faa871b1ea93c74ddc50857ede",
            "topic2": "0x0000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "topic3": null,
            "address": "0x6666666666667849c56f2850848ce1c4da65c68b",
            "logIndex": "161",
            "triggered_by": ["0x8cd6145d0555b867a708ad92f311bc6d67d41fd2"],
            "transactionHash": "0x433aade80380542c5f7294ba4eb43d08bb09352a605a1e41eeab88a823d4bb95"
          },
          {
            "data": "0x0000000000000000000000000000000000000000000000000000000000000000",
            "topic0": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
            "topic1": "0x0000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "topic2": "0x000000000000000000000000ee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5",
            "topic3": null,
            "address": "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
            "logIndex": "163",
            "triggered_by": [
              "0x8cd6145d0555b867a708ad92f311bc6d67d41fd2",
              "0xee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5"
            ],
            "transactionHash": "0x433aade80380542c5f7294ba4eb43d08bb09352a605a1e41eeab88a823d4bb95"
          },
          {
            "data": "0x00000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000085ce15510c570000000000000000000000000000000000000000000000000000000000021e67",
            "topic0": "0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f",
            "topic1": "0xf55e82b32f6d94a13607882f976a45834f2555faa871b1ea93c74ddc50857ede",
            "topic2": "0x0000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "topic3": "0x0000000000000000000000006666666666667849c56f2850848ce1c4da65c68b",
            "address": "0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789",
            "logIndex": "164",
            "triggered_by": ["0x8cd6145d0555b867a708ad92f311bc6d67d41fd2"],
            "transactionHash": "0x433aade80380542c5f7294ba4eb43d08bb09352a605a1e41eeab88a823d4bb95"
          }
        ],
        "block": {
          "hash": "0x2778642f3ff6ae0dd81b8fa81185ab4f6bd7f7b28197eaba1593808cac0cd985",
          "number": "10233219",
          "timestamp": "1770748632"
        },
        "chainId": "eip155:11155111",
        "retries": 0,
        "confirmed": false,
        "custodianId": "cl7hygkd200063g6l5nn0",
        "environmentId": "8c95033b-f3f0-4a15-a4ae-8938e3087990"
      },
      "type": "EIP_155_TX_V1"
    }
    ```

    **Confirmed event (`confirmed: true`):**

    ```json theme={null}
    {
      "data": [
        {
          "to": "0xee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5",
          "from": "0x8cd6145d0555b867a708ad92f311bc6d67d41fd2", // Your Portal wallet
          "amount": "0",
          "chainId": "eip155:11155111",
          "metadata": {
            "fee": {
              "amount": "0.000445696678391486",
              "decimals": 18,
              "rawAmount": "445696678391486",
              "tokenSymbol": "ETH"
            },
            "sentAt": "2026-02-10T18:37:12.000Z",
            "confirmed": true,
            "actualGasCost": "0x39fb8298c6e800",
            "formattedActualGasCost": "16320612000000000",
            "rawAmount": "0",
            "tokenName": "USDC",
            "nftTokenId": null,
            "blockNumber": "10233219",
            "triggeredBy": "0x8cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "tokenAddress": "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
            "tokenDecimals": "6",
            "approvalSpender": "0xee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5",
            "transactionHash": "0x433aade80380542c5f7294ba4eb43d08bb09352a605a1e41eeab88a823d4bb95",
            "userOperationHash": "0xf55e82b32f6d94a13607882f976a45834f2555faa871b1ea93c74ddc50857ede"
          },
          "assetType": "ERC20_APPROVAL",
          "chainName": "sepolia",
          "direction": "OUTBOUND",
          "tokenSymbol": "USDC"
        }
      ],
      "metadata": {
        "txs": [
          {
            "r": "69800324002112404822417539847516648270674922755017207604406921620605970296563",
            "s": "4822640581286792349111363455420646915276302091523407157768067240978332247031",
            "v": "1",
            "gas": "420689",
            "hash": "0x433aade80380542c5f7294ba4eb43d08bb09352a605a1e41eeab88a823d4bb95",
            "type": "2",
            "input": "0x1fad948c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000004337013ef5cd421cef649fc58c1b0defd37bbeb1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000001a396000000000000000000000000000000000000000000000000000000000001e41f000000000000000000000000000000000000000000000000000000000000d3140000000000000000000000000000000000000000000000000000000050bfe2440000000000000000000000000000000000000000000000000000000000195d3600000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104519454470000000000000000000000001c7d4b196cb0c7b01d743fbc6116a902379c72380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000ee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000626666666666667849c56f2850848ce1c4da65c68b010000698b7d21000000000000d40df9ba9d664ab5a8ff593573c305b43d64e873527d5cf6ce67dc48f99c16fa7f20287cc8c6c962d52a148fcafc96ec8b40606fb5a07c9da959e9f35207a5fe1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004500000000bb5aaeb821928ef77ebdc0fe2e8c78fcec7e77cb7f7ab4892c33308605436aea164785e076475f85cbc15d70d937422a12d9a4735d9714ffde7e41fd1776e2321c000000000000000000000000000000000000000000000000000000",
            "nonce": "58458",
            "value": "0",
            "gasPrice": "1059444574",
            "toAddress": "0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789",
            "fromAddress": "0x4337013ef5cd421cef649fc58c1b0defd37bbeb1",
            "receiptRoot": null,
            "triggered_by": ["0x8cd6145d0555b867a708ad92f311bc6d67d41fd2"],
            "receiptStatus": "1",
            "receiptGasUsed": "133305",
            "transactionFee": "0.000141229258937070",
            "transactionIndex": "96",
            "receiptContractAddress": null,
            "receiptCumulativeGasUsed": "11334942"
          }
        ],
        "logs": [
          {
            "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
            "topic0": "0x7a270f29ae17e8e2304ff1245deb50c3b6206bca82928d904f3e284d35c5ffd2",
            "topic1": "0xf55e82b32f6d94a13607882f976a45834f2555faa871b1ea93c74ddc50857ede",
            "topic2": "0x0000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "topic3": null,
            "address": "0x6666666666667849c56f2850848ce1c4da65c68b",
            "logIndex": "161",
            "triggered_by": ["0x8cd6145d0555b867a708ad92f311bc6d67d41fd2"],
            "transactionHash": "0x433aade80380542c5f7294ba4eb43d08bb09352a605a1e41eeab88a823d4bb95"
          },
          {
            "data": "0x0000000000000000000000000000000000000000000000000000000000000000",
            "topic0": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
            "topic1": "0x0000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "topic2": "0x000000000000000000000000ee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5",
            "topic3": null,
            "address": "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
            "logIndex": "163",
            "triggered_by": [
              "0x8cd6145d0555b867a708ad92f311bc6d67d41fd2",
              "0xee5ca6275c9cfaec5ad42b40ebdbe6073fbcc4a5"
            ],
            "transactionHash": "0x433aade80380542c5f7294ba4eb43d08bb09352a605a1e41eeab88a823d4bb95"
          },
          {
            "data": "0x00000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000085ce15510c570000000000000000000000000000000000000000000000000000000000021e67",
            "topic0": "0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f",
            "topic1": "0xf55e82b32f6d94a13607882f976a45834f2555faa871b1ea93c74ddc50857ede",
            "topic2": "0x0000000000000000000000008cd6145d0555b867a708ad92f311bc6d67d41fd2",
            "topic3": "0x0000000000000000000000006666666666667849c56f2850848ce1c4da65c68b",
            "address": "0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789",
            "logIndex": "164",
            "triggered_by": ["0x8cd6145d0555b867a708ad92f311bc6d67d41fd2"],
            "transactionHash": "0x433aade80380542c5f7294ba4eb43d08bb09352a605a1e41eeab88a823d4bb95"
          }
        ],
        "block": {
          "hash": "0x2778642f3ff6ae0dd81b8fa81185ab4f6bd7f7b28197eaba1593808cac0cd985",
          "number": "10233219",
          "timestamp": "1770748632"
        },
        "chainId": "eip155:11155111",
        "retries": 0,
        "confirmed": true,
        "custodianId": "cl7hygkd200063g6l5nn0",
        "environmentId": "8c95033b-f3f0-4a15-a4ae-8938e3087990"
      },
      "type": "EIP_155_TX_V1"
    }
    ```
  </Tab>
</Tabs>

## Solana transactions

Every Solana event wraps the transaction in `data.rawEvents`, an array with one item. The envelope's `metadata` includes `environmentId`, `isDevnet`, and `eventTypes`, and doesn't include `custodianId`.

Portal sends one event for each watched address involved in a transaction, once the transaction is confirmed. `triggeredBy` is the watched address the event was sent for, and `direction` is the role that address played:

| `direction` | The `triggeredBy` address |
| - | - |
| `OUTBOUND` | Sent the tokens, approved or revoked a delegate, or executed a delegated transfer. |
| `INBOUND` | Received the tokens, or was approved as a delegate. |
| `DELEGATED` | Owned the tokens a delegate moved. Only on delegated transfers. |

Solana events support up to 1,000,000 watched addresses. Contact our team if you need more. After you create a client, it can take up to 4 minutes before Portal sends Solana events for it.

The fields in each `data.rawEvents[]` item:

| Field | Type | Description |
| - | - | - |
| `signature` | String | The transaction signature. |
| `type` | String | `TRANSFER`, `APPROVE`, `REVOKE`, or `DELEGATED_TRANSFER`. |
| `triggeredBy` | String | The watched address this event was sent for. |
| `direction` | String | `OUTBOUND`, `INBOUND`, or `DELEGATED`. |
| `timestamp` | Number | The block time, in Unix seconds. |
| `slot` | Number | The slot the transaction landed in. |
| `fee` | Number | The fee in lamports. |
| `feePayer` | String | The address that paid the fee. |
| `recentBlockhash` | String | The transaction's recent blockhash, base58-encoded. |
| `description` | String | A human-readable summary of the transaction. |
| `source` | String | The program that produced the transaction, such as `SYSTEM_PROGRAM`. |
| `nativeTransfers` | Array | SOL movements: `fromUserAccount`, `toUserAccount`, and `amount` in lamports. |
| `tokenTransfers` | Array | SPL token movements, with the mint and the token amount. |
| `accountData` | Array | Balance changes for each account in the transaction. |
| `instructions` | Array | The transaction's instructions. |
| `events` | Object | Parsed program events. |
| `transactionError` | Object or `null` | The error, if the transaction failed. |

### Wallet transactions (`SOLANA_TX_V2`)

Portal sends this event when a watched Solana address sends or receives SOL or an SPL token, such as USDC. Delegated transfers are a separate event, `SOLANA_DELEGATED_TRANSFER_V2`, described below.

You need this event to subscribe to the other Solana events in the group.

<Tabs>
  <Tab title="Receive 0.01 SOL">
    ```json theme={null}
    {
      "data": {
        "rawEvents": [
          {
            "fee": 80000,
            "slot": 379135212,
            "type": "TRANSFER",
            "events": {},
            "source": "SYSTEM_PROGRAM",
            "feePayer": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
            "signature": "5hyWP82Fn951zjo5DHWAvAC8NjwU7LAKqR3Rpn7sB1H159koer8BefYSSCRuC7X3xVy6rHvMzM7sYHLBwxTAEeUY",
            "timestamp": 1746565669,
            "triggeredBy": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
            "direction": "INBOUND",
            "accountData": [
              {
                "account": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                "nativeBalanceChange": -10080000,
                "tokenBalanceChanges": []
              },
              {
                "account": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                "nativeBalanceChange": 10000000,
                "tokenBalanceChanges": []
              },
              {
                "account": "11111111111111111111111111111111",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              },
              {
                "account": "ComputeBudget111111111111111111111111111111",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              }
            ],
            "description": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H transferred 0.01 SOL to 67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx.",
            "instructions": [
              {
                "data": "3b1H8Rq1T3d1",
                "accounts": [],
                "programId": "ComputeBudget111111111111111111111111111111",
                "innerInstructions": []
              },
              {
                "data": "LKoyXd",
                "accounts": [],
                "programId": "ComputeBudget111111111111111111111111111111",
                "innerInstructions": []
              },
              {
                "data": "3Bxs4NN8M2Yn4TLb",
                "accounts": [
                  "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                  "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx"
                ],
                "programId": "11111111111111111111111111111111",
                "innerInstructions": []
              }
            ],
            "tokenTransfers": [],
            "nativeTransfers": [
              {
                "amount": 10000000,
                "toUserAccount": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                "fromUserAccount": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H"
              }
            ],
            "recentBlockhash": "2d7rAqbS4ZFsroMHkxA8kmJdvmoPy4mtZRqCpSNTa1DQ",
            "transactionError": null
          }
        ]
      },
      "metadata": {
        "isDevnet": true,
        "eventTypes": ["TRANSFER"],
        "environmentId": "environmentId"
      },
      "type": "SOLANA_TX_V2"
    }
    ```
  </Tab>

  <Tab title="Send 0.0002 SOL">
    ```json theme={null}
    {
      "data": {
        "rawEvents": [
          {
            "fee": 5000,
            "slot": 379135804,
            "type": "TRANSFER",
            "events": {},
            "source": "SYSTEM_PROGRAM",
            "feePayer": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
            "signature": "KENcRJpHNowJcpDwPvB2yR6VnDzMbQu5Nd1om5K1Y3cjdS3ujStBWYtz3EMhY1UvzykShhdZSUShwZrmYWbxfAF",
            "timestamp": 1746565903,
            "triggeredBy": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
            "direction": "OUTBOUND",
            "accountData": [
              {
                "account": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                "nativeBalanceChange": -205000,
                "tokenBalanceChanges": []
              },
              {
                "account": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                "nativeBalanceChange": 200000,
                "tokenBalanceChanges": []
              },
              {
                "account": "11111111111111111111111111111111",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              }
            ],
            "description": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx transferred 0.0002 SOL to 75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H.",
            "instructions": [
              {
                "data": "3Bxs4Ba2u7BkmhYB",
                "accounts": [
                  "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                  "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H"
                ],
                "programId": "11111111111111111111111111111111",
                "innerInstructions": []
              }
            ],
            "tokenTransfers": [],
            "nativeTransfers": [
              {
                "amount": 200000,
                "toUserAccount": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                "fromUserAccount": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx"
              }
            ],
            "recentBlockhash": "2d7rAqbS4ZFsroMHkxA8kmJdvmoPy4mtZRqCpSNTa1DQ",
            "transactionError": null
          }
        ]
      },
      "metadata": {
        "isDevnet": true,
        "eventTypes": ["TRANSFER"],
        "environmentId": "environmentId"
      },
      "type": "SOLANA_TX_V2"
    }
    ```
  </Tab>

  <Tab title="Receive 0.0001 USDC">
    ```json theme={null}
    {
      "data": {
        "rawEvents": [
          {
            "fee": 80001,
            "slot": 413214028,
            "type": "TRANSFER",
            "events": {},
            "source": "SOLANA_PROGRAM_LIBRARY",
            "feePayer": "9Nmpej98v2kEAXtc4AD52EbQAFrc3ikRe881LehqsEHD",
            "signature": "3Cek3WrggVJ6PgwMXgnEZS4pyCqbLpZeeo2HWhJYB1McZoKZvyQU497F2yRnTJ3UWBoKcpeL8rd3Bw4pu4FKxyNo",
            "timestamp": 1776189489,
            "triggeredBy": "49bNwvPHy3krxWLBU3qrK5Gm1RPFqWDXB8xaawcjyCjd",
            "direction": "INBOUND",
            "accountData": [
              {
                "account": "9Nmpej98v2kEAXtc4AD52EbQAFrc3ikRe881LehqsEHD",
                "nativeBalanceChange": -80001,
                "tokenBalanceChanges": []
              },
              {
                "account": "C2NWfgp2qUb2papQzy28XQPCxeT84zDLSPJRZvXGeZBp",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": [
                  {
                    "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                    "userAccount": "49bNwvPHy3krxWLBU3qrK5Gm1RPFqWDXB8xaawcjyCjd",
                    "tokenAccount": "C2NWfgp2qUb2papQzy28XQPCxeT84zDLSPJRZvXGeZBp",
                    "rawTokenAmount": {
                      "decimals": 6,
                      "tokenAmount": "100"
                    }
                  }
                ]
              },
              {
                "account": "C8wu1R39Brrbf8BrKB6uNQbv1pr43RopsQ2LknfdHa6A",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": [
                  {
                    "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                    "userAccount": "9Nmpej98v2kEAXtc4AD52EbQAFrc3ikRe881LehqsEHD",
                    "tokenAccount": "C8wu1R39Brrbf8BrKB6uNQbv1pr43RopsQ2LknfdHa6A",
                    "rawTokenAmount": {
                      "decimals": 6,
                      "tokenAmount": "-100"
                    }
                  }
                ]
              },
              {
                "account": "ComputeBudget111111111111111111111111111111",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              },
              {
                "account": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              },
              {
                "account": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              }
            ],
            "description": "9Nmpej98v2kEAXtc4AD52EbQAFrc3ikRe881LehqsEHD transferred 0.0001 USDC to 49bNwvPHy3krxWLBU3qrK5Gm1RPFqWDXB8xaawcjyCjd.",
            "instructions": [
              {
                "data": "3TQPSi2v9sgs",
                "accounts": [],
                "programId": "ComputeBudget111111111111111111111111111111",
                "innerInstructions": []
              },
              {
                "data": "J9y72F",
                "accounts": [],
                "programId": "ComputeBudget111111111111111111111111111111",
                "innerInstructions": []
              },
              {
                "data": "hNmtbNYibdzwf",
                "accounts": [
                  "C8wu1R39Brrbf8BrKB6uNQbv1pr43RopsQ2LknfdHa6A",
                  "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                  "C2NWfgp2qUb2papQzy28XQPCxeT84zDLSPJRZvXGeZBp",
                  "9Nmpej98v2kEAXtc4AD52EbQAFrc3ikRe881LehqsEHD",
                  "9Nmpej98v2kEAXtc4AD52EbQAFrc3ikRe881LehqsEHD"
                ],
                "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
                "innerInstructions": []
              }
            ],
            "tokenTransfers": [
              {
                "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "tokenAmount": 0.0001,
                "toUserAccount": "49bNwvPHy3krxWLBU3qrK5Gm1RPFqWDXB8xaawcjyCjd",
                "tokenStandard": "Fungible",
                "toTokenAccount": "C2NWfgp2qUb2papQzy28XQPCxeT84zDLSPJRZvXGeZBp",
                "fromUserAccount": "9Nmpej98v2kEAXtc4AD52EbQAFrc3ikRe881LehqsEHD",
                "fromTokenAccount": "C8wu1R39Brrbf8BrKB6uNQbv1pr43RopsQ2LknfdHa6A"
              }
            ],
            "nativeTransfers": [],
            "recentBlockhash": "2d7rAqbS4ZFsroMHkxA8kmJdvmoPy4mtZRqCpSNTa1DQ",
            "transactionError": null
          }
        ]
      },
      "metadata": {
        "isDevnet": false,
        "eventTypes": ["TRANSFER"],
        "environmentId": "environmentId"
      },
      "type": "SOLANA_TX_V2"
    }
    ```
  </Tab>
</Tabs>

### Token approvals (`SOLANA_APPROVE_V2`)

Portal sends this event when a watched address approves a delegate to spend an SPL token on its behalf, or is approved as one. `direction` is `OUTBOUND` for the owner and `INBOUND` for the delegate.

Requires **Wallet transactions** in the Solana group.

```json theme={null}
{
  "data": {
    "rawEvents": [
      {
        "fee": 10000,
        "slot": 438851116,
        "type": "APPROVE",
        "events": {},
        "source": "SOLANA_PROGRAM_LIBRARY",
        "feePayer": "98aauPkabddWQVyHWNw5LJLDb84ETKfN2xYUy1Zr2sQy",
        "signature": "7fLggf2PBHnH8QfWTzWjjpXKcyUj9h2roR6tCBxAAHJoiLyuYEDx95RqJNz1vnjFSJ8vyaZpanCgEHVLdVvX9Ng",
        "timestamp": 1769837881,
        "triggeredBy": "J4AVMHNUkxhjUmWg25RTfysAEx7FnRYymT2xZkc12sKK",
        "direction": "OUTBOUND",
        "accountData": [
          {
            "account": "98aauPkabddWQVyHWNw5LJLDb84ETKfN2xYUy1Zr2sQy",
            "nativeBalanceChange": -10000,
            "tokenBalanceChanges": []
          },
          {
            "account": "J4AVMHNUkxhjUmWg25RTfysAEx7FnRYymT2xZkc12sKK",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          },
          {
            "account": "pQxS4DANX5uMkDkzJSk2dSBnrEWZ1enUL2XkKF6Nhbh",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          },
          {
            "account": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          },
          {
            "account": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          }
        ],
        "description": "",
        "instructions": [
          {
            "data": "3xHiPX82ia9u",
            "accounts": [
              "pQxS4DANX5uMkDkzJSk2dSBnrEWZ1enUL2XkKF6Nhbh",
              "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
              "J4AVMHNUkxhjUmWg25RTfysAEx7FnRYymT2xZkc12sKK"
            ],
            "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
            "innerInstructions": []
          }
        ],
        "tokenTransfers": [],
        "nativeTransfers": [],
        "recentBlockhash": "2d7rAqbS4ZFsroMHkxA8kmJdvmoPy4mtZRqCpSNTa1DQ",
        "transactionError": null
      }
    ]
  },
  "metadata": {
    "isDevnet": true,
    "eventTypes": ["APPROVE"],
    "environmentId": "environmentId"
  },
  "type": "SOLANA_APPROVE_V2"
}
```

### Token revocations (`SOLANA_REVOKE_V2`)

Portal sends this event when a watched address revokes a delegate's approval to spend an SPL token. `direction` is always `OUTBOUND`.

Requires **Wallet transactions** in the Solana group.

```json theme={null}
{
  "data": {
    "rawEvents": [
      {
        "fee": 10000,
        "slot": 438851202,
        "type": "REVOKE",
        "events": {},
        "source": "SOLANA_PROGRAM_LIBRARY",
        "feePayer": "98aauPkabddWQVyHWNw5LJLDb84ETKfN2xYUy1Zr2sQy",
        "signature": "3p4qVucEtUhZ3GbsQv3ZQS2mTRsziSgJs6B7gre34X2xnG2WPkaNvHuk9wDRJ2kKzKa8M7Rmykpr6wTtYLRuY9oh",
        "timestamp": 1769837914,
        "triggeredBy": "98aauPkabddWQVyHWNw5LJLDb84ETKfN2xYUy1Zr2sQy",
        "direction": "OUTBOUND",
        "accountData": [
          {
            "account": "98aauPkabddWQVyHWNw5LJLDb84ETKfN2xYUy1Zr2sQy",
            "nativeBalanceChange": -10000,
            "tokenBalanceChanges": []
          },
          {
            "account": "J4AVMHNUkxhjUmWg25RTfysAEx7FnRYymT2xZkc12sKK",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          },
          {
            "account": "pQxS4DANX5uMkDkzJSk2dSBnrEWZ1enUL2XkKF6Nhbh",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          },
          {
            "account": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          }
        ],
        "description": "",
        "instructions": [
          {
            "data": "6",
            "accounts": [
              "pQxS4DANX5uMkDkzJSk2dSBnrEWZ1enUL2XkKF6Nhbh",
              "J4AVMHNUkxhjUmWg25RTfysAEx7FnRYymT2xZkc12sKK"
            ],
            "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
            "innerInstructions": []
          }
        ],
        "tokenTransfers": [],
        "nativeTransfers": [],
        "recentBlockhash": "2d7rAqbS4ZFsroMHkxA8kmJdvmoPy4mtZRqCpSNTa1DQ",
        "transactionError": null
      }
    ]
  },
  "metadata": {
    "isDevnet": true,
    "eventTypes": ["REVOKE"],
    "environmentId": "environmentId"
  },
  "type": "SOLANA_REVOKE_V2"
}
```

### Delegated transfers (`SOLANA_DELEGATED_TRANSFER_V2`)

Portal sends this event when a delegate spends tokens it was approved to spend. For example, if address A approves address B to spend its USDC, and B later sends some of A's USDC to C, Portal sends this event. Each watched address gets its own event:

* `OUTBOUND` for the delegate that executed the transfer (B).
* `INBOUND` for the recipient (C).
* `DELEGATED` for the owner whose tokens moved (A).

Requires **Wallet transactions** in the Solana group.

```json theme={null}
{
  "data": {
    "rawEvents": [
      {
        "fee": 10000,
        "slot": 413227505,
        "type": "DELEGATED_TRANSFER",
        "events": {},
        "source": "SOLANA_PROGRAM_LIBRARY",
        "feePayer": "2eWxXEVjmyBxaJCPRmZJqtpYm7wkyXfmcNAwFPHBpwLx",
        "signature": "5BFuHM8bMUVfHuwFc4DHoPQsYMbwhYWLGkjv41Lu5dn4wuRb23mK5oDJirjQxKadGYYWzTmSYnUMUed3Reef6Mxx",
        "timestamp": 1776194807,
        "triggeredBy": "9Nmpej98v2kEAXtc4AD52EbQAFrc3ikRe881LehqsEHD",
        "direction": "INBOUND",
        "accountData": [
          {
            "account": "2eWxXEVjmyBxaJCPRmZJqtpYm7wkyXfmcNAwFPHBpwLx",
            "nativeBalanceChange": -10000,
            "tokenBalanceChanges": []
          },
          {
            "account": "9rG4md1zvwpP1NtjMg48HutvuWYaHXerYat2C2E4PAz7",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          },
          {
            "account": "C2NWfgp2qUb2papQzy28XQPCxeT84zDLSPJRZvXGeZBp",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": [
              {
                "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "userAccount": "49bNwvPHy3krxWLBU3qrK5Gm1RPFqWDXB8xaawcjyCjd",
                "tokenAccount": "C2NWfgp2qUb2papQzy28XQPCxeT84zDLSPJRZvXGeZBp",
                "rawTokenAmount": {
                  "decimals": 6,
                  "tokenAmount": "-1"
                }
              }
            ]
          },
          {
            "account": "C8wu1R39Brrbf8BrKB6uNQbv1pr43RopsQ2LknfdHa6A",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": [
              {
                "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "userAccount": "9Nmpej98v2kEAXtc4AD52EbQAFrc3ikRe881LehqsEHD",
                "tokenAccount": "C8wu1R39Brrbf8BrKB6uNQbv1pr43RopsQ2LknfdHa6A",
                "rawTokenAmount": {
                  "decimals": 6,
                  "tokenAmount": "1"
                }
              }
            ]
          },
          {
            "account": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          }
        ],
        "description": "9rG4md1zvwpP1NtjMg48HutvuWYaHXerYat2C2E4PAz7 transferred 0.000001 USDC to 9Nmpej98v2kEAXtc4AD52EbQAFrc3ikRe881LehqsEHD.",
        "instructions": [
          {
            "data": "3DdGGhkhJbjm",
            "accounts": [
              "C2NWfgp2qUb2papQzy28XQPCxeT84zDLSPJRZvXGeZBp",
              "C8wu1R39Brrbf8BrKB6uNQbv1pr43RopsQ2LknfdHa6A",
              "9rG4md1zvwpP1NtjMg48HutvuWYaHXerYat2C2E4PAz7"
            ],
            "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
            "innerInstructions": []
          }
        ],
        "tokenTransfers": [
          {
            "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
            "tokenAmount": 0.000001,
            "toUserAccount": "9Nmpej98v2kEAXtc4AD52EbQAFrc3ikRe881LehqsEHD",
            "tokenStandard": "Fungible",
            "toTokenAccount": "C8wu1R39Brrbf8BrKB6uNQbv1pr43RopsQ2LknfdHa6A",
            "fromUserAccount": "9rG4md1zvwpP1NtjMg48HutvuWYaHXerYat2C2E4PAz7",
            "fromTokenAccount": "C2NWfgp2qUb2papQzy28XQPCxeT84zDLSPJRZvXGeZBp"
          }
        ],
        "nativeTransfers": [],
        "recentBlockhash": "2d7rAqbS4ZFsroMHkxA8kmJdvmoPy4mtZRqCpSNTa1DQ",
        "transactionError": null
      }
    ]
  },
  "metadata": {
    "isDevnet": false,
    "eventTypes": ["DELEGATED_TRANSFER"],
    "environmentId": "environmentId"
  },
  "type": "SOLANA_DELEGATED_TRANSFER_V2"
}
```

## Wallet lifecycle

Each Portal client has a key on two curves, `SECP256K1` and `ED25519`, and each curve has its own `walletId`. The wallet lifecycle events are sent once per curve, so you usually get two events for one action, with the same `clientId` and different `walletId` values.

The envelope's `metadata` includes `custodianId` and `environmentId`.

### Wallet created (`WALLET_GENERATE_V1`)

Portal sends this event when a client creates a wallet and stores its signing share.

| Field | Type | Description |
| - | - | - |
| `data.clientId` | String | The client that created the wallet. |
| `data.walletId` | String | The wallet for this curve. |
| `data.signingSharePairId` | String | The signing share pair stored for this curve. |
| `data.curve` | String or `null` | `SECP256K1` or `ED25519`. `null` if unknown. |

```json theme={null}
{
  "data": {
    "clientId": "clientId",
    "walletId": "walletId",
    "signingSharePairId": "signingSharePairId",
    "curve": "SECP256K1"
  },
  "metadata": {
    "custodianId": "custodianId",
    "environmentId": "environmentId"
  },
  "type": "WALLET_GENERATE_V1"
}
```

### Wallet backed up (`WALLET_BACKUP_V1`)

Portal sends this event when a client backs up a wallet. If the client backs up with more than one method, you get one event per method per curve.

| Field | Type | Description |
| - | - | - |
| `data.clientId` | String | The client that backed up the wallet. |
| `data.walletId` | String | The wallet for this curve. |
| `data.curve` | String or `null` | `SECP256K1` or `ED25519`. `null` if unknown. |
| `data.backupMethod` | String | The backup method, such as `GDRIVE`, `ICLOUD`, `PASSWORD`, or `PASSKEY`. |
| `data.backupSharePairId` | String | The backup share pair stored for this curve. |

```json theme={null}
{
  "data": {
    "clientId": "clientId",
    "walletId": "walletId",
    "curve": "SECP256K1",
    "backupMethod": "GDRIVE",
    "backupSharePairId": "backupSharePairId"
  },
  "metadata": {
    "custodianId": "custodianId",
    "environmentId": "environmentId"
  },
  "type": "WALLET_BACKUP_V1"
}
```

### Wallet recovered (`WALLET_RECOVER_V1`)

Portal sends this event when a client recovers a wallet and stores the new signing share. `signingSharePairId` is the new share pair, not the one that was backed up.

| Field | Type | Description |
| - | - | - |
| `data.clientId` | String | The client that recovered the wallet. |
| `data.walletId` | String | The wallet for this curve. |
| `data.signingSharePairId` | String | The new signing share pair for this curve. |
| `data.curve` | String or `null` | `SECP256K1` or `ED25519`. `null` if unknown. |

```json theme={null}
{
  "data": {
    "clientId": "clientId",
    "walletId": "walletId",
    "signingSharePairId": "signingSharePairId",
    "curve": "SECP256K1"
  },
  "metadata": {
    "custodianId": "custodianId",
    "environmentId": "environmentId"
  },
  "type": "WALLET_RECOVER_V1"
}
```

## Wallet actions

### Wallet ejected (`WALLET_EJECT_V1`)

Portal sends this event when a client [ejects](/resources/eject) their wallet. Ejecting covers both curves, so you get one event per client. The eject has already happened when you receive the event, and your response doesn't change it.

Portal makes one delivery attempt for this event and doesn't retry it automatically. If your server misses it, [resend it](/resources/informational-webhooks/overview#resend-an-event) from the event log.

| Field | Type | Description |
| - | - | - |
| `data.clientId` | String | The client that ejected the wallet. |
| `data.clientPlatform` | String or `null` | `CLI`, `NATIVE_ANDROID`, `NATIVE_IOS`, `REACT_NATIVE`, `WEB`, or `EMM`. `null` if the client didn't send it. |
| `data.clientPlatformVersion` | String or `null` | The SDK version, if the client sent it. |

```json theme={null}
{
  "data": {
    "clientId": "clientId",
    "clientPlatform": "NATIVE_IOS",
    "clientPlatformVersion": "1.0.0"
  },
  "metadata": {
    "custodianId": "custodianId",
    "environmentId": "environmentId"
  },
  "type": "WALLET_EJECT_V1"
}
```

## Archived events

The first version of the Solana events is archived and **will be removed in November 2026**.

To move to the current events, follow [Migrating from legacy Solana webhook events](/resources/migrating-from-solana-legacy-webhooks).

The archived events differ from the current ones in these ways:

* Portal sends one event per transaction, not one per watched address.
* `data.rawEvents[]` items have no `triggeredBy`, `direction`, or `recentBlockhash`.
* Delegated transfers have no event of their own.
* Archived events support up to 100,000 watched addresses.

| Dashboard label | `type` |
| - | - |
| Wallet transactions | `SOLANA_TX_V1` |
| Token approvals | `SOLANA_APPROVE_V1` |
| Token revocations | `SOLANA_REVOKE_V1` |

Token approvals and token revocations require the archived **Wallet transactions** event.

### Wallet transactions (`SOLANA_TX_V1`)

Portal sends this event when a watched Solana address sends or receives SOL or an SPL token.

<Tabs>
  <Tab title="Receive 0.01 SOL">
    ```json theme={null}
    {
      "data": {
        "rawEvents": [
          {
            "fee": 80000,
            "slot": 379135212,
            "type": "TRANSFER",
            "events": {},
            "source": "SYSTEM_PROGRAM",
            "feePayer": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
            "signature": "5hyWP82Fn951zjo5DHWAvAC8NjwU7LAKqR3Rpn7sB1H159koer8BefYSSCRuC7X3xVy6rHvMzM7sYHLBwxTAEeUY",
            "timestamp": 1746565669,
            "accountData": [
              {
                "account": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                "nativeBalanceChange": -10080000,
                "tokenBalanceChanges": []
              },
              {
                "account": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                "nativeBalanceChange": 10000000,
                "tokenBalanceChanges": []
              },
              {
                "account": "11111111111111111111111111111111",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              },
              {
                "account": "ComputeBudget111111111111111111111111111111",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              }
            ],
            "description": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H transferred 0.01 SOL to 67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx.",
            "instructions": [
              {
                "data": "3b1H8Rq1T3d1",
                "accounts": [],
                "programId": "ComputeBudget111111111111111111111111111111",
                "innerInstructions": []
              },
              {
                "data": "LKoyXd",
                "accounts": [],
                "programId": "ComputeBudget111111111111111111111111111111",
                "innerInstructions": []
              },
              {
                "data": "3Bxs4NN8M2Yn4TLb",
                "accounts": [
                  "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                  "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx"
                ],
                "programId": "11111111111111111111111111111111",
                "innerInstructions": []
              }
            ],
            "tokenTransfers": [],
            "nativeTransfers": [
              {
                "amount": 10000000,
                "toUserAccount": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                "fromUserAccount": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H"
              }
            ],
            "transactionError": null
          }
        ]
      },
      "metadata": {
        "isDevnet": true,
        "eventTypes": ["TRANSFER"],
        "environmentId": "environmentId"
      },
      "type": "SOLANA_TX_V1"
    }
    ```
  </Tab>

  <Tab title="Send 0.0002 SOL">
    ```json theme={null}
    {
      "data": {
        "rawEvents": [
          {
            "fee": 5000,
            "slot": 379135804,
            "type": "TRANSFER",
            "events": {},
            "source": "SYSTEM_PROGRAM",
            "feePayer": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
            "signature": "KENcRJpHNowJcpDwPvB2yR6VnDzMbQu5Nd1om5K1Y3cjdS3ujStBWYtz3EMhY1UvzykShhdZSUShwZrmYWbxfAF",
            "timestamp": 1746565903,
            "accountData": [
              {
                "account": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                "nativeBalanceChange": -205000,
                "tokenBalanceChanges": []
              },
              {
                "account": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                "nativeBalanceChange": 200000,
                "tokenBalanceChanges": []
              },
              {
                "account": "11111111111111111111111111111111",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              }
            ],
            "description": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx transferred 0.0002 SOL to 75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H.",
            "instructions": [
              {
                "data": "3Bxs4Ba2u7BkmhYB",
                "accounts": [
                  "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                  "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H"
                ],
                "programId": "11111111111111111111111111111111",
                "innerInstructions": []
              }
            ],
            "tokenTransfers": [],
            "nativeTransfers": [
              {
                "amount": 200000,
                "toUserAccount": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                "fromUserAccount": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx"
              }
            ],
            "transactionError": null
          }
        ]
      },
      "metadata": {
        "isDevnet": true,
        "eventTypes": ["TRANSFER"],
        "environmentId": "environmentId"
      },
      "type": "SOLANA_TX_V1"
    }
    ```
  </Tab>

  <Tab title="Receive 0.1 USDC">
    ```json theme={null}
    {
      "data": {
        "rawEvents": [
          {
            "fee": 80000,
            "slot": 379136813,
            "type": "TRANSFER",
            "events": {},
            "source": "SOLANA_PROGRAM_LIBRARY",
            "feePayer": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
            "signature": "3AH7LPWnzvqmQRkGWMECe7Hxmi6M4FurCrGxAfS4JP7YNVz81qQhwsX7YmHdQxA1bfGFPDc8ouHXuhncXPnT3Uf9",
            "timestamp": 1746566300,
            "accountData": [
              {
                "account": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                "nativeBalanceChange": -2119280,
                "tokenBalanceChanges": []
              },
              {
                "account": "4hi76XkyLMVtuPunTUH8SMYGbKshhcGufSfZEUkWvj9v",
                "nativeBalanceChange": 2039280,
                "tokenBalanceChanges": [
                  {
                    "mint": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
                    "userAccount": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                    "tokenAccount": "4hi76XkyLMVtuPunTUH8SMYGbKshhcGufSfZEUkWvj9v",
                    "rawTokenAmount": {
                      "decimals": 6,
                      "tokenAmount": "100000"
                    }
                  }
                ]
              },
              {
                "account": "CoDtJspas5BkRaxA8GTrzLZGTAMcsoec4oTrrVjwrJqA",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": [
                  {
                    "mint": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
                    "userAccount": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                    "tokenAccount": "CoDtJspas5BkRaxA8GTrzLZGTAMcsoec4oTrrVjwrJqA",
                    "rawTokenAmount": {
                      "decimals": 6,
                      "tokenAmount": "-100000"
                    }
                  }
                ]
              },
              {
                "account": "11111111111111111111111111111111",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              },
              {
                "account": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              },
              {
                "account": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              },
              {
                "account": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              },
              {
                "account": "ComputeBudget111111111111111111111111111111",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              },
              {
                "account": "SysvarRent111111111111111111111111111111111",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              },
              {
                "account": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              }
            ],
            "description": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H transferred 0.1 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU to 67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx.",
            "instructions": [
              {
                "data": "3pyz49iBVPDH",
                "accounts": [],
                "programId": "ComputeBudget111111111111111111111111111111",
                "innerInstructions": []
              },
              {
                "data": "Ejyj83",
                "accounts": [],
                "programId": "ComputeBudget111111111111111111111111111111",
                "innerInstructions": []
              },
              {
                "data": "",
                "accounts": [
                  "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                  "4hi76XkyLMVtuPunTUH8SMYGbKshhcGufSfZEUkWvj9v",
                  "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                  "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
                  "11111111111111111111111111111111",
                  "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
                  "SysvarRent111111111111111111111111111111111"
                ],
                "programId": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
                "innerInstructions": [
                  {
                    "data": "84eT",
                    "accounts": [
                      "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU"
                    ],
                    "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
                  },
                  {
                    "data": "11119os1e9qSs2u7TsThXqkBSRVFxhmYaFKFZ1waB2X7armDmvK3p5GmLdUxYdg3h7QSrL",
                    "accounts": [
                      "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                      "4hi76XkyLMVtuPunTUH8SMYGbKshhcGufSfZEUkWvj9v"
                    ],
                    "programId": "11111111111111111111111111111111"
                  },
                  {
                    "data": "P",
                    "accounts": [
                      "4hi76XkyLMVtuPunTUH8SMYGbKshhcGufSfZEUkWvj9v"
                    ],
                    "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
                  },
                  {
                    "data": "6SFd4LwbEeGhbq7iC4apSEA85UYCPWD7DUnLboAaBWSQv",
                    "accounts": [
                      "4hi76XkyLMVtuPunTUH8SMYGbKshhcGufSfZEUkWvj9v",
                      "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU"
                    ],
                    "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
                  }
                ]
              },
              {
                "data": "i9TTqffgKmDLh",
                "accounts": [
                  "CoDtJspas5BkRaxA8GTrzLZGTAMcsoec4oTrrVjwrJqA",
                  "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
                  "4hi76XkyLMVtuPunTUH8SMYGbKshhcGufSfZEUkWvj9v",
                  "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                  "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H"
                ],
                "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
                "innerInstructions": []
              }
            ],
            "tokenTransfers": [
              {
                "mint": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
                "tokenAmount": 0.1,
                "toUserAccount": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                "tokenStandard": "Fungible",
                "toTokenAccount": "4hi76XkyLMVtuPunTUH8SMYGbKshhcGufSfZEUkWvj9v",
                "fromUserAccount": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                "fromTokenAccount": "CoDtJspas5BkRaxA8GTrzLZGTAMcsoec4oTrrVjwrJqA"
              }
            ],
            "nativeTransfers": [
              {
                "amount": 2039280,
                "toUserAccount": "4hi76XkyLMVtuPunTUH8SMYGbKshhcGufSfZEUkWvj9v",
                "fromUserAccount": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H"
              }
            ],
            "transactionError": null
          }
        ]
      },
      "metadata": {
        "isDevnet": true,
        "eventTypes": ["TRANSFER"],
        "environmentId": "environmentId"
      },
      "type": "SOLANA_TX_V1"
    }
    ```
  </Tab>

  <Tab title="Send 0.01 USDC">
    ```json theme={null}
    {
      "data": {
        "rawEvents": [
          {
            "fee": 5000,
            "slot": 379137198,
            "type": "TRANSFER",
            "events": {},
            "source": "SOLANA_PROGRAM_LIBRARY",
            "feePayer": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
            "signature": "yqQnyoqB1cm5se1U4Da6Hr89mNvozzp5WULtkNSUP3jVH5c79whZ9zg2NXeQhV3c3wkmsVjPV627WZtfCaAeRJW",
            "timestamp": 1746566451,
            "accountData": [
              {
                "account": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                "nativeBalanceChange": -5000,
                "tokenBalanceChanges": []
              },
              {
                "account": "4hi76XkyLMVtuPunTUH8SMYGbKshhcGufSfZEUkWvj9v",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": [
                  {
                    "mint": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
                    "userAccount": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                    "tokenAccount": "4hi76XkyLMVtuPunTUH8SMYGbKshhcGufSfZEUkWvj9v",
                    "rawTokenAmount": {
                      "decimals": 6,
                      "tokenAmount": "-10000"
                    }
                  }
                ]
              },
              {
                "account": "CoDtJspas5BkRaxA8GTrzLZGTAMcsoec4oTrrVjwrJqA",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": [
                  {
                    "mint": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
                    "userAccount": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                    "tokenAccount": "CoDtJspas5BkRaxA8GTrzLZGTAMcsoec4oTrrVjwrJqA",
                    "rawTokenAmount": {
                      "decimals": 6,
                      "tokenAmount": "10000"
                    }
                  }
                ]
              },
              {
                "account": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
                "nativeBalanceChange": 0,
                "tokenBalanceChanges": []
              }
            ],
            "description": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx transferred 0.01 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU to 75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H.",
            "instructions": [
              {
                "data": "3GAG5eogvTjV",
                "accounts": [
                  "4hi76XkyLMVtuPunTUH8SMYGbKshhcGufSfZEUkWvj9v",
                  "CoDtJspas5BkRaxA8GTrzLZGTAMcsoec4oTrrVjwrJqA",
                  "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx"
                ],
                "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
                "innerInstructions": []
              }
            ],
            "tokenTransfers": [
              {
                "mint": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
                "tokenAmount": 0.01,
                "toUserAccount": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
                "tokenStandard": "Fungible",
                "toTokenAccount": "CoDtJspas5BkRaxA8GTrzLZGTAMcsoec4oTrrVjwrJqA",
                "fromUserAccount": "67vPQk4SMRRmZdcfyRd6kBggyeca6TqWmsAkJatNDHyx",
                "fromTokenAccount": "4hi76XkyLMVtuPunTUH8SMYGbKshhcGufSfZEUkWvj9v"
              }
            ],
            "nativeTransfers": [],
            "transactionError": null
          }
        ]
      },
      "metadata": {
        "isDevnet": true,
        "eventTypes": ["TRANSFER"],
        "environmentId": "environmentId"
      },
      "type": "SOLANA_TX_V1"
    }
    ```
  </Tab>
</Tabs>

### Token approvals (`SOLANA_APPROVE_V1`)

Portal sends this event when a watched address approves a delegate to spend an SPL token on its behalf.

```json theme={null}
{
  "data": {
    "rawEvents": [
      {
        "fee": 10000,
        "slot": 438851116,
        "type": "APPROVE",
        "events": {},
        "source": "SOLANA_PROGRAM_LIBRARY",
        "feePayer": "98aauPkabddWQVyHWNw5LJLDb84ETKfN2xYUy1Zr2sQy",
        "signature": "7fLggf2PBHnH8QfWTzWjjpXKcyUj9h2roR6tCBxAAHJoiLyuYEDx95RqJNz1vnjFSJ8vyaZpanCgEHVLdVvX9Ng",
        "timestamp": 1769837881,
        "accountData": [
          {
            "account": "98aauPkabddWQVyHWNw5LJLDb84ETKfN2xYUy1Zr2sQy",
            "nativeBalanceChange": -10000,
            "tokenBalanceChanges": []
          },
          {
            "account": "J4AVMHNUkxhjUmWg25RTfysAEx7FnRYymT2xZkc12sKK",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          },
          {
            "account": "pQxS4DANX5uMkDkzJSk2dSBnrEWZ1enUL2XkKF6Nhbh",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          },
          {
            "account": "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          },
          {
            "account": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          }
        ],
        "description": "",
        "instructions": [
          {
            "data": "3xHiPX82ia9u",
            "accounts": [
              "pQxS4DANX5uMkDkzJSk2dSBnrEWZ1enUL2XkKF6Nhbh",
              "75ZfLXXsSpycDvHTQuHnGQuYgd2ihb6Bu4viiCCQ7P4H",
              "J4AVMHNUkxhjUmWg25RTfysAEx7FnRYymT2xZkc12sKK"
            ],
            "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
            "innerInstructions": []
          }
        ],
        "tokenTransfers": [],
        "nativeTransfers": [],
        "transactionError": null
      }
    ]
  },
  "metadata": {
    "isDevnet": true,
    "eventTypes": ["APPROVE"],
    "environmentId": "environmentId"
  },
  "type": "SOLANA_APPROVE_V1"
}
```

### Token revocations (`SOLANA_REVOKE_V1`)

Portal sends this event when a watched address revokes a delegate's approval to spend an SPL token.

```json theme={null}
{
  "data": {
    "rawEvents": [
      {
        "fee": 10000,
        "slot": 438851202,
        "type": "REVOKE",
        "events": {},
        "source": "SOLANA_PROGRAM_LIBRARY",
        "feePayer": "98aauPkabddWQVyHWNw5LJLDb84ETKfN2xYUy1Zr2sQy",
        "signature": "3p4qVucEtUhZ3GbsQv3ZQS2mTRsziSgJs6B7gre34X2xnG2WPkaNvHuk9wDRJ2kKzKa8M7Rmykpr6wTtYLRuY9oh",
        "timestamp": 1769837914,
        "accountData": [
          {
            "account": "98aauPkabddWQVyHWNw5LJLDb84ETKfN2xYUy1Zr2sQy",
            "nativeBalanceChange": -10000,
            "tokenBalanceChanges": []
          },
          {
            "account": "J4AVMHNUkxhjUmWg25RTfysAEx7FnRYymT2xZkc12sKK",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          },
          {
            "account": "pQxS4DANX5uMkDkzJSk2dSBnrEWZ1enUL2XkKF6Nhbh",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          },
          {
            "account": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
            "nativeBalanceChange": 0,
            "tokenBalanceChanges": []
          }
        ],
        "description": "",
        "instructions": [
          {
            "data": "6",
            "accounts": [
              "pQxS4DANX5uMkDkzJSk2dSBnrEWZ1enUL2XkKF6Nhbh",
              "J4AVMHNUkxhjUmWg25RTfysAEx7FnRYymT2xZkc12sKK"
            ],
            "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
            "innerInstructions": []
          }
        ],
        "tokenTransfers": [],
        "nativeTransfers": [],
        "transactionError": null
      }
    ]
  },
  "metadata": {
    "isDevnet": true,
    "eventTypes": ["REVOKE"],
    "environmentId": "environmentId"
  },
  "type": "SOLANA_REVOKE_V1"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.