Connect over JSON-RPC

The Basis Network devnet is a public development network, open to the internet, but every request needs a personal token. Everything you need to connect is right here.

It is not a production environment: devnet LITHOS has no value and the chain may be reset without notice.

Setup

The token goes in the path, not in a header. Export a single variable and the official CLI works with no other changes:

export BASIS_RPC_URL=https://rpc.basisnetwork.com.co/<your-token>

The same URL works with any client that speaks JSON-RPC over HTTPS:

curl -X POST https://rpc.basisnetwork.com.co/<your-token> \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

Each token identifies one person and is revoked individually. Don’t publish it or paste it into a repository: whoever has it talks to the network on your behalf. If it leaks, ask us for a new one and we’ll revoke the old one on the spot.

Network details

ParameterValue
Chain ID 6969 (0x1b39)
Internal name basis-devnet-6969
Currency LITHOS
Smallest unit tomo — 1 LITHOS = 1,000,000,000 tomos
Decimals 9
Minimum base fee 100 tomos per unit of gas
Cost of a transfer 21,000 gas × 100 = 0.0021 LITHOS
Block time ≈ 3 s, whether or not there are transactions
Signatures ML-DSA-65 (FIPS 204)
Addresses 32 bytes — BLAKE3 of the public key
JSON-RPC endpoint rpc.basisnetwork.com.co/<your-token>
Explorer explorer.basisnetwork.com.co

Basis is post-quantum: an Ethereum wallet can only read here. Addresses are 32 bytes instead of 20 and signatures are ML-DSA-65, not secp256k1, so MetaMask and the like can query the chain but can’t sign a transaction for it. To send transactions, use the Basis CLI or the official wallet.

Limits

LimitValue
Requests per IP address25/s sustained, bursts of up to 50
Calls per batch100
Enabled methods38 (listed below)
Size of a transfer≈ 5,444 bytes on the wire

Exceeding the rate limit returns 429; calling a method that isn’t on the list returns a JSON-RPC error, not a network failure. The devnet doesn’t keep historical state: queries against old blocks — eth_call or eth_getBalance at a past height — fail by design. Always query at latest.

Available methods

The eth_* methods are the compatibility interface; the basis_* methods are the native ones, and the only ones that understand 32-byte addresses without truncating them.

  • eth_blockNumber
  • eth_chainId
  • net_version
  • web3_clientVersion
  • eth_getBlockByNumber
  • eth_getBlockByHash
  • eth_getTransactionByHash
  • eth_getTransactionReceipt
  • eth_getTransactionByBlockNumberAndIndex
  • eth_getTransactionByBlockHashAndIndex
  • eth_getBalance
  • eth_getCode
  • eth_getStorageAt
  • eth_getLogs
  • eth_call
  • eth_estimateGas
  • eth_gasPrice
  • eth_maxPriorityFeePerGas
  • eth_feeHistory
  • eth_getTransactionCount
  • eth_syncing
  • eth_getUncleByBlockHashAndIndex
  • eth_sendRawTransaction
  • eth_getBlockReceipts
  • eth_getBlockTransactionCountByNumber
  • basis_blockNumber
  • basis_resolveAddress
  • basis_getRawTransaction
  • basis_getBlockConsensus
  • basis_getBalance
  • basis_getTransactionCount
  • basis_getBlock
  • basis_getBlocks
  • basis_chainId
  • basis_getSubnets
  • basis_getValidators
  • basis_getAccount
  • basis_getReceipt

Get a token

In the Basis Network Discord, type /rpc-token and tell us in one sentence what you’re going to build. The request goes to the team, and once someone approves it the bot sends you the full URL by direct message. Allow direct messages from members of that server, or the bot won’t be able to send it.

One token per person: if you ask again, you get the same one. If you’d rather use email, contact@basisnetwork.com.co works too.

Need test LITHOS? Go to the faucet