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
Quick start
- Open the dashboard and connect MetaMask or Trust Wallet.
- Sign the Sign-In with Ethereum message (free, no transaction).
- Create a key under API Keys. Copy it — it is shown only once.
- Call any endpoint with the key in the
x-api-keyheader:
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": true,
"data": { … },
"meta": {
"chain": "robinhood",
"network": "mainnet",
"chainId": 4663,
"timestamp": "ISO_TIMESTAMP",
"requestId": "req_…",
"endpoint": "tokens.get",
"cached": false,
"source": "rpc"
}
}{
"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
| HTTP | code | Meaning |
|---|---|---|
| 400 | bad_request | Malformed request, invalid JSON body, or a contract call that reverted for your input. |
| 400 | invalid_params | A parameter failed validation. `details` lists each param and why. |
| 401 | missing_api_key | No key in x-api-key or Authorization: Bearer. |
| 401 | invalid_api_key | Key not recognised. Repeated failures from one IP trigger a temporary block. |
| 401 | key_revoked | The key was revoked in the dashboard. |
| 401 | key_expired | The key passed its expiry or its rotation grace period ended. |
| 403 | insufficient_scope | The key isn't allowed to call this API family. Edit its permissions. |
| 403 | origin_not_allowed | Browser Origin isn't in the key's application allow-list. |
| 403 | forbidden | Action not allowed, e.g. a JSON-RPC method outside the read-only allow-list. |
| 404 | not_found | Unknown endpoint, or the block / transaction / contract / token doesn't exist. |
| 405 | method_not_allowed | Wrong HTTP method for this path. See the Allow header. |
| 429 | rate_limited | Per-minute limit hit. Wait Retry-After seconds. |
| 429 | quota_exceeded | Daily quota (plan or key) used up. Resets 00:00 UTC. |
| 429 | ip_blocked | Too many failed authentications from your IP; blocked for 15 minutes. |
| 500 | internal_error | Unexpected server error. Include the requestId when reporting it. |
| 503 | rpc_unavailable | Every configured Robinhood Chain RPC provider failed. Retry shortly. |
| 503 | indexer_unavailable | The explorer index is not configured or not reachable for this network. |
| 503 | service_unavailable | A 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.
| Plan | Requests / min / key | Daily quota | Active keys | Applications |
|---|---|---|---|---|
| Free | 60 | 25,000 | 5 | 3 |
| Builder | 300 | 250,000 | 25 | 10 |
| Scale | 1,200 | 2,500,000 | 100 | 50 |
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 / 503Networks
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).
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
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);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 -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.
/v1/blocks/latest RPCLatest block
The current head block with its transaction hashes.
Run it live
Response fields & example
numberstring — Block number.hashstring — Block hash.timestampnumber — Unix timestamp.transactionsstring[] — Transaction hashes in the block.gasUsedstring — Total gas used.
curl -X GET "https://www.sushilens.work/api/v1/blocks/latest" \
-H "x-api-key: YOUR_API_KEY"/v1/blocks/{block} RPCBlock by number or hash
Fetch a block by number, hash, or the tags latest / safe / finalized.
| Parameter | In | Type | Description |
|---|---|---|---|
| block* | path | blockId | Block number, 32-byte block hash, or a tag. |
| transactions | query | hashes|full | Return transaction hashes or full transaction objects. |
Run it live
Response fields & example
numberstring — Block number.hashstring — Block hash.parentHashstring — Parent block hash.timestampnumber — Unix timestamp.transactionsstring[] | Transaction[] — Hashes or full objects.
curl -X GET "https://www.sushilens.work/api/v1/blocks/finalized" \
-H "x-api-key: YOUR_API_KEY"/v1/transactions/{hash} RPCTransaction + receipt
Transaction, its receipt, execution status and confirmation count. Pending transactions return status "pending".
| Parameter | In | Type | Description |
|---|---|---|---|
| hash* | path | txHash | Transaction hash. |
Run it live
Response fields & example
status"pending" | "success" | "reverted" — Execution status.confirmationsnumber — Blocks mined on top (0 when pending).transactionobject — The transaction object.receiptobject | null — The receipt, including logs and gasUsed.
curl -X GET "https://www.sushilens.work/api/v1/transactions/0x1721f9171b16c6219c05321b6bc7a7082c318fb25147a639bfc2ce6ec9121ecc" \
-H "x-api-key: YOUR_API_KEY"/v1/addresses/{address}/balance RPCNative balance
ETH balance of any address, optionally at a historical block.
| Parameter | In | Type | Description |
|---|---|---|---|
| address* | path | address | Account address. |
| block | query | uint | Historical block number (archive nodes only). |
Run it live
Response fields & example
addressstring — Checksummed address.balancestring — Balance in wei.formattedstring — Balance in ETH.blockNumberstring — Block the balance was read at.
curl -X GET "https://www.sushilens.work/api/v1/addresses/0xeF63781a022e0C219cb6521c8222150DeD82981d/balance" \
-H "x-api-key: YOUR_API_KEY"/v1/contracts/{address} RPCSmart contract info
Bytecode size and hash, EIP-1967 proxy slots, and ERC-165 interface detection.
| Parameter | In | Type | Description |
|---|---|---|---|
| address* | path | address | Contract address. |
Run it live
Response fields & example
isContractboolean — Whether code is deployed at the address.bytecodeSizenumber — Deployed bytecode size in bytes.codeHashstring | null — keccak256 of the deployed bytecode.proxyobject — EIP-1967 implementation, admin and beacon addresses when set.interfacesobject — ERC-165 support for ERC-165, ERC-721, ERC-1155.
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.
/v1/tokens/{address} RPCToken metadata
ERC-20 name, symbol, decimals and total supply read directly from the contract.
| Parameter | In | Type | Description |
|---|---|---|---|
| address* | path | address | ERC-20 contract address. |
Run it live
Response fields & example
addressstring — Checksummed token address.namestring | null — Token name.symbolstring | null — Token symbol.decimalsnumber | null — Token decimals.totalSupplystring | null — Raw total supply.totalSupplyFormattedstring | null — Total supply adjusted for decimals.
curl -X GET "https://www.sushilens.work/api/v1/tokens/0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73" \
-H "x-api-key: YOUR_API_KEY"/v1/tokens/{address}/balances/{owner} RPCToken balance
ERC-20 balance of one owner.
| Parameter | In | Type | Description |
|---|---|---|---|
| address* | path | address | ERC-20 contract address. |
| owner* | path | address | Holder address. |
Run it live
Response fields & example
tokenstring — Token address.ownerstring — Owner address.balancestring — Raw balance.formattedstring | null — Balance adjusted for decimals.
curl -X GET "https://www.sushilens.work/api/v1/tokens/0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73/balances/0xeF63781a022e0C219cb6521c8222150DeD82981d" \
-H "x-api-key: YOUR_API_KEY"/v1/tokens/balances RPCBatch token balances
Balances of up to 50 ERC-20 tokens for one owner in a single request.
| Parameter | In | Type | Description |
|---|---|---|---|
| owner* | body | address | Holder address. |
| tokens* | body | addressList | Array 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
ownerstring — Owner address.balancesArray<{ token, balance, decimals, formatted, error? }> — One entry per requested token.
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"]}'/v1/tokens/{address}/transfers RPCToken transfers
ERC-20 Transfer events read from chain logs for a bounded block range.
| Parameter | In | Type | Description |
|---|---|---|---|
| address* | path | address | ERC-20 contract address. |
| fromBlock | query | uint | First block to scan. When omitted the widest range the RPC provider accepts is used, and the response reports what was scanned (fromBlock, toBlock, rangeNarrowed). |
| toBlock | query | uint | Last block to scan. Defaults to the head block. |
| limit | query | limit | Maximum events returned (newest first). |
Run it live
Response fields & example
fromBlockstring — Scanned range start.toBlockstring — Scanned range end.rangeNarrowedboolean — True when the provider's limits forced a narrower default range.transfersArray<{ from, to, value, blockNumber, transactionHash, logIndex }> — Newest first.
curl -X GET "https://www.sushilens.work/api/v1/tokens/0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73/transfers" \
-H "x-api-key: YOUR_API_KEY"/v1/tokens/{address}/holders Explorer indexToken holders
Holder list with balances, served from the Robinhood Chain explorer index.
| Parameter | In | Type | Description |
|---|---|---|---|
| address* | path | address | ERC-20 contract address. |
| cursor | query | string | Opaque pagination cursor from a previous response. |
Run it live
Response fields & example
holdersArray<{ address, balance }> — Holders sorted by balance.nextCursorstring | null — Pass as cursor to fetch the next page.
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.
/v1/wallets/{address} RPCWallet overview
ETH balance, nonce (transaction count) and whether the address is a contract.
| Parameter | In | Type | Description |
|---|---|---|---|
| address* | path | address | Wallet address. |
Run it live
Response fields & example
addressstring — Checksummed address.balancestring — ETH balance in wei.formattedstring — ETH balance.noncenumber — Number of transactions sent.isContractboolean — True for smart accounts / contracts.
curl -X GET "https://www.sushilens.work/api/v1/wallets/0xeF63781a022e0C219cb6521c8222150DeD82981d" \
-H "x-api-key: YOUR_API_KEY"/v1/wallets/{address}/transactions Explorer indexTransaction history
Paginated transaction history from the explorer index.
| Parameter | In | Type | Description |
|---|---|---|---|
| address* | path | address | Wallet address. |
| cursor | query | string | Pagination cursor. |
Run it live
Response fields & example
transactionsArray<{ hash, from, to, value, status, blockNumber, timestamp, method }> — Newest first.nextCursorstring | null — Next page cursor.
curl -X GET "https://www.sushilens.work/api/v1/wallets/0xeF63781a022e0C219cb6521c8222150DeD82981d/transactions" \
-H "x-api-key: YOUR_API_KEY"/v1/wallets/{address}/portfolio Explorer indexToken portfolio
ETH balance plus every ERC-20 balance indexed for the wallet. No prices are invented: only on-chain quantities.
| Parameter | In | Type | Description |
|---|---|---|---|
| address* | path | address | Wallet address. |
Run it live
Response fields & example
native{ balance, formatted } — ETH balance read from RPC.tokensArray<{ token, name, symbol, decimals, balance, formatted }> — Indexed ERC-20 balances.
curl -X GET "https://www.sushilens.work/api/v1/wallets/0xeF63781a022e0C219cb6521c8222150DeD82981d/portfolio" \
-H "x-api-key: YOUR_API_KEY"/v1/wallets/{address}/nfts Explorer indexNFT holdings
NFTs (ERC-721 / ERC-1155) held by the wallet, from the explorer index.
| Parameter | In | Type | Description |
|---|---|---|---|
| address* | path | address | Wallet address. |
| cursor | query | string | Pagination cursor. |
Run it live
Response fields & example
itemsArray<{ contract, tokenId, standard, amount, collectionName }> — Held tokens.nextCursorstring | null — Next page cursor.
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.
/v1/defi/v2/pools/{pool} RPCV2 pair (liquidity pool)
Uniswap V2-compatible pair: tokens, reserves, LP supply and spot prices.
| Parameter | In | Type | Description |
|---|---|---|---|
| pool* | path | address | Pair contract address. |
Run it live
Response fields & example
token0 / token1{ address, symbol, decimals } — Pool tokens.reserve0 / reserve1string — Raw reserves.price0In1string — Price of token0 denominated in token1.price1In0string — Price of token1 denominated in token0.lpTotalSupplystring — LP token supply.
curl -X GET "https://www.sushilens.work/api/v1/defi/v2/pools/0x8803c117ccae7B5146297876c2A25DF135141C4d" \
-H "x-api-key: YOUR_API_KEY"/v1/defi/v3/pools/{pool} RPCV3 pool (concentrated liquidity)
Uniswap V3-compatible pool: tokens, fee tier, tick, sqrtPriceX96, active liquidity and spot price.
| Parameter | In | Type | Description |
|---|---|---|---|
| pool* | path | address | Pool contract address. |
Run it live
Response fields & example
token0 / token1{ address, symbol, decimals } — Pool tokens.feenumber — Fee tier in hundredths of a bip.ticknumber — Current tick.sqrtPriceX96string — Current sqrt price.liquiditystring — In-range liquidity.price0In1string — Spot price of token0 in token1.
curl -X GET "https://www.sushilens.work/api/v1/defi/v3/pools/0x69BfaF19C9f377BB306a89aEd9F6B07e2c1a8d9a" \
-H "x-api-key: YOUR_API_KEY"/v1/defi/{version}/pools/{pool}/swaps RPCSwap events
Swap events of a V2 pair or V3 pool from chain logs for a bounded block range.
| Parameter | In | Type | Description |
|---|---|---|---|
| version* | path | v2|v3 | Pool protocol version. |
| pool* | path | address | Pair / pool address. |
| fromBlock | query | uint | First block to scan. When omitted the widest range the RPC provider accepts is used, and the response reports what was scanned (fromBlock, toBlock, rangeNarrowed). |
| toBlock | query | uint | Last block to scan. Defaults to the head block. |
| limit | query | limit | Maximum events returned (newest first). |
Run it live
Response fields & example
swapsArray<{ sender, recipient, amount0, amount1, blockNumber, transactionHash }> — Signed amounts: positive = into pool.
curl -X GET "https://www.sushilens.work/api/v1/defi/v2/pools/0x8803c117ccae7B5146297876c2A25DF135141C4d/swaps" \
-H "x-api-key: YOUR_API_KEY"/v1/defi/price RPCToken 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.
| Parameter | In | Type | Description |
|---|---|---|---|
| pool* | query | address | Pair / pool address. |
| version* | query | v2|v3 | Pool version. |
| base* | query | address | Token to price (must be one of the pool tokens). |
Run it live
Response fields & example
baseobject — Priced token.quoteobject — Denomination token.pricestring — Units of quote per 1 base.blockNumberstring — Block the price was read at.
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.
/v1/nfts/{contract} RPCNFT collection
Standard detection (ERC-721 / ERC-1155 via ERC-165), name, symbol and total supply when exposed.
| Parameter | In | Type | Description |
|---|---|---|---|
| contract* | path | address | Collection contract address. |
Run it live
Response fields & example
standard"ERC721" | "ERC1155" | "unknown" — Detected standard.namestring | null — Collection name.symbolstring | null — Collection symbol.totalSupplystring | null — Total supply when ERC721Enumerable.
curl -X GET "https://www.sushilens.work/api/v1/nfts/0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3" \
-H "x-api-key: YOUR_API_KEY"/v1/nfts/{contract}/{tokenId} RPCNFT 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.
| Parameter | In | Type | Description |
|---|---|---|---|
| contract* | path | address | Collection contract address. |
| tokenId* | path | uint | Token ID. |
| holder | query | address | ERC-1155 only: return this holder's balance. |
Run it live
Response fields & example
standardstring — Detected standard.ownerstring | null — ERC-721 owner.tokenURIstring | null — Metadata URI as stored on-chain (not fetched).holderBalancestring | null — ERC-1155 balance of holder.
curl -X GET "https://www.sushilens.work/api/v1/nfts/0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3/1545057" \
-H "x-api-key: YOUR_API_KEY"/v1/nfts/{contract}/transfers RPCNFT transfers
ERC-721 Transfer events from chain logs for a bounded block range.
| Parameter | In | Type | Description |
|---|---|---|---|
| contract* | path | address | ERC-721 contract address. |
| fromBlock | query | uint | First block to scan. When omitted the widest range the RPC provider accepts is used, and the response reports what was scanned (fromBlock, toBlock, rangeNarrowed). |
| toBlock | query | uint | Last block to scan. Defaults to the head block. |
| limit | query | limit | Maximum events returned (newest first). |
Run it live
Response fields & example
transfersArray<{ from, to, tokenId, blockNumber, transactionHash, logIndex }> — Newest first.
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.
/v1/network/status RPCNetwork status
Chain ID, head block, block age and the RPC provider currently serving requests.
Run it live
Response fields & example
chainIdnumber — Chain ID reported by the node.blockNumberstring — Latest block number.blockTimestampnumber — Unix timestamp of the latest block.secondsSinceLastBlocknumber — Head block age in seconds.healthyboolean — True when the head block is younger than 60 seconds.
curl -X GET "https://www.sushilens.work/api/v1/network/status" \
-H "x-api-key: YOUR_API_KEY"/v1/network/gas RPCGas prices
Current gas price, base fee and EIP-1559 fee estimates (all values in wei).
Run it live
Response fields & example
gasPricestring — Legacy gas price (wei).baseFeePerGasstring | null — Base fee of the latest block (wei).maxFeePerGasstring | null — Suggested EIP-1559 max fee (wei).maxPriorityFeePerGasstring | null — Suggested priority fee (wei).gasPriceGweistring — Gas price formatted in gwei.
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.
/v1/rpc RPCJSON-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.
| Parameter | In | Type | Description |
|---|---|---|---|
| method* | body | string | JSON-RPC method name. |
| params | body | json | JSON-RPC params array. |
Run it live
POST endpoints aren't in the public sandbox. Create a free key
Response fields & example
resultany — Raw JSON-RPC result from the node.
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":[]}'