TESTNET LIVE — SLOT #466,931

Private
value transfer
on a real L2.

BLOX produces its own blocks on a fixed 500 ms slot, executes standard transactions through an unmodified VM pipeline, and anchors a multi-asset shielded pool natively in the node — amounts and ownership stay private between deposit and withdrawal.

LATEST BLOCKS
#297,999BimQUfxa…VyoiF1SU0 tx23h ago
#297,998BAhF2kb5…rv5Lm9Gd0 tx23h ago
#297,997Fx9ps9sr…dKXdDu8C0 tx23h ago
#297,996AeKNuZV6…puJyQkLB0 tx23h ago
#297,995AvP4Z2fb…szaCZZkg0 tx23h ago
#297,994EBv2bzNH…agjgdzQa0 tx23h ago
#297,993FEGNrNpL…jjLeShsr0 tx23h ago
#297,9924cnq4d9f…pEUxgGi73 tx23h ago
#297,991H68HF8dY…jEkbnzQ30 tx23h ago
#297,990EEu4hWhk…rhUB7EfF0 tx23h ago
SLOT HEIGHT
466,931
one block per 500ms
TOTAL BLOCKS
298,000
produced on the L2
TRANSACTIONS
77,274
executed end-to-end
SHIELDED NOTES
20,875
0 nullifiers spent
REAL BLOCK PRODUCTION

Sequencer-signed blocks at a fixed 500ms slot. Not an indexer, not a wrapper — its own ledger.

STANDARD VM

System, token, and user-deployed programs execute unmodified. If your code runs on the base layer, it runs here.

ENSHRINED PRIVACY

A multi-asset shielded pool is native in the node. Proofs verify on the node's CPU budget, not inside a contract VM.

RECENT TRANSACTIONS

VIEW ALL →
SIGNATURE
SLOT
KIND
FEE
STATUS
·4skeDVV7Br…pNv7rHMP
#297,992
transfer
0.000005
OK
9rG6gRcWkw…YCGG57mV
#297,992
shielded_deposit
0.000080
OK
·9DYq7JY5WK…ip3j1KhL
#297,992
transfer
0.000005
OK
·519VaFX27q…aj5vUebW
#297,979
transfer
0.000005
OK
4Lt918YZ6n…H2hQW8qh
#297,979
shielded_transfer
0.000080
OK
·6Rdwjehpk2…imZCKgyh
#297,979
transfer
0.000005
OK
7QUFyZTnKT…DysTr7te
#297,976
shielded_deposit
0.000080
OK
3BTA69ThW2…v6ANHz6m
#297,961
shielded_withdraw
0.000080
OK
·948QkrmxcX…BeTxJjfN
#297,961
transfer
0.000005
OK
8svGJhekgY…r8U9bmYP
#297,961
shielded_transfer
0.000080
OK
·5rmsK4cmMS…33SkweJ3
#297,955
transfer
0.000005
OK
·29ch2HPToR…8hr77s9q
#297,940
program
0.000005
OK
§ 01 — ARCHITECTURE

From signed tx to settled block.

FULL SPEC →
§ 00
WALLET

Client signs a tx. Shielded txs carry a Groth16 proof generated locally.

§ 01
GOSSIP

Tx enters the mempool over the node's p2p layer. No external sequencer.

§ 02
SEQUENCER

A leader assembles the next 500ms slot, orders txs, signs the block header.

§ 03
EXECUTOR

Standard VM runs program logic. Shielded txs verify against the commitment tree.

§ 04
SETTLEMENT

Block root is anchored to the base layer; DA is replayable from any full node.

§ 02 — SHIELDED POOL

Notes, not accounts.

Every shielded deposit mints a commitment into an append-only Merkle tree. Spending a note publishes a nullifier — the network learns nothing about which leaf was consumed, only that it was consumed exactly once.

tree_depth32
hashposeidon2 / bn254
proof_systemgroth16
anchors_kept256 slots
assetsany spl-compatible mint
§ 03 — GAS

One unit, paid in BLOX.

Execution and proof verification meter against a single compute-unit budget. Fees burn 50% and route 50% to the active sequencer set — no separate proving market, no off-protocol relayers.

slot500ms
cu_per_block48,000,000
base_fee0.000005 BLOX
shielded_verify~180,000 cu
burn_ratio50 / 50
§ 04 — INTEGRATION

A familiar RPC surface.

SDK REFERENCE →
~ / shielded-transfer.ts
TYPESCRIPT
import { BloxClient } from "@blox/sdk";

const blox   = new BloxClient("https://rpc.testnet.blox.run");
const wallet = await blox.wallet.fromMnemonic(MNEMONIC);

// 1. fetch unspent notes owned by this viewing key
const notes  = await blox.shielded.listNotes(wallet.viewingKey);

// 2. build a 2-in / 2-out shielded transfer
const tx = await blox.shielded.transfer({
  inputs:  [notes[0], notes[1]],
  outputs: [
    { to: RECIPIENT, asset: "BLOX", amount: 12_500_000n },
    { to: wallet.changeAddr, asset: "BLOX",
      amount: notes[0].amount + notes[1].amount - 12_500_000n - FEE },
  ],
});

// 3. proof generated client-side; node only verifies it
const sig = await blox.sendTransaction(tx);
await blox.confirm(sig, "finalized");
§ 05 — STAGES

Where we are. Where we're going.

STAGE 0
LIVE
Public testnet

Sequencer-signed blocks, shielded pool, bridge UI, explorer, indexer.

STAGE 1
Q3 2026
Permissionless validators

Open the sequencer set; BFT consensus over 500ms slots; slashing.

STAGE 2
Q1 2027
Settlement & DA

Anchor block roots to the base layer; full data-availability proofs.

STAGE 3
TBD
Programmable privacy

User-deployed circuits sharing the shielded pool's anonymity set.

§ 06 — FAQ

Questions we get
most often.

Is BLOX a rollup?+

BLOX produces its own blocks and settles roots to a base layer. It is closer to a sovereign L2 than a smart-contract rollup — execution is native, not re-executed by a verifier contract.

Who runs the sequencer today?+

During Stage 0 the sequencer set is operated by the core team. Stage 1 opens it permissionlessly with stake-weighted leader rotation.

Do I need a special wallet?+

No. Standard signing works for transparent txs. Shielded txs need a viewing key and a local prover — both are bundled in @blox/sdk and the reference wallet.

Can the team see my balance?+

No. Amounts, asset types and ownership inside the shielded pool are hidden by the Groth16 circuit. The node only ever sees commitments and nullifiers.

What if the sequencer goes down?+

Testnet halts until the sequencer restarts and replays from the last finalized slot. Stage 1+ uses a BFT set, so liveness survives single-node failure.

/ JOIN THE TESTNET

Bridge in. Send privately.
Withdraw whenever.

Testnet BLOX is free. The bridge, the shielded pool and the explorer are all live right now — no waitlist, no allowlist.