Build on Cube Chain.
Cube Chain speaks Ethereum. Use the wallets, libraries and contracts you already know, and reach every Cubeline by its number.
Connect in one minute.
Everything a wallet or library needs.
Cube Chainhttps://cubeapp.org/evmJSON-RPC over POST · rate-limited · CORS enabled282820x6e7aCUBEX18 decimalsAbout 5 secondsBlock gas limit 10,000,000Not public yetAsk the chain right now.
These calls go from your browser straight to the public RPC.
// pick a call above
Live on Cube Chain.
Every address below has been checked on chain.
0xBf321cB3A6Fd5c0676a0617c899572Ab31AfF13cERC-20 · 2 decimals · burnable, pausable0x5e5540a6A556996BD26a2391EfE40a1e94aD3e43Owns the cubeline name tree0xE2695638a57E981cD348C026f8BC2B39Ab6e4E31addr() and text("session") records for each Cubeline0x564689214d349D7bcFCf23B31a5F79cFBaE86c74Address → name lookups0x6BFDF4601c9db408AD23031DcF9ccfDfCd38B619Staking token for messaging nodes · 9 decimals0x5f393Cd2f563305706ea85236A60006B37fB9aDAConverts CUBEX into the staking token0x42F288968747136C14F58d00B6Bd99549aD51dfcRegisters and tracks staked messaging nodes0xD0b663ea633D727CE9e8e471bEB2b767c7971356Creates shared-stake contracts for nodesEvery number is a name on chain.
A Cubeline like 28 767 087 340 lives at 28767087340.cubeline in the name registry. Its resolver holds two records:
addr(node)The Cubeline's wallet on Cube Chain. Send Naira here.
text(node, "session")The Cubeline's messaging ID, used to start an encrypted chat.
// Resolve a Cubeline to its wallet with ethers v6 import { JsonRpcProvider, namehash, Contract } from "ethers"; const chain = new JsonRpcProvider("https://cubeapp.org/evm", 28282); const registry = new Contract("0x5e5540a6A556996BD26a2391EfE40a1e94aD3e43", ["function resolver(bytes32) view returns (address)"], chain); const node = namehash("28767087340.cubeline"); const resolver = new Contract(await registry.resolver(node), [ "function addr(bytes32) view returns (address)", "function text(bytes32,string) view returns (string)", ], chain); console.log(await resolver.addr(node)); // wallet console.log(await resolver.text(node, "session")); // messaging ID
// Read a Naira balance (2 decimals) import { JsonRpcProvider, Contract, formatUnits } from "ethers"; const chain = new JsonRpcProvider("https://cubeapp.org/evm", 28282); const ngn = new Contract("0xBf321cB3A6Fd5c0676a0617c899572Ab31AfF13c", ["function balanceOf(address) view returns (uint256)"], chain); const raw = await ngn.balanceOf(wallet); console.log("₦" + formatUnits(raw, 2));
# Latest block over JSON-RPC curl -s https://cubeapp.org/evm -H 'content-type: application/json' \ -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' # A Cubeline's wallet, over HTTPS curl -s https://cubeapp.org/cubeline/evm/28767087340 # → {"evm_address":"0x…"}
Public endpoints on cubeapp.org.
Read-only lookups, rate-limited per IP address.
/cubeline/evm/{cubeline}The wallet address of an 11-digit Cubeline, as {"evm_address": "0x…"}.
/cubeline/session/{messagingId}The Cubeline and username behind a messaging ID, as {"number", "username"}.
/apphub/appsThe Cube AppHub catalogue: names, versions, sizes and SHA-256 fingerprints.
/cubex/priceThe latest US dollar to naira rate used by the apps.
/evmThe Cube Chain JSON-RPC endpoint.
Developer questions.
Building on Cube Chain.
01Which tools work?
Anything that speaks Ethereum JSON-RPC: ethers, viem, web3.js, Foundry, Hardhat and browser wallets. Use chain ID 28282 and the RPC URL above.
02Is there a block explorer?
Not a public one yet. Use the RPC directly, or the live console on this page.
03Are there rate limits?
Yes. The public RPC and the HTTPS API are rate-limited per IP address. Write to us if you need more.
04How do I get CUBEX for gas?
Write to support@egoras.com with what you are building.
Building something for Cubelines?
Tell us about it. We would love to help, and to feature it on AppHub.