v3.0 β€’ Testnet
πŸ“„ WHITEPAPER β€’ VERSION 3.0 β€’ OCTOBER 2026

An Open-Source Layer 1 with
Final Blocks and Verifiable State.

Vera Protocol is a blockchain node written in Rust. Validators agree on blocks with Tendermint BFT consensus, so a committed block is final. The state is committed in a BLAKE3 sparse Merkle tree, so balances can be checked with proofs. Smart contracts run on an Ethereum-compatible virtual machine. This document describes what runs on the public testnet today, what was measured, and what is planned.

Read the architecture πŸ“– Documentation Signed releases →
Time to finality
554 ms
Median, public testnet
Throughput
2,886 TPS
Sustained 30 s, median
Active validators
2
Permissioned testnet
Forks in fault tests
0
Crashes, pauses, mixed versions

1. Overview

What VERA Is Today

VERA is a Layer-1 blockchain in its public testnet phase. The node software is open source under the Apache-2.0 license and is published as GPG-signed releases. The testnet runs node version v0.2.9.1 with two active validators in different data centers; validator admission is permissioned (an allowlist) during this phase.

The design goal is a chain that is easy to check: blocks are final on commit, every validator re-executes every block before voting, and any account can be proven against the state root of a block. The node aims to run on modest hardware; one of the two testnet validators runs on a single virtual CPU.

Version 3.0 replaces version 2.0 of this document, which described targets (throughput, finality, validator economics, in-memory execution) that the software does not implement. In this version, every figure is either measured on the public testnet or read from the node source code. Planned mainnet parameters are marked as plans and can change.

2. Architecture

How a Block Is Made and Checked

Consensus: Tendermint BFT

An implementation of the Tendermint algorithm (Buchman, Kwon, Milosevic, arXiv:1807.04938), active since block #152 (node v0.2.6). A block is committed when validators holding more than 2/3 of the stake precommit it, so it is final and is never reorganized.

Rounds and timeouts

The proposer of each round is chosen deterministically from a hash of the height and round, weighted by stake. Timeouts: propose 3 s + 1 s per round, prevote and precommit 1 s + 0.5 s per round. Blocks are produced only when the mempool holds transactions.

Crash safety

Each validator writes its consensus messages to a write-ahead log and syncs it to disk before signing, so a restart cannot make it sign two different blocks at the same height and round.

Authenticated state

Every account is a leaf of a sparse Merkle tree hashed with BLAKE3 (the CSMT). Each block header commits to the state root. The RPC method vera_getProof returns a Merkle proof for an account, which can be checked against that root.

Execution: EVM

Contracts run on revm 43 with the Cancun rules, so Solidity contracts and tools such as MetaMask, Hardhat and ethers work. The block gas limit is 30,000,000 and the minimum gas price is 1 gwei.

Accounts and signatures

Native accounts use Ed25519 keys and 32-byte addresses. EVM accounts use secp256k1 keys and 20-byte addresses, as in Ethereum. Both kinds live in the same state tree.

Block propagation

Proposals of 256 transactions or more are sent in compact form: transaction hashes instead of full transactions. Validators rebuild the block from their own mempool. A 3,000-transfer proposal shrank from about 3.2 MB to about 0.2 MB.

Verifiable execution

Before voting, every validator re-executes the proposed block and compares the state, transaction and receipt roots in its header. A block whose roots do not match gets no vote.

3. Measured Performance

Numbers From the Public Testnet

Measured on the public testnet: two active validators in different data centers, one of them on 1 vCPU. Sustained load was measured on 25 October 2026 with node v0.2.9.1: signed transfers sent for 30 s at a fixed rate, half of them through the public RPC, counted from the first submission to the last block that carried them; median of three runs. Finality and batch throughput were measured on 21 October 2026 with node v0.2.8.1.

TestResult
Sustained, 30 s at 3,000 transfers/s (v0.2.9.1)2,861 to 2,913 TPS, median 2,886 TPS
Sustained, 30 s at 2,500 transfers/s (v0.2.9.1)2,433 to 2,445 TPS, median 2,440 TPS
Sustained, 30 s at 3,500 transfers/s (v0.2.9.1)saturated: latency kept growing
Execute a block of 2,550 transfers, one CPU core (lab)about 60 ms (v0.2.8.1: about 420 ms)
Time to finality, 20 transfers one at a time, idle network (v0.2.8.1)median 554 ms, min 172 ms, max 868 ms
Throughput, batch of 12,800 transfers (v0.2.8.1)895 to 1,030 TPS, median 984 TPS
Node start-up on a copy of a validator's data (497 blocks)0.25 s (v0.2.7: 30.8 s)
Apply a block of 1,500 transfers, 100,000 accounts (lab)46 ms
Fault tests (crashes, pauses, mixed versions)0 forks, 100% of transactions included

These results come from a small network. With more validators, spread over more regions, finality will take longer, because each round needs messages from validators holding 2/3 of the stake. The method and raw data are published with the release notes and on the benchmarks section of the home page.

4. Economics

Fees, Staking and Supply

4.1 Implemented on the testnet

The rules below are in the node source code and apply on the testnet now. Test VERA has no monetary value.

ParameterValue
Fee split70% to the block proposer, 15% to the stability pool, 15% to a burn address (0x…dead) that no one controls
Block rewardsNone. Validators earn only their share of transaction fees.
Cost of a transfer21,000 gas at the 1 gwei minimum = 0.000021 VERA
Minimum validator stake32 VERA
Unbonding period5 blocks
Liveness penaltyAfter 10 missed blocks a validator is jailed and 1% of its stake is slashed into the stability pool
Validator setUp to 50 active validators; admission by allowlist during the testnet
Testnet genesis supply1,174 VERA (2 validators with 32 VERA each, plus 1,110 VERA in 4 accounts)

4.2 Planned for mainnet

Plans, not implemented. The figures below come from TOKENOMICS.md in the repository and may change before a mainnet launch. There is no mainnet and no VERA token on sale.

Allocation (planned cap: 100,000,000 VERA)ShareRelease (planned)
Validator reward pool35%Released as block incentives over 10 years
Ecosystem and grants25%Developer tooling, audits, grants
Core team and contributors20%12-month cliff, then linear monthly over 36 months
Market liquidity10%Initial trading pairs
Community onboarding10%Testnet grants and early developers

The planned mainnet minimum stake is 10,000 VERA. The 70 / 15 / 15 fee split is expected to stay as implemented.

5. Security & Verification

What You Can Check Yourself

Open source

The full node is on GitHub under Apache-2.0. Anyone can build it and compare the result with the published binaries.

Signed releases

Each release ships SHA256SUMS signed with the Vera Core release key (ed25519, fingerprint 37F3 9BD8 9ADE E9EE E554 9C38 8974 19EF F806 BE51). Anyone can verify the binaries before installing them.

Node self-report

A node reports the SHA-256 of the binary it runs. This is self-reported: it helps spot a wrong version, but it is not proof, since a modified node could report any value.

Hardened service

The official systemd unit runs the node as an unprivileged user with a read-only system, no capabilities, no writable-and-executable memory and a system-call filter.

No telemetry

The node sends no usage data. The command-line tool contacts the GitHub releases API to check for updates and the RPC endpoint it is pointed at (the public RPC by default).

Proofs

Account state can be checked with vera_getProof against a block's state root, in your own code; a light-client verifier is on the roadmap.

6. Known Limitations

What Is Missing Today

  • No external security audit of the node has been done yet.
  • Two active validators, admitted by allowlist: the testnet is not yet decentralized.
  • The EVM BLOCKHASH opcode returns 0; contracts must not rely on it for randomness or history.
  • The RPC has no WebSocket subscriptions and no eth_getProof (use vera_getProof).
  • Blocks are executed sequentially; one block's execution must finish before the next is agreed.
  • The public RPC is rate-limited per IP address.

7. Roadmap

Next Steps, Without Dates

  • Asynchronous execution: agree on the order of a block first and execute it while the next block is being agreed; the state root follows one or two blocks later.
  • Parallel execution: run transactions that touch different accounts at the same time on several cores.
  • One state commitment per block: receipts without a per-transaction state root, so the tree is hashed once per block.
  • Light-client verifier: check headers and balances from a phone without trusting a server.
  • More validators: open validator admission beyond the allowlist.
  • Mainnet: only after an external audit and a longer testnet period.

Progress is reported in the release notes.

8. Use Cases

What Runs on the Testnet

EVM applications

Tokens, NFTs and DeFi contracts written in Solidity and deployed with standard tools. See the documentation for Hardhat and MetaMask setup.

On-chain payment demo

The VERA Player asks the viewer's wallet for a 0.1 test VERA transaction before playing a video for 15 minutes. The check happens in the browser; the video file itself is not protected.

Testnet faucet

The faucet sends test VERA to any address, with a daily limit, so anyone can try transfers and contracts.

9. References

Sources