Experimental public testnet

Permawrite

public-devnet-v1 · committee 3 · slot 30s

Syncing chain…

Testnet wallet

Generate a keypair in your browser, fund it from the faucet, then scan and send. Seed stays on this device.

Testnet wallet

Generate a keypair in your browser, fund it from the public faucet, then scan and send. Seed never leaves this device.

Network pulse

Chain age

23h 27m 43s

since launch 2026-07-14T03:01:02Z

Tip height

Tip id

User transactions

Validators

Mempool

P2P peers / sessions

Last refreshed · via observer proxy

Privacy pulse

Aggregate chain posture only — no addresses, amounts, or ring indices. Every dot below is a decoy candidate; the real spend is indistinguishable.

Ring-16 anonymity set

Which member is the real signer? The chain will not tell you.

Avg ring
16
Avg inputs
≥2
Avg outputs
≥2

Sampling ring shapes…

  • Uniform ring-16

    Every spend hides among 16 ring members — consensus rejects smaller rings.

  • CLSAG only

    Ring signatures without legacy LSAG in production binaries.

  • Stealth outputs

    One-time addresses — no reusable account graph on-chain.

  • Encrypted amounts

    Bulletproof range proofs; values are not transparent like Ethereum.

  • View tags (v2)

    ~256× faster wallet scan without revealing balances publicly.

  • MFER endowment proofs

    Upload surplus range proofs bind permanence pricing without opening amounts.

MFER range proofsMFEO openingsTx v2 view tagsenforced

Verifiability & permanence

Public economics and integrity signals — treasury totals, checkpoint digests, and storage anchors. Nothing here deanonymizes wallet users.

Treasury

Protocol-owned pool (fees + subsidies)

Fee → treasury

User fee share credited on-chain

Subsidy → treasury

Block subsidy tail split

Storage anchors

Permanence commitments on-chain

Mempool pending

Awaiting inclusion — ids only, no graph

Fraud contests

P2P-verified invalid-block challenges

P2P diversity

Distinct IPv4 /16 prefixes (observer mesh health)

Quorum stake

BFT finality threshold

Min replication

SPoRA permanence floor

Network identity

Pin these values. Genesis JSON must be byte-identical to upstream mfn-node/testdata/public_devnet_v1.json.

network_id
public-devnet-v1
genesis_id
454fa5d4a9bd6f59e35cf9ea7e68c096c9a271a92b2ec5931184e7f34a42a005

Public boot peers

Validator mesh P2P listen addresses only. Do not open HTTP to these ports. There is no published community read-RPC by default.

  • 5.161.201.73:19001
  • 5.161.201.73:19002
  • 5.161.201.73:19003

How to participate

Static join path — works with zero backend. mfnd JSON-RPC is newline-delimited TCP; browsers need an HTTP proxy for live stats only.

Role 1 — Observer

Minimum join

Build and sync an observer. Seed nodes auto-dial from the manifest beside genesis; optional explicit dials below.

git clone https://github.com/shanecloonan/permawrite.git
cd permawrite
cargo build -p mfn-node --release --bin mfnd
cargo build -p mfn-cli --release --bin mfn-cli
mfnd --data-dir ./observer-data \
  --genesis mfn-node/testdata/public_devnet_v1.json \
  --store fs \
  --rpc-listen 127.0.0.1:18734 \
  --p2p-listen 127.0.0.1:0 \
  serve

# optional: --p2p-dial 5.161.201.73:19001 # optional: --p2p-dial 5.161.201.73:19002 # optional: --p2p-dial 5.161.201.73:19003

mfn-cli --rpc 127.0.0.1:18734 status
mfn-cli --rpc 127.0.0.1:18734 tip

Expect matching genesis_id and rising tip_height.

Role 2 — Wallet user

Browser or CLI

Prefer the testnet wallet at the top for faucet / balance / send. Or use the CLI against a local observer — keep the seed / wallet JSON private forever.

mfn-cli --rpc 127.0.0.1:18734 --wallet ./alice.json wallet new
mfn-cli --rpc 127.0.0.1:18734 --wallet ./alice.json wallet address
mfn-cli --rpc 127.0.0.1:18734 --wallet ./alice.json wallet scan
mfn-cli --rpc 127.0.0.1:18734 --wallet ./alice.json wallet balance
mfn-cli --rpc 127.0.0.1:18734 --wallet ./alice.json wallet upload ./sample.txt --json

Role 3 — Storage operator

Optional

Build mfn-storage-operator; point it at a synced local observer RPC. No validator keys required. Details in upstream OPERATORS.md.

Never share

  • Validator VRF/BLS seeds
  • Wallet JSON / restore seeds
  • Public RPC URLs on validators
  • Operator API keys

Privacy absolutism — lite explorer

Ring signatures, stealth outputs, and encrypted amounts mean this is not a transparent ledger. This page shows chain-wide pulse only: tip cadence, aggregate tx shapes, treasury, permanence anchors, and checkpoint digests. It never surfaces balances by address, ring indices, or decrypted amounts.

  • Ring-size histograms from tx wire shape
  • MFER / MFEO policy flags from chain params
  • Storage commitment hashes & bucket sizes
  • No account graph · no amount transparency

Docs & help