TOKN / field guide

TOKN architecture

TOKN uses Besu 26.8.1 with a pinned image digest, EVM native currency, and QBFT consensus. The chain identifier is 2026090601; the currency name and symbol are both TOKN, with 18 decimal places. The genesis configuration has zero base fee, a five-second target block period, 30,000 block epochs, a 20-second QBFT request timeout, and no block reward.

The compose stack contains these services:

ServiceRoleExposure
nodeBesu validator, full sync mode, static peer listHTTP RPC bound to loopback port 18545
gatewayRead RPC and raw-transaction relay, plus selected public filesHTTP bound to loopback port 18080
torPersistent onion service for gateway accessconfigured by docker/tor/torrc
botsyncSync runtime for the explicit public releasedata under the project only
toolboxOne-shot Node.js tooling containerno long-running service

The gateway exposes a small allowlist of Ethereum, Net, Web3, and QBFT read methods plus eth_sendRawTransaction. It never receives signing keys. The client signs locally and submits a raw transaction through /rpc. /health reports chain ID, latest height, block hash, block age, and the current single-validator bootstrap stage.

contracts/WorkVault.sol is an owner-curated native-coin vault. A reward is bound to a nonzero receipt ID and a GPB identity hash. The first wallet bound to an identity becomes permanent; later rewards must use that wallet. A receipt can be paid only once. The contract enforces 10,000 TOKN per reward, 100,000 TOKN per UTC day, and 1,000,000 TOKN per identity. The bootstrap flag remains open until 50 contributors or 90 days; it is an event annotation and does not create free accounts or node rewards.

The model intentionally separates concerns: QBFT orders transactions, the curator evaluates useful work, and the vault enforces accounting constraints. Consensus cannot prove task quality, personhood, or that a GPB identity has one human/operator.

Trust boundaries

The initial validator, curator, genesis creation, and treasury are controlled by one operator. A second container or replica controlled by the same operator does not constitute independent decentralization. Future operators must use a distinct validator key, verify the exact genesis, and synchronize over the onion peer path before they are counted as independent.