Documentation

Sushilens API

Introduction

Sushilens is a REST API for Robinhood Chain. One API key gives you blocks, transactions, token data, wallet history, NFTs, DeFi pool state, gas data and a metered read-only JSON-RPC proxy — all returning the same JSON envelope. This reference is generated from the same catalog the gateway routes with, so it always matches what is deployed: 24 endpoints across 7 families.

Data sources

Endpoints marked RPC read Robinhood Chain nodes directly. Endpoints marked Explorer index (history, holders, portfolio, NFT holdings) read the Robinhood Chain Blockscout index. If a source is down, you get a 503 — never invented data.

Quick start

  1. Open the dashboard and connect MetaMask or Trust Wallet.
  2. Sign the Sign-In with Ethereum message (free, no transaction).
  3. Create a key under API Keys. Copy it — it is shown only once.
  4. Call any endpoint with the key in the x-api-key header:
curl
curl -X GET "https://www.sushilens.work/api/v1/network/status" \
  -H "x-api-key: YOUR_API_KEY"

Public sandbox

Try any GET endpoint without signing up at /api/sandbox/v1/*. It runs the same gateway and returns real data, limited to 20 requests/minute and 200 requests/day per IP. Sandbox calls aren't tied to an account. For anything you ship, create a key.

Authentication

Send your key as x-api-key: sl_live_… or Authorization: Bearer sl_live_…. Keys are stored only as a peppered HMAC-SHA256 hash, so Sushilens cannot show a key again after creation — rotate it instead. Each key has scopes (which API families it may call), a per-minute rate limit, an optional daily quota and an optional expiry. Keys attached to an Application can be restricted to a list of browser origins.

Rotation issues a new secret and keeps the old one valid for a grace period (0–168 hours, default 24) so you can redeploy without downtime. Revocation is immediate.

Test keys

Keys starting with sl_test_ can only call testnet, so a test key can't touch production data paths by accident. Every request needs ?network=testnet; anything else returns 403 forbidden. Choose the environment when you create a key. Live keys work on both networks.

Response format

success
{
  "success": true,
  "data": { … },
  "meta": {
    "chain": "robinhood",
    "network": "mainnet",
    "chainId": 4663,
    "timestamp": "ISO_TIMESTAMP",
    "requestId": "req_…",
    "endpoint": "tokens.get",
    "cached": false,
    "source": "rpc"
  }
}
error
{
  "success": false,
  "error": {
    "code": "invalid_params",
    "message": "Request parameters are invalid.",
    "details": [{ "param": "address", "in": "path", "message": "Must be a 20-byte hex address (0x…)." }]
  },
  "meta": { "chain": "robinhood", "network": "mainnet", "chainId": 4663, "timestamp": "…", "requestId": "req_…" }
}

Large integers (balances, supplies, block numbers, wei values) are returned as decimal strings to avoid precision loss. Response headers include X-Request-Id, X-Cache (HIT / MISS / BYPASS) and the rate-limit headers below.

Error codes

HTTPcodeMeaning
400bad_requestMalformed request, invalid JSON body, or a contract call that reverted for your input.
400invalid_paramsA parameter failed validation. `details` lists each param and why.
401missing_api_keyNo key in x-api-key or Authorization: Bearer.
401invalid_api_keyKey not recognised. Repeated failures from one IP trigger a temporary block.
401key_revokedThe key was revoked in the dashboard.
401key_expiredThe key passed its expiry or its rotation grace period ended.
403insufficient_scopeThe key isn't allowed to call this API family. Edit its permissions.
403origin_not_allowedBrowser Origin isn't in the key's application allow-list.
403forbiddenAction not allowed, e.g. a JSON-RPC method outside the read-only allow-list.
404not_foundUnknown endpoint, or the block / transaction / contract / token doesn't exist.
405method_not_allowedWrong HTTP method for this path. See the Allow header.
429rate_limitedPer-minute limit hit. Wait Retry-After seconds.
429quota_exceededDaily quota (plan or key) used up. Resets 00:00 UTC.
429ip_blockedToo many failed authentications from your IP; blocked for 15 minutes.
500internal_errorUnexpected server error. Include the requestId when reporting it.
503rpc_unavailableEvery configured Robinhood Chain RPC provider failed. Retry shortly.
503indexer_unavailableThe explorer index is not configured or not reachable for this network.
503service_unavailableA platform dependency (e.g. rate-limit store) is down.

Rate limits

Each key has a requests-per-minute limit (capped by your plan) and every account has a daily quota that resets at 00:00 UTC. Keys can also carry their own, lower daily quota. Exceeding either returns 429 with a Retry-After header. Plans above Free are granted only by the on-chain ApiAccessRegistry.

PlanRequests / min / keyDaily quotaActive keysApplications
Free6025,00053
Builder300250,0002510
Scale1,2002,500,00010050
rate-limit headers
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
X-RateLimit-Reset: 42      # seconds
X-Quota-Limit: 25000
X-Quota-Remaining: 24873
X-Quota-Reset: 51840      # seconds to 00:00 UTC
Retry-After: 42           # on 429 / 503

Networks

Every endpoint accepts the global query parameter:

  • network — mainnet | testnet (default mainnet). Robinhood Chain network to query.

Mainnet: chain 4663 · Testnet: chain 46630 · native currency ETH. Log-scanning endpoints are bounded to a configurable block window (default 10,000 blocks) — paginate with fromBlock / toBlock.

SDK & OpenAPI

No package to install: this small typed client wraps the envelope and throws typed errors. It works in Node 18+, Bun, Deno, edge runtimes and the browser (use an origin-restricted key in browsers).

sushilens.ts
import { createSushilens, SushilensError } from "@sushilens/sdk";

const sl = createSushilens({
  apiKey: process.env.SUSHILENS_API_KEY!,
  baseUrl: "https://www.sushilens.work/api",
  network: "mainnet",
});

// One typed method per endpoint
const status = await sl.networkStatus();
const token = await sl.tokensGet({ address: "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73" });

try {
  await sl.walletsGet({ address: "0xeF63781a022e0C219cb6521c8222150DeD82981d" });
} catch (err) {
  // 429 and 503 are retried first, honoring Retry-After
  if (err instanceof SushilensError) console.error(err.code, err.requestId);
}

Examples

JavaScript · token metadata
const res = await fetch("https://www.sushilens.work/api/v1/tokens/0x%E2%80%A6", {
  method: "GET",
  headers: {
    "x-api-key": process.env.SUSHILENS_API_KEY,
  },
});

const json = await res.json();
if (!json.success) throw new Error(`${json.error.code}: ${json.error.message}`);
console.log(json.data);
Python · token metadata
import os
import requests

res = requests.get(
    "https://www.sushilens.work/api/v1/tokens/0x%E2%80%A6",
    headers={"x-api-key": os.environ["SUSHILENS_API_KEY"]},
    timeout=15,
)
payload = res.json()
if not payload["success"]:
    raise RuntimeError(f'{payload["error"]["code"]}: {payload["error"]["message"]}')
print(payload["data"])
cURL · JSON-RPC proxy (POST)
curl -X POST "https://www.sushilens.work/api/v1/rpc" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "content-type: application/json" \
  -d '{"method":"eth_blockNumber","params":[]}'

API reference

Base URL https://www.sushilens.work/api. Fields marked * are required.

Blockchain Data API

Blocks, transactions, receipts, native balances and smart contract introspection.

GET/v1/blocks/latest RPC

Latest block

The current head block with its transaction hashes.

Run it live
No key needed
Response fields & example
  • number string — Block number.
  • hash string — Block hash.
  • timestamp number — Unix timestamp.
  • transactions string[] — Transaction hashes in the block.
  • gasUsed string — Total gas used.
curl
curl -X GET "https://www.sushilens.work/api/v1/blocks/latest" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/blocks/{block} RPC

Block by number or hash

Fetch a block by number, hash, or the tags latest / safe / finalized.

ParameterInTypeDescription
block*pathblockIdBlock number, 32-byte block hash, or a tag.
transactionsqueryhashes|fullReturn transaction hashes or full transaction objects.
Run it live
No key needed
Response fields & example
  • number string — Block number.
  • hash string — Block hash.
  • parentHash string — Parent block hash.
  • timestamp number — Unix timestamp.
  • transactions string[] | Transaction[] — Hashes or full objects.
curl
curl -X GET "https://www.sushilens.work/api/v1/blocks/finalized" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/transactions/{hash} RPC

Transaction + receipt

Transaction, its receipt, execution status and confirmation count. Pending transactions return status "pending".

ParameterInTypeDescription
hash*pathtxHashTransaction hash.
Run it live
No key needed
Response fields & example
  • status "pending" | "success" | "reverted" — Execution status.
  • confirmations number — Blocks mined on top (0 when pending).
  • transaction object — The transaction object.
  • receipt object | null — The receipt, including logs and gasUsed.
curl
curl -X GET "https://www.sushilens.work/api/v1/transactions/0x1721f9171b16c6219c05321b6bc7a7082c318fb25147a639bfc2ce6ec9121ecc" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/addresses/{address}/balance RPC

Native balance

ETH balance of any address, optionally at a historical block.

ParameterInTypeDescription
address*pathaddressAccount address.
blockqueryuintHistorical block number (archive nodes only).
Run it live
No key needed
Response fields & example
  • address string — Checksummed address.
  • balance string — Balance in wei.
  • formatted string — Balance in ETH.
  • blockNumber string — Block the balance was read at.
curl
curl -X GET "https://www.sushilens.work/api/v1/addresses/0xeF63781a022e0C219cb6521c8222150DeD82981d/balance" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/contracts/{address} RPC

Smart contract info

Bytecode size and hash, EIP-1967 proxy slots, and ERC-165 interface detection.

ParameterInTypeDescription
address*pathaddressContract address.
Run it live
No key needed
Response fields & example
  • isContract boolean — Whether code is deployed at the address.
  • bytecodeSize number — Deployed bytecode size in bytes.
  • codeHash string | null — keccak256 of the deployed bytecode.
  • proxy object — EIP-1967 implementation, admin and beacon addresses when set.
  • interfaces object — ERC-165 support for ERC-165, ERC-721, ERC-1155.
curl
curl -X GET "https://www.sushilens.work/api/v1/contracts/0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3" \
  -H "x-api-key: YOUR_API_KEY"

Token API

ERC-20 metadata, balances, transfer history and holder lists.

GET/v1/tokens/{address} RPC

Token metadata

ERC-20 name, symbol, decimals and total supply read directly from the contract.

ParameterInTypeDescription
address*pathaddressERC-20 contract address.
Run it live
No key needed
Response fields & example
  • address string — Checksummed token address.
  • name string | null — Token name.
  • symbol string | null — Token symbol.
  • decimals number | null — Token decimals.
  • totalSupply string | null — Raw total supply.
  • totalSupplyFormatted string | null — Total supply adjusted for decimals.
curl
curl -X GET "https://www.sushilens.work/api/v1/tokens/0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/tokens/{address}/balances/{owner} RPC

Token balance

ERC-20 balance of one owner.

ParameterInTypeDescription
address*pathaddressERC-20 contract address.
owner*pathaddressHolder address.
Run it live
No key needed
Response fields & example
  • token string — Token address.
  • owner string — Owner address.
  • balance string — Raw balance.
  • formatted string | null — Balance adjusted for decimals.
curl
curl -X GET "https://www.sushilens.work/api/v1/tokens/0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73/balances/0xeF63781a022e0C219cb6521c8222150DeD82981d" \
  -H "x-api-key: YOUR_API_KEY"
POST/v1/tokens/balances RPC

Batch token balances

Balances of up to 50 ERC-20 tokens for one owner in a single request.

ParameterInTypeDescription
owner*bodyaddressHolder address.
tokens*bodyaddressListArray of ERC-20 contract addresses (max 50).
Run it live

POST endpoints aren't in the public sandbox. Create a free key

Response fields & example
  • owner string — Owner address.
  • balances Array<{ token, balance, decimals, formatted, error? }> — One entry per requested token.
curl
curl -X POST "https://www.sushilens.work/api/v1/tokens/balances" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "content-type: application/json" \
  -d '{"owner":"0xeF63781a022e0C219cb6521c8222150DeD82981d","tokens":["0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73","0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168"]}'
GET/v1/tokens/{address}/transfers RPC

Token transfers

ERC-20 Transfer events read from chain logs for a bounded block range.

ParameterInTypeDescription
address*pathaddressERC-20 contract address.
fromBlockqueryuintFirst block to scan. When omitted the widest range the RPC provider accepts is used, and the response reports what was scanned (fromBlock, toBlock, rangeNarrowed).
toBlockqueryuintLast block to scan. Defaults to the head block.
limitquerylimitMaximum events returned (newest first).
Run it live
No key needed
Response fields & example
  • fromBlock string — Scanned range start.
  • toBlock string — Scanned range end.
  • rangeNarrowed boolean — True when the provider's limits forced a narrower default range.
  • transfers Array<{ from, to, value, blockNumber, transactionHash, logIndex }> — Newest first.
curl
curl -X GET "https://www.sushilens.work/api/v1/tokens/0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73/transfers" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/tokens/{address}/holders Explorer index

Token holders

Holder list with balances, served from the Robinhood Chain explorer index.

ParameterInTypeDescription
address*pathaddressERC-20 contract address.
cursorquerystringOpaque pagination cursor from a previous response.
Run it live
No key needed
Response fields & example
  • holders Array<{ address, balance }> — Holders sorted by balance.
  • nextCursor string | null — Pass as cursor to fetch the next page.
curl
curl -X GET "https://www.sushilens.work/api/v1/tokens/0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73/holders" \
  -H "x-api-key: YOUR_API_KEY"

Wallet API

Wallet overview, transaction history, token portfolio and NFT holdings.

GET/v1/wallets/{address} RPC

Wallet overview

ETH balance, nonce (transaction count) and whether the address is a contract.

ParameterInTypeDescription
address*pathaddressWallet address.
Run it live
No key needed
Response fields & example
  • address string — Checksummed address.
  • balance string — ETH balance in wei.
  • formatted string — ETH balance.
  • nonce number — Number of transactions sent.
  • isContract boolean — True for smart accounts / contracts.
curl
curl -X GET "https://www.sushilens.work/api/v1/wallets/0xeF63781a022e0C219cb6521c8222150DeD82981d" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/wallets/{address}/transactions Explorer index

Transaction history

Paginated transaction history from the explorer index.

ParameterInTypeDescription
address*pathaddressWallet address.
cursorquerystringPagination cursor.
Run it live
No key needed
Response fields & example
  • transactions Array<{ hash, from, to, value, status, blockNumber, timestamp, method }> — Newest first.
  • nextCursor string | null — Next page cursor.
curl
curl -X GET "https://www.sushilens.work/api/v1/wallets/0xeF63781a022e0C219cb6521c8222150DeD82981d/transactions" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/wallets/{address}/portfolio Explorer index

Token portfolio

ETH balance plus every ERC-20 balance indexed for the wallet. No prices are invented: only on-chain quantities.

ParameterInTypeDescription
address*pathaddressWallet address.
Run it live
No key needed
Response fields & example
  • native { balance, formatted } — ETH balance read from RPC.
  • tokens Array<{ token, name, symbol, decimals, balance, formatted }> — Indexed ERC-20 balances.
curl
curl -X GET "https://www.sushilens.work/api/v1/wallets/0xeF63781a022e0C219cb6521c8222150DeD82981d/portfolio" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/wallets/{address}/nfts Explorer index

NFT holdings

NFTs (ERC-721 / ERC-1155) held by the wallet, from the explorer index.

ParameterInTypeDescription
address*pathaddressWallet address.
cursorquerystringPagination cursor.
Run it live
No key needed
Response fields & example
  • items Array<{ contract, tokenId, standard, amount, collectionName }> — Held tokens.
  • nextCursor string | null — Next page cursor.
curl
curl -X GET "https://www.sushilens.work/api/v1/wallets/0xeF63781a022e0C219cb6521c8222150DeD82981d/nfts" \
  -H "x-api-key: YOUR_API_KEY"

DeFi API

Uniswap V2-style pairs and V3-style pools: reserves, pricing and swap events.

GET/v1/defi/v2/pools/{pool} RPC

V2 pair (liquidity pool)

Uniswap V2-compatible pair: tokens, reserves, LP supply and spot prices.

ParameterInTypeDescription
pool*pathaddressPair contract address.
Run it live
No key needed
Response fields & example
  • token0 / token1 { address, symbol, decimals } — Pool tokens.
  • reserve0 / reserve1 string — Raw reserves.
  • price0In1 string — Price of token0 denominated in token1.
  • price1In0 string — Price of token1 denominated in token0.
  • lpTotalSupply string — LP token supply.
curl
curl -X GET "https://www.sushilens.work/api/v1/defi/v2/pools/0x8803c117ccae7B5146297876c2A25DF135141C4d" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/defi/v3/pools/{pool} RPC

V3 pool (concentrated liquidity)

Uniswap V3-compatible pool: tokens, fee tier, tick, sqrtPriceX96, active liquidity and spot price.

ParameterInTypeDescription
pool*pathaddressPool contract address.
Run it live
No key needed
Response fields & example
  • token0 / token1 { address, symbol, decimals } — Pool tokens.
  • fee number — Fee tier in hundredths of a bip.
  • tick number — Current tick.
  • sqrtPriceX96 string — Current sqrt price.
  • liquidity string — In-range liquidity.
  • price0In1 string — Spot price of token0 in token1.
curl
curl -X GET "https://www.sushilens.work/api/v1/defi/v3/pools/0x69BfaF19C9f377BB306a89aEd9F6B07e2c1a8d9a" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/defi/{version}/pools/{pool}/swaps RPC

Swap events

Swap events of a V2 pair or V3 pool from chain logs for a bounded block range.

ParameterInTypeDescription
version*pathv2|v3Pool protocol version.
pool*pathaddressPair / pool address.
fromBlockqueryuintFirst block to scan. When omitted the widest range the RPC provider accepts is used, and the response reports what was scanned (fromBlock, toBlock, rangeNarrowed).
toBlockqueryuintLast block to scan. Defaults to the head block.
limitquerylimitMaximum events returned (newest first).
Run it live
No key needed
Response fields & example
  • swaps Array<{ sender, recipient, amount0, amount1, blockNumber, transactionHash }> — Signed amounts: positive = into pool.
curl
curl -X GET "https://www.sushilens.work/api/v1/defi/v2/pools/0x8803c117ccae7B5146297876c2A25DF135141C4d/swaps" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/defi/price RPC

Token price from a pool

On-chain spot price of a token derived from a specific V2 pair or V3 pool you choose. No off-chain price feeds.

ParameterInTypeDescription
pool*queryaddressPair / pool address.
version*queryv2|v3Pool version.
base*queryaddressToken to price (must be one of the pool tokens).
Run it live
No key needed
Response fields & example
  • base object — Priced token.
  • quote object — Denomination token.
  • price string — Units of quote per 1 base.
  • blockNumber string — Block the price was read at.
curl
curl -X GET "https://www.sushilens.work/api/v1/defi/price?pool=0x8803c117ccae7B5146297876c2A25DF135141C4d&version=v2&base=0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73" \
  -H "x-api-key: YOUR_API_KEY"

NFT API

ERC-721 / ERC-1155 collections, token ownership, token URIs and transfers.

GET/v1/nfts/{contract} RPC

NFT collection

Standard detection (ERC-721 / ERC-1155 via ERC-165), name, symbol and total supply when exposed.

ParameterInTypeDescription
contract*pathaddressCollection contract address.
Run it live
No key needed
Response fields & example
  • standard "ERC721" | "ERC1155" | "unknown" — Detected standard.
  • name string | null — Collection name.
  • symbol string | null — Collection symbol.
  • totalSupply string | null — Total supply when ERC721Enumerable.
curl
curl -X GET "https://www.sushilens.work/api/v1/nfts/0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/nfts/{contract}/{tokenId} RPC

NFT token

Owner and token URI of an ERC-721 token, or the URI of an ERC-1155 token. Optionally checks an ERC-1155 holder balance.

ParameterInTypeDescription
contract*pathaddressCollection contract address.
tokenId*pathuintToken ID.
holderqueryaddressERC-1155 only: return this holder's balance.
Run it live
No key needed
Response fields & example
  • standard string — Detected standard.
  • owner string | null — ERC-721 owner.
  • tokenURI string | null — Metadata URI as stored on-chain (not fetched).
  • holderBalance string | null — ERC-1155 balance of holder.
curl
curl -X GET "https://www.sushilens.work/api/v1/nfts/0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3/1545057" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/nfts/{contract}/transfers RPC

NFT transfers

ERC-721 Transfer events from chain logs for a bounded block range.

ParameterInTypeDescription
contract*pathaddressERC-721 contract address.
fromBlockqueryuintFirst block to scan. When omitted the widest range the RPC provider accepts is used, and the response reports what was scanned (fromBlock, toBlock, rangeNarrowed).
toBlockqueryuintLast block to scan. Defaults to the head block.
limitquerylimitMaximum events returned (newest first).
Run it live
No key needed
Response fields & example
  • transfers Array<{ from, to, tokenId, blockNumber, transactionHash, logIndex }> — Newest first.
curl
curl -X GET "https://www.sushilens.work/api/v1/nfts/0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3/transfers" \
  -H "x-api-key: YOUR_API_KEY"

Network API

Chain health, head block, gas pricing and fee market data.

GET/v1/network/status RPC

Network status

Chain ID, head block, block age and the RPC provider currently serving requests.

Run it live
No key needed
Response fields & example
  • chainId number — Chain ID reported by the node.
  • blockNumber string — Latest block number.
  • blockTimestamp number — Unix timestamp of the latest block.
  • secondsSinceLastBlock number — Head block age in seconds.
  • healthy boolean — True when the head block is younger than 60 seconds.
curl
curl -X GET "https://www.sushilens.work/api/v1/network/status" \
  -H "x-api-key: YOUR_API_KEY"
GET/v1/network/gas RPC

Gas prices

Current gas price, base fee and EIP-1559 fee estimates (all values in wei).

Run it live
No key needed
Response fields & example
  • gasPrice string — Legacy gas price (wei).
  • baseFeePerGas string | null — Base fee of the latest block (wei).
  • maxFeePerGas string | null — Suggested EIP-1559 max fee (wei).
  • maxPriorityFeePerGas string | null — Suggested priority fee (wei).
  • gasPriceGwei string — Gas price formatted in gwei.
curl
curl -X GET "https://www.sushilens.work/api/v1/network/gas" \
  -H "x-api-key: YOUR_API_KEY"

JSON-RPC Proxy

Authenticated, metered, read-only JSON-RPC with automatic provider failover.

POST/v1/rpc RPC

JSON-RPC (read-only)

Standard JSON-RPC 2.0 request body. Read-only methods only: eth_blockNumber, eth_chainId, eth_call, eth_estimateGas, eth_gasPrice, eth_getBalance, eth_getBlockByNumber, eth_getBlockByHash, eth_getCode, eth_getLogs, eth_getStorageAt, eth_getTransactionByHash, eth_getTransactionCount, eth_getTransactionReceipt, eth_feeHistory, eth_maxPriorityFeePerGas, net_version.

ParameterInTypeDescription
method*bodystringJSON-RPC method name.
paramsbodyjsonJSON-RPC params array.
Run it live

POST endpoints aren't in the public sandbox. Create a free key

Response fields & example
  • result any — Raw JSON-RPC result from the node.
curl
curl -X POST "https://www.sushilens.work/api/v1/rpc" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "content-type: application/json" \
  -d '{"method":"eth_blockNumber","params":[]}'