Agentic Portal

Sui JSON-RPC

blockchain
Serving

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.

Endpoint
POST https://agent.pocket.network/v1/sui
Price per call
$0.005 USD
Networks payable on
Base (eip155:8453), Tempo (eip155:4217)
Protocol
jsonrpc

Calling it

The first call returns 402 Payment Required with the terms. Sign for those terms and retry the same request with the payment attached.

Example request

A real, working call — the request the service card verifies against.

curl -X POST https://agent.pocket.network/v1/sui \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"sui_getLatestCheckpointSequenceNumber","params":[]}'
Example response

The response this call returned, captured 2026-09-21 23:49:33 UTC.

{
  "portal": {
    "provenance": "third-party-supplier",
    "serviceId": "sui",
    "schemaCheck": "passed"
  },
  "data": {
    "jsonrpc": "2.0",
    "id": 2,
    "result": "325398234"
  }
}

Try it

Make one real paid call from your own wallet — about $0.005 on Base (eip155:8453). The wallet signs; nothing here holds a key. You'll see exactly what the service answers.

No browser wallet found. Install MetaMask, Rabby, or Coinbase Wallet to try a call here.

Supported methods

Methods the registry lists for this service. The portal forwards any call as sent; the supplier decides what it answers, and a delivered answer is settled.

Methods Sui JSON-RPC accepts, and whether each reads or writes.
MethodEffect
rpc.discoverread
sui_devInspectTransactionBlockread
sui_dryRunTransactionBlockread
sui_getChainIdentifierread
sui_getCheckpointread
sui_getCheckpointsread
sui_getEventsread
sui_getLatestCheckpointSequenceNumberread
sui_getMoveFunctionArgTypesread
sui_getNormalizedMoveFunctionread
sui_getNormalizedMoveModuleread
sui_getNormalizedMoveModulesByPackageread
sui_getNormalizedMoveStructread
sui_getObjectread
sui_getProtocolConfigread
sui_getTotalTransactionBlocksread
sui_getTransactionBlockread
sui_multiGetObjectsread
sui_multiGetTransactionBlocksread
sui_tryGetPastObjectread
sui_tryMultiGetPastObjectsread
suix_getAllBalancesread
suix_getAllCoinsread
suix_getBalanceread
suix_getCoinMetadataread
suix_getCoinsread
suix_getCommitteeInforead
suix_getDynamicFieldObjectread
suix_getDynamicFieldsread
suix_getLatestSuiSystemStateread
suix_getOwnedObjectsread
suix_getReferenceGasPriceread
suix_getStakesread
suix_getStakesByIdsread
suix_getTotalSupplyread
suix_getValidatorsApyread
suix_queryEventsread
suix_queryTransactionBlocksread
suix_resolveNameServiceAddressread
suix_resolveNameServiceNamesread

Schemas

Published by the service itself. The example above is generated from these.

Request schema
{
  "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"
  ]
}
Response schema
{
  "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"
    }
  ]
}