Chapter 20: Appendix

Reference material from across the book in one place: the glossary, the constants tables, the discriminator registry, the JSON-RPC method index, and the post-mainnet roadmap.


A. Glossary

TermDefinition
PydeThe post-quantum L1 blockchain. Name of the protocol, the network, and the binary.
PYDEThe native token. 1 PYDE = 10^9 quanta.
otigenPyde's developer toolchain (the binary). Scaffolds projects, builds WASM artifacts, deploys, manages wallets. Name carried forward from the retired Otigen language.
WASMWebAssembly. Pyde's execution layer; smart contracts and parachains compile to WASM and execute under wasmtime.
wasmtimeThe WebAssembly runtime used by Pyde. Bytecode Alliance project, production-vetted at Microsoft / Fastly / Shopify.
Host Function ABIThe stable interface contracts use to interact with chain state (sload, sstore, transfer, threshold crypto, hashing, cross_call, etc.). See the Host Function ABI spec.
CraneliftThe code generator used by wasmtime for ahead-of-time WASM-to-native compilation.
Otigen (retired)Was Pyde's domain-specific smart-contract language. Retired in the WASM pivot; see The Pivot preface. The Otigen Book is preserved as a historical artifact.
JMTJellyfish Merkle Tree. The state commitment structure (radix-16, path-compressed).
Blake3Fast bitwise hash. Used for JMT internals, batch hashes, vertex hashes, gossip de-dup.
Poseidon2Algebraic hash over the Goldilocks field. State root commit, addresses, MAC, VRF, ZK-bearing paths.
FALCON-512NIST FIPS 206 post-quantum signature scheme. ~666-byte sigs, 897-byte pks.
Kyber-768NIST FIPS 203 post-quantum KEM. P2P session keys and threshold mempool.
Threshold encryptionMempool encryption such that any 85 of 128 committee members combine to decrypt.
PSSProactive Secret Sharing — refresh key shares without changing the public key.
DKGDistributed Key Generation. Pedersen DKG ceremony each epoch for threshold pubkey.
VRFVerifiable Random Function. Lattice-based; built from FALCON + Poseidon2.
MysticetiThe DAG-based consensus protocol Pyde uses (post-May-2026 pivot, formerly HotStuff).
DAGDirected Acyclic Graph. Every round, each committee member produces a vertex; parents must be strictly prior rounds.
VertexA committee member's per-round output: batch refs + parent refs + state-root sigs + decryption shares + FALCON sig.
RoundA ~150 ms DAG cycle. Each member produces one vertex per round.
WaveThe Mysticeti commit unit. Anchor at round R+3 commits the subdag rooted at round R.
AnchorDeterministically-selected committee member whose round-R vertex commits the wave. Hash(beacon, round, recent_state_root) mod 128.
Worker / PrimaryNarwhal pattern: workers gossip tx batches, primary produces vertices and runs consensus.
HardFinalityCert≥ 85 FALCON sigs over (wave_id, blake3_state_root, poseidon2_state_root).
CommitteeThe 128 active validators per epoch. Equal vote weight; uniform random selection.
Epoch~3 hours of waves. PSS resharing fires at epoch boundary.
ValidatorNode staking ≥ MIN_VALIDATOR_STAKE (10,000 PYDE). Single tier — uniform-random committee selection picks 128 from the eligible pool each epoch.
Full nodeNode that executes waves and serves RPC, but does not stake.
MEVMaximal Extractable Value. The MEV class is structurally closed in Pyde.
Encrypted mempoolOptional Kyber-encrypted submission. Decryption deferred until after DAG anchor commit.
Commit-before-revealDAG anchor commits canonical ordering before threshold-decryption shares are released.
Hybrid schedulerExecution model: static access lists (Solana-style) + Block-STM speculation (Aptos-style).
Sentry nodePublic-facing proxy in front of a committee validator. Hides validator's real IP.
TreasuryThe system account at Poseidon2("pyde-treasury"). Spent via on-chain multisig.
PIPPyde Improvement Proposal. Off-chain documents that drive code changes.
Multisig signersThe on-chain set authorized to spend the treasury (MULTISIG_SIGNERS).
Emergency pauseMultisig-authorized halt of non-Resume txs; max 30 days, auto-expiring.
Hard haltAutomatic chain halt on detected safety violation (state root divergence, equivocation cluster).
Weak-subjectivity checkpointHard-finalized commit (wave_id + state_root + committee FALCON sigs) that a fresh node trusts to anchor sync.
QuantaSmallest PYDE denomination. 1 PYDE = 10^9 quanta.
Access listPer-tx declaration of state slots the tx will read or write.
Nonce window16-slot bitmap of in-flight nonces per account.
Gas tankPer-account dedicated balance for sponsoring user transactions.
PaymasterA contract that pays gas on behalf of a user, with custom validation logic.
Parachain operatorPermissionless v2 actor who stakes PYDE, fulfills cross_call! to other chains, earns gas fees.

B. Network Constants

ConstantValueWhere
ROUND_PERIOD_MS150 (DAG round cadence)consensus/round.rs
COMMIT_TARGET_MS500 (median commit)consensus/commit.rs
EPOCH_LENGTH~3 hours of wavesconsensus/epoch.rs
COMMITTEE_SIZE (mainnet)128consensus/committee.rs
THRESHOLD (2f+1)85consensus/quorum.rs
EQUIVOCATION_THRESHOLD (n-2f)44consensus/quorum.rs
RANDOMNESS_THRESHOLD85 (sorted before combine)consensus/epoch_randomness.rs
RESHARE_AGGREGATION_DELAY_WAVES5crypto/threshold.rs / validator
MIN_VALIDATOR_STAKE10,000 PYDEtx/pipeline.rs (single tier)
MAX_VALIDATORS_PER_OPERATOR3tx/pipeline.rs (anti-Sybil cap)
UNBONDING_PERIOD30 daysconsensus/validator.rs
FINDER_FEE_PERCENT10slashing/lib.rs
EVIDENCE_VERSION1slashing/lib.rs
MULTISIG_VERSION0x01tx/multisig.rs
MAX_MULTISIG_SIGNERS16tx/multisig.rs
MAX_PAUSE_DURATION_WAVES~30 days of wavestx/pipeline.rs
MAX_BATCH_SIZE4 MBmempool/batch.rs

C. Gas / Fee Constants

ConstantValueWhere
GAS_TARGET400,000,000tx/fee.rs
GAS_CEILING1,600,000,000 (4× target)tx/fee.rs
GENESIS_BASE_FEE50,000,000,000 quantatx/fee.rs
MIN_BASE_FEE1tx/fee.rs
ADJUSTMENT_DIVISOR8 (1/8 = 12.5% per block)tx/fee.rs
FEE_BURN_PCT70tx/execution.rs
FEE_REWARD_POOL_PCT20tx/execution.rs
FEE_TREASURY_PCT10tx/execution.rs
MIN_GAS_LIMIT21,000tx/validation.rs
MAX_TX_SIZE128 KBtx/validation.rs
MAX_CALLDATA64 KBtx/validation.rs
WAVES_PER_YEAR63,113,904 (2/sec)tx/fee.rs
INFLATION_BPS[500, 300, 200, 100]tx/fee.rs
GENESIS_SUPPLY10^18 quanta (1B PYDE)tx/fee.rs

D. Mempool Constants

ConstantValueWhere
DEFAULT_MAX_TX_PER_WINDOW_PER_SENDER10mempool/pool.rs
DEFAULT_MAX_CONCURRENT_PER_SENDER100mempool/pool.rs
RATE_WINDOW_MS1000mempool/pool.rs
WINDOW_SIZE (nonce bitmap)16account/nonce.rs
MAX_RECEIPT_SLOTS10,000node/receipt_store.rs

E. WASM Execution Constants

ConstantValueMeaning
Initial linear memory1 MBDefault WASM linear memory per instantiation
Max linear memory64 MBCapped by the engine to bound resource use
Stack depth limitConfigurablewasmtime-enforced; rejects modules exceeding cap
PAGE_ALLOC_GAS200 fuel/64KBFuel per WASM memory.grow page
Default fuel per gas unit(calibrated)Established at node startup from the gas table
MODULE_CACHE_MAX_BYTES1 GB (default)LRU + size-cap + TTL on compiled Module + parsed ABI; per-node tunable. See HOST_FN_ABI_SPEC §3.6
MODULE_CACHE_TTL_WAVES8 epochs (~1 day)Cache entries unused longer than this are evicted
VIEW_FUEL_CAP10,000,000Per-call wasmtime fuel cap for cross_call_static views (≈ 3 ms commodity). View calls are free; this bounds wall-clock.

Note: PVM-era constants (4 MB address space, 16+8 register file, 62 opcodes) are retired. WASM's instruction set is the WebAssembly Core Specification; the host-function ABI is defined in companion/HOST_FN_ABI_SPEC.md.

F. Network / Discovery Constants

ConstantDefaultWhere
DEFAULT_PORT30303net/config.rs
DEFAULT_MAX_PEERS50net/config.rs
DEFAULT_MAX_INBOUND30net/config.rs
DEFAULT_MAX_OUTBOUND20net/config.rs
DEFAULT_RATE_LIMIT_PER_IP5 / secnet/config.rs
DEFAULT_IDLE_TIMEOUT60 snet/config.rs
Gossipsub mesh_n8net/node.rs
Gossipsub heartbeat150 ms (DAG round)net/node.rs
MAINNET_SEEDS(set at launch)net/discovery.rs
TESTNET_SEEDS(set at launch)net/discovery.rs
MAINNET_DNS_SEEDseed.pyde.networknet/discovery.rs

G. State Discriminators

Used in Poseidon2(addr || discriminator || sub_key) for storage keys. Defined in crates/state/src/keys.rs.

DiscriminatorNameHolds
0x12SUPPLYTotal PYDE supply counter
0x13TOTAL_BURNEDCumulative fee burn counter
0x14REWARDS_PER_STAKE_UNITLazy-accrual per-stake-unit reward accumulator
0x15ACTIVE_STAKE_WEIGHTED_TOTALPool divisor (sum of stake × uptime; excludes exited / slashed)
0x16VESTINGPer-account vesting schedule (40 bytes)
0x17VALIDATOR_SUBSIDY(total_amount, end_wave) streaming subsidy
0x18AIRDROP_ROOTGenesis airdrop Merkle root
0x19AIRDROP_DEADLINEwave_id after which sweep is allowed
0x1AAIRDROP_CLAIMEDPer-leaf-index claim bitmap
0x1BAIRDROP_EXPECTED_SUMGenesis pool size invariant
0x1CMULTISIG_SIGNERSTreasury multisig signer set (FALCON pks)
0x1DMULTISIG_THRESHOLDRequired signature count
0x1EMULTISIG_NONCEReplay-protection counter for multisig
0x1FEMERGENCY_PAUSE_END_WAVEEnd wave_id of an active emergency pause

H. Transaction Type Registry

Defined in crates/tx/src/types.rs.

Tag 2 is intentionally vacant — Batch was prototyped pre-mainnet and removed before launch (see Chapter 11 §11.9). A forged tx_type = 2 fails decode.

IDNamePurpose
0StandardValue transfer or contract call
1DeployContract deployment
3StakeDepositLock ≥ 10,000 PYDE and register validator (single tier, uniform-random committee selection per epoch)
4StakeWithdrawBegin 30-day unbonding
5SlashSubmit double-sign evidence
6ClaimRewardClaim accrued staking yield from the pool
7ClaimAirdropClaim genesis airdrop with Merkle proof
8SweepAirdropMove unclaimed airdrop residue to treasury (post-deadline)
9MultisigTxTreasury spend with multisig signatures
10RotateMultisigRotate multisig signer set + threshold
11EmergencyPauseHalt block production (multisig-signed)
12EmergencyResumeResume normal processing
13RegisterPubkeyFirst-time pubkey binding for a funded-but-unregistered account (no sig, no gas; proof is address-derivation)

I. WASM Host Function Surface (Summary)

Pyde's execution layer is WebAssembly. The WASM instruction set itself is the WebAssembly Core Specification — defined and maintained externally, not by Pyde. What Pyde defines is the Host Function ABI: the chain-side surface that contracts call to interact with state, accounts, crypto, events, and other chain primitives.

The full Host Function ABI specification (signatures, memory layout conventions, gas cost table, versioning rules, parachain-extension allowlist, forbidden imports) lives at companion/HOST_FN_ABI_SPEC.md. The high-level surface, organized by category:

Storage

sload, sstore, sdelete

Balances and transfers

balance, transfer

Execution context

caller, origin, block_height, wave_id, block_timestamp, chain_id

Events

emit_event

Hashing primitives

keccak256, blake3, poseidon2

Post-quantum cryptography

threshold_encrypt, threshold_decrypt_share, falcon_verify

Cross-contract / cross-parachain

cross_call

Gas accounting

consume_gas

Parachain-extension host functions (parachain-only)

send_xparachain_message, get_committee_info, additional governance hooks (full list in the Host Function ABI spec).

Forbidden imports (enforced at deploy)

Network calls, filesystem access, system clock, non-deterministic entropy, WASM threads, non-deterministic SIMD.

The deploy-time validator rejects any WASM module whose import section references functions outside this allowlist.


J. JSON-RPC Method Index

Full reference in Chapter 17. The methods, prefixed pyde_:

MethodReturns
pyde_getBalancebalance (quanta string)
pyde_getTransactionCountnonce (u64)
pyde_getCodehex bytecode
pyde_getStorageAthex value
pyde_chainIdhex chain_id
pyde_blockNumberhex head wave_id
pyde_gasPricebase fee (quanta)
pyde_stateRootcurrent state root
pyde_syncingsync status object
pyde_getValidatorsvalidators with status + stake
pyde_getBlockByNumberBlockHeader
pyde_getBlockByHashBlockHeader
pyde_getTransactionReceiptreceipt with logs + fee breakdown
pyde_getLogsmatching logs
pyde_mempoolSizepending tx count
pyde_sendRawTransactiontx hash
pyde_sendTransaction(dev only) tx hash
pyde_sendEncryptedTransactiontx hash
pyde_callview-function return data (FREE off-chain)
pyde_estimateGasgas estimate
pyde_createAccessListinferred access list
pyde_getHardFinalityCertcommittee-signed cert for a wave (incl. state_root + events_root + events_bloom)
pyde_getSnapshotManifestsnapshot manifest for state sync
pyde_resolveNamename → address registry lookup

WebSocket subscriptions (via pyde_subscribe({method, ...})): newHeads (wave commits), accountChanges, logs (events with AND+OR topic / contract filter; at-least-once delivery with cursor for dedup). pyde_resubscribe({from: cursor}) resumes a logs stream after disconnect. Full mechanics: HOST_FN_ABI_SPEC §15.5.


K. Cryptographic Primitives Summary

PurposePrimitiveSizes
Digital signaturesFALCON-512 (NIST FIPS 206)pk 897 B, sk 1281 B, sig ~666 B
Key encapsulationKyber-768 / ML-KEM (FIPS 203)pk 1184 B, sk seed 64 B, ct 1088 B
High-volume hashingBlake3256-bit output, ~3 GB/s native
ZK-bearing hashingPoseidon2 over Goldilocks256-bit output, ~400 constraints/hash
Threshold encryptionShamir SSS + Kyber + Poseidon285-of-128, ~250 B per share
PSS resharingLagrange interpolation over Goldilockspreserves underlying secret
DKGPedersen DKG over Kyber-768per-epoch threshold pubkey
VRFFALCON-proof + Poseidon2 outputinherits FALCON security
Symmetric AEADAES-256-GCM (hardware-accelerated)32-byte key, 16-byte tag
AddressPoseidon2(falcon_pubkey)32 bytes

No elliptic curves anywhere in the protocol.


L. Post-Mainnet Roadmap

Items explicitly out of scope for the launch network, with the rough priority each is tracked at:

ItemPriorityNotes
Persistent receipt store (archive-node mode)HighTask 058. Needed for production explorers.
ML-KEM upgrade from 0.3.0-rc to stableHighTask 057. Once NIST stable releases.
Algebraic batch FALCON verificationHighPer-block verification cost reduction.
Signed-mempool commitments + censorship slashingHighReplaces local-view mandatory inclusion.
Pedersen / KZG commitments for PSS resharingHighCloses the malicious-contributor edge case.
Graceful drain-and-shutdown on persist failureMediumTask 014e. Operational polish.
Two-dimensional gas (exec + prove)MediumDepends on ZK proving landing.
Off-chain Merkle builder CLI for airdrop opsMediumOperator tooling, ~150 LOC.
Mempool-level filter during emergency pauseLowCleaner than gate-check at admission.
Sentry-node validator hidingLowOperational pattern, not protocol.
Sophisticated peer scoringMediumMulti-topic + decay parameters.
Fancy version-signaling on-chainLowCurrently out-of-band.
ZK validity proofs (STARK proving)ResearchMajor redesign; restores prover economics.
Native Ethereum bridgeHighFALCON-in-EVM verifier + Patricia verifier as a Pyde WASM contract.
Native Bitcoin bridgeMediumSPV-style proofs; PoW finality is probabilistic.
Parachain SDK (Rust / Go / C++)MediumSovereign chains sharing Pyde security.
TypeScript SDKMediumWASM bridge available now; dedicated TS later.
Native browser walletLowEcosystem; WASM exposes primitives.
Block-explorer frontendHighBackend in Phase 7; UI is ecosystem.

The list is the project's tracked future work, not a commitment timeline. Each item moves on PIP merit, audit capacity, and ecosystem demand.


M. Key References in the Codebase

For readers diving into the source. The pre-pivot crates listed below (crypto, state, account, slashing, tx, consensus, networking, mempool, node) live in the pyde-net/archive repository, preserved with full git history. The post-pivot WASM execution layer crate (wasm-exec) is to be implemented in a freshly-cut workspace when the WASM-era engine repo is bootstrapped — the row below is forward-looking. Paths are relative to whichever workspace the file ends up in (archive workspace for pre-pivot rows, the future post-pivot workspace for wasm-exec).

SubsystemKey files
Crypto stackcrates/crypto/src/{falcon,kyber,poseidon2,threshold,vrf}.rs
State commitmentcrates/state/src/jmt_store.rs, witness.rs, keys.rs
Account recordcrates/account/src/{types,address,nonce}.rs
Slashing constantscrates/slashing/src/lib.rs
TX types + pipelinecrates/tx/src/{types,validation,pipeline,fee,execution}.rs
Multisig / governancecrates/tx/src/multisig.rs, crates/tx/src/vesting.rs
Airdropcrates/tx/src/airdrop.rs
Consensuscrates/consensus/src/{dag,vertex,wave,anchor,subdag,validator,finality,slashing,epoch_randomness,committee,quorum,round}.rs
Networkingcrates/net/src/{node,channels,auth,peer,ddos,discovery,config}.rs
Mempoolcrates/mempool/src/{pool,block_builder,inclusion,encrypted}.rs
Node binary + RPCcrates/node/src/{main,cli,rpc,validator,consensus_store,receipt_store}.rs
WASM execution layer (to be implemented)wasm-exec/src/{lib,host_fns,module_cache,gas_meter,validate}.rs (post-pivot)
otigen developer toolchainpyde-net/otigen (separate repo): subcommand framework, otigen.toml schema, language detection, state binding generators (Rust/AS/Go/C), deploy flow, wallet
Rust SDKcrates/pyde-rust-sdk/src/{lib,client,wallet,contract,signer,abi,types,ws}.rs
WASM cryptocrates/pyde-crypto-wasm/src/lib.rs

Launch plan, hardening status, and the phased route to mainnet: chapter 19 (Launch Strategy).


N. Where the Numbers Came From

The key headline figures, with their sources:

ClaimSource
~150 ms DAG round periodROUND_PERIOD_MS in consensus/round.rs
~500 ms median commitCOMMIT_TARGET_MS in consensus/commit.rs
v1 plaintext TPS: 10-30KPerformance harness measurement, "claim 1/3 of measured peak" rule (companion/PERFORMANCE_HARNESS.md)
v1 encrypted TPS: 0.5-2KSame harness; threshold-decryption serial cost
70 / 20 / 10 fee splitFEE_BURN_PCT etc in tx/execution.rs
5% → 1% inflation scheduleINFLATION_BPS in tx/fee.rs
10,000 PYDE validator min stakeMIN_VALIDATOR_STAKE in tx/pipeline.rs (single tier)
3 max validators per operatorMAX_VALIDATORS_PER_OPERATOR in tx/pipeline.rs (anti-Sybil)
30-day unbondingUNBONDING_PERIOD in consensus/validator.rs
16-slot nonce windowWINDOW_SIZE in account/nonce.rs
128 KB tx / 64 KB calldata capsMAX_TX_SIZE, MAX_CALLDATA in tx/validation.rs
4 MB batch hard capMAX_BATCH_SIZE in mempool/batch.rs
1 MB witness capMAX_WITNESS_SIZE in state/witness.rs
WASM host function ABI v1.0wasm-exec/src/host_fns.rs (post-pivot) + companion/HOST_FN_ABI_SPEC.md
wasmtime + Cranelift AOTPinned wasmtime version in Cargo.toml
Module cache sizeMODULE_CACHE_SIZE in wasm-exec/src/module_cache.rs (post-pivot)
Committee 128, threshold 85COMMITTEE_SIZE, THRESHOLD in consensus/quorum.rs
85-of-128 threshold for decryptionRANDOMNESS_THRESHOLD (and equivalent for Kyber)

O. License and Contribution

The Pyde codebase is licensed under Apache 2.0 (workspace-wide, in Cargo.toml). Contributions go through the PR process at github.com/zarah-s/.... Substantive protocol changes go through a PIP first (see Chapter 15).

This book is part of the project repository. Corrections and additions are welcomed via PR.


End Notes

Pyde is a sovereign post-quantum L1. Mainnet ships:

  • No elliptic curves — FALCON-512, Kyber-768, Blake3, Poseidon2, lattice VRF.
  • DAG consensus, no proposers — Mysticeti-style; each round every committee member produces a vertex; canonical order is structural.
  • Hybrid execution scheduler — static access lists + Block-STM speculation.
  • Optional threshold encryption — opt in per-tx for MEV protection; plaintext supported at lower cost.
  • No tip mechanism — fees are exactly gas_used × base_fee.
  • No on-chain stake-weighted vote — governance is PIPs + on-chain multisig.
  • No bridge at v1cross_call! macro stable; parachain operator layer ships post-mainnet.
  • Structural MEV protection — commit-before-reveal + DAG ordering + no tips = unexpressible MEV.

Everything that doesn't ship at mainnet is tracked, scoped, and prioritized for post-launch work. Honesty about what's in vs out is the single biggest difference between this book and earlier drafts.

The next thing to read isn't a separate file — it's chapter 19 (Launch Strategy), where the phased work-in-flight to mainnet lives. The Companion Specifications section of this book holds the full technical specs (Whitepaper, Design, Threat Model, Performance Harness, Parachain Design, Brand, and more).