TESTNET LIVE — SLOT #325,938

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
#69,599GZVWLFYn…LyB3XFMz0 tx1d ago
#69,59829zRUfUD…fuYVTEEf0 tx1d ago
#69,597F6eQ9xJz…A9wPCCqH0 tx1d ago
#69,596E8T5Q61E…dttweaaa0 tx1d ago
#69,5956W4zNpwV…TW6chDYP2 tx1d ago
#69,5945VJ9sFrN…jc2uyns10 tx1d ago
#69,5935v11GVtL…moprhNZS1 tx1d ago
#69,592HWcWtKBp…i4nPwqSH0 tx1d ago
#69,5913bkBn4co…4VmfU8XV0 tx1d ago
#69,5902dXF5Fzx…CeM1b3oj0 tx1d ago
SLOT HEIGHT
325,938
one block per 500ms
TOTAL BLOCKS
69,600
produced on the L2
TRANSACTIONS
18,350
executed end-to-end
SHIELDED NOTES
4,886
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
·3Y7S1F3m2W…XwvCUkQB
#69,595
transfer
0.000005
OK
6edn29oTSs…5zbtYx5f
#69,595
shielded_transfer
0.000080
OK
·4gzy9YkwJV…BZ76DV9w
#69,593
transfer
0.000005
OK
uWzxTy7gS6…KcBfn23t
#69,587
shielded_withdraw
0.000080
OK
·93DthV9311…wSd9sq65
#69,587
transfer
0.000005
OK
2kyDFpnjuT…qBNCLtCK
#69,581
shielded_transfer
0.000080
OK
·9cyxDXJozP…oQNqwi9d
#69,581
transfer
0.000005
OK
·9HgdxCiyHL…XdjvDbRr
#69,580
transfer
0.000005
OK
64JHrqPwYZ…92zJBVB5
#69,580
shielded_transfer
0.000080
OK
·8EemH9sewG…iARVMrYZ
#69,580
transfer
0.000005
OK
·9uGMckDjSi…ehyxE1hj
#69,575
transfer
0.000005
OK
2PKWC79vgY…sogke5Jo
#69,568
shielded_deposit
0.000080
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.