{
  "serviceId": "sui",
  "displayName": "Sui JSON-RPC",
  "description": "Read-only JSON-RPC access to Sui mainnet, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
  "category": "blockchain",
  "resourceUrl": "https://agent.pocket.network/v1/sui",
  "priceUsd": "0.005000",
  "priceVersion": 1,
  "rails": [
    {
      "id": "base",
      "network": "eip155:8453",
      "chainId": 8453,
      "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "tokenDecimals": 6,
      "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
    }
  ],
  "protocols": [
    "jsonrpc"
  ],
  "inputSchema": {
    "type": "object",
    "properties": {
      "method": {
        "type": "string",
        "description": "JSON-RPC read method, e.g. sui_getObject",
        "examples": [
          "rpc.discover",
          "sui_devInspectTransactionBlock",
          "sui_dryRunTransactionBlock",
          "sui_getChainIdentifier",
          "sui_getCheckpoint",
          "sui_getCheckpoints",
          "sui_getEvents",
          "sui_getLatestCheckpointSequenceNumber",
          "sui_getMoveFunctionArgTypes",
          "sui_getNormalizedMoveFunction",
          "sui_getNormalizedMoveModule",
          "sui_getNormalizedMoveModulesByPackage",
          "sui_getNormalizedMoveStruct",
          "sui_getObject",
          "sui_getProtocolConfig",
          "sui_getTotalTransactionBlocks",
          "sui_getTransactionBlock",
          "sui_multiGetObjects",
          "sui_multiGetTransactionBlocks",
          "sui_tryGetPastObject",
          "sui_tryMultiGetPastObjects",
          "suix_getAllBalances",
          "suix_getAllCoins",
          "suix_getBalance",
          "suix_getCoinMetadata",
          "suix_getCoins",
          "suix_getCommitteeInfo",
          "suix_getDynamicFieldObject",
          "suix_getDynamicFields",
          "suix_getLatestSuiSystemState",
          "suix_getOwnedObjects",
          "suix_getReferenceGasPrice",
          "suix_getStakes",
          "suix_getStakesByIds",
          "suix_getTotalSupply",
          "suix_getValidatorsApy",
          "suix_queryEvents",
          "suix_queryTransactionBlocks",
          "suix_resolveNameServiceAddress",
          "suix_resolveNameServiceNames"
        ]
      },
      "params": {
        "description": "Parameters per the Sui 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 Sui JSON-RPC specification; object and transaction reads return `data` with the fields the request's options asked for.",
    "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": "35834a8a"
      }
    ]
  },
  "methods": {
    "rpc.discover": "read",
    "sui_devInspectTransactionBlock": "read",
    "sui_dryRunTransactionBlock": "read",
    "sui_getChainIdentifier": "read",
    "sui_getCheckpoint": "read",
    "sui_getCheckpoints": "read",
    "sui_getEvents": "read",
    "sui_getLatestCheckpointSequenceNumber": "read",
    "sui_getMoveFunctionArgTypes": "read",
    "sui_getNormalizedMoveFunction": "read",
    "sui_getNormalizedMoveModule": "read",
    "sui_getNormalizedMoveModulesByPackage": "read",
    "sui_getNormalizedMoveStruct": "read",
    "sui_getObject": "read",
    "sui_getProtocolConfig": "read",
    "sui_getTotalTransactionBlocks": "read",
    "sui_getTransactionBlock": "read",
    "sui_multiGetObjects": "read",
    "sui_multiGetTransactionBlocks": "read",
    "sui_tryGetPastObject": "read",
    "sui_tryMultiGetPastObjects": "read",
    "suix_getAllBalances": "read",
    "suix_getAllCoins": "read",
    "suix_getBalance": "read",
    "suix_getCoinMetadata": "read",
    "suix_getCoins": "read",
    "suix_getCommitteeInfo": "read",
    "suix_getDynamicFieldObject": "read",
    "suix_getDynamicFields": "read",
    "suix_getLatestSuiSystemState": "read",
    "suix_getOwnedObjects": "read",
    "suix_getReferenceGasPrice": "read",
    "suix_getStakes": "read",
    "suix_getStakesByIds": "read",
    "suix_getTotalSupply": "read",
    "suix_getValidatorsApy": "read",
    "suix_queryEvents": "read",
    "suix_queryTransactionBlocks": "read",
    "suix_resolveNameServiceAddress": "read",
    "suix_resolveNameServiceNames": "read"
  },
  "firstParty": true,
  "networks": [
    "eip155:8453"
  ],
  "serving": true,
  "page": "https://agent.pocket.network/services/sui",
  "descriptor": "https://agent.pocket.network/services/sui/descriptor.json"
}