{
  "serviceId": "solana",
  "displayName": "Solana JSON-RPC",
  "description": "Read-only JSON-RPC access to Solana mainnet-beta, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
  "category": "blockchain",
  "resourceUrl": "https://test.agent.pocket.network/v1/solana",
  "priceUsd": "0.005000",
  "priceVersion": 1,
  "rails": [
    {
      "id": "base",
      "network": "eip155:84532",
      "chainId": 84532,
      "tokenAddress": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
      "tokenDecimals": 6,
      "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
    }
  ],
  "protocols": [
    "jsonrpc"
  ],
  "inputSchema": {
    "type": "object",
    "properties": {
      "method": {
        "type": "string",
        "description": "JSON-RPC read method, e.g. getAccountInfo",
        "examples": [
          "getAccountInfo",
          "getBalance",
          "getBlock",
          "getBlockCommitment",
          "getBlockHeight",
          "getBlockProduction",
          "getBlockTime",
          "getBlocks",
          "getBlocksWithLimit",
          "getClusterNodes",
          "getEpochInfo",
          "getEpochSchedule",
          "getFeeForMessage",
          "getFirstAvailableBlock",
          "getGenesisHash",
          "getHealth",
          "getHighestSnapshotSlot",
          "getIdentity",
          "getInflationGovernor",
          "getInflationRate",
          "getInflationReward",
          "getLatestBlockhash",
          "getLeaderSchedule",
          "getMaxRetransmitSlot",
          "getMaxShredInsertSlot",
          "getMinimumBalanceForRentExemption",
          "getMultipleAccounts",
          "getProgramAccounts",
          "getRecentPerformanceSamples",
          "getRecentPrioritizationFees",
          "getSignatureStatuses",
          "getSignaturesForAddress",
          "getSlot",
          "getSlotLeader",
          "getSlotLeaders",
          "getStakeMinimumDelegation",
          "getTokenAccountBalance",
          "getTokenAccountsByDelegate",
          "getTokenAccountsByOwner",
          "getTokenLargestAccounts",
          "getTokenSupply",
          "getTransaction",
          "getTransactionCount",
          "getVersion",
          "getVoteAccounts",
          "isBlockhashValid",
          "minimumLedgerSlot",
          "simulateTransaction"
        ]
      },
      "params": {
        "description": "Parameters per the Solana JSON-RPC spec"
      }
    },
    "required": [
      "method"
    ]
  },
  "outputSchema": {
    "type": "object",
    "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines per the Solana JSON-RPC specification; most account and block reads return an object with `context` (the slot) and `value`.",
    "properties": {
      "jsonrpc": {
        "type": "string",
        "description": "The protocol version, always \"2.0\""
      },
      "id": {
        "type": [
          "string",
          "number",
          "null"
        ],
        "description": "The request id, echoed back"
      },
      "result": {
        "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
      },
      "error": {
        "type": "object",
        "description": "Present instead of `result` when the call failed",
        "properties": {
          "code": {
            "type": "integer",
            "description": "A JSON-RPC 2.0 error code"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "description": "Method-specific detail, when the node supplies it"
          }
        }
      }
    },
    "examples": [
      {
        "jsonrpc": "2.0",
        "id": 1,
        "result": "ok"
      }
    ]
  },
  "methods": {
    "getAccountInfo": "read",
    "getBalance": "read",
    "getBlock": "read",
    "getBlockCommitment": "read",
    "getBlockHeight": "read",
    "getBlockProduction": "read",
    "getBlockTime": "read",
    "getBlocks": "read",
    "getBlocksWithLimit": "read",
    "getClusterNodes": "read",
    "getEpochInfo": "read",
    "getEpochSchedule": "read",
    "getFeeForMessage": "read",
    "getFirstAvailableBlock": "read",
    "getGenesisHash": "read",
    "getHealth": "read",
    "getHighestSnapshotSlot": "read",
    "getIdentity": "read",
    "getInflationGovernor": "read",
    "getInflationRate": "read",
    "getInflationReward": "read",
    "getLatestBlockhash": "read",
    "getLeaderSchedule": "read",
    "getMaxRetransmitSlot": "read",
    "getMaxShredInsertSlot": "read",
    "getMinimumBalanceForRentExemption": "read",
    "getMultipleAccounts": "read",
    "getProgramAccounts": "read",
    "getRecentPerformanceSamples": "read",
    "getRecentPrioritizationFees": "read",
    "getSignatureStatuses": "read",
    "getSignaturesForAddress": "read",
    "getSlot": "read",
    "getSlotLeader": "read",
    "getSlotLeaders": "read",
    "getStakeMinimumDelegation": "read",
    "getTokenAccountBalance": "read",
    "getTokenAccountsByDelegate": "read",
    "getTokenAccountsByOwner": "read",
    "getTokenLargestAccounts": "read",
    "getTokenSupply": "read",
    "getTransaction": "read",
    "getTransactionCount": "read",
    "getVersion": "read",
    "getVoteAccounts": "read",
    "isBlockhashValid": "read",
    "minimumLedgerSlot": "read",
    "simulateTransaction": "read"
  },
  "firstParty": true,
  "networks": [
    "eip155:84532"
  ],
  "serving": true,
  "page": "https://test.agent.pocket.network/services/solana",
  "descriptor": "https://test.agent.pocket.network/services/solana/descriptor.json"
}