Shared genesis configuration and contract artifacts for PsyProtocol projects.
config.json— Canonical Psy stages (localhost, testnet, mainnet)genesis_contracts.json— Zstd-compressed pre-deployed genesis contract definitions (exact size and SHA-256 are in.genesis_contracts.compiler-artifact.json)genesis_abi/— Canonical sidecar ABIs andabi_list.jsonfor the six predeployed contracts
This repo is intended to be consumed as a git submodule:
git submodule add git@github.com:PsyProtocol/psy-genesis.gitReferenced by: psy-node, psy-wallet, psy-sdk
Compiler: bb79f3ff335d36560b8b6eae880c8404d662d27c.
Consumed Node source: 769711acfe3ba23dc0124f961ff361478e52b89b.
The Node VM now hashes complete symbolic expressions using the one-shot XXH3 API. The previous streaming implementation in twox-hash 1.6.3 could read an uninitialized buffer tail, making repeated withdrawal compilation nondeterministic.
Regenerate from the clean, pinned compiler checkout with PSY_NETWORK=testnet make gen-deploy-json; set PSY_GENESIS to this checkout and PSY_CONFIG_PATH
to its config.json when using a non-default directory layout. The compiler's
scripts/check-withdrawal-determinism.sh compares three independent compilations.
Only contract 3 (withdrawal tree) changes relative to the preceding artifact: its code definition, code root and function whitelist. Contracts 0, 1, 2, 4 and 5, tree heights, ABI files, token artifacts and configuration are unchanged. The provenance sidecar records generated byte hashes and compiler source identity.
This is a fresh-deployment candidate, not a hot replacement for a running chain.
Regenerate and validate all dependent proof artifacts before deployment. Testnet
magic remains 0x1337CF514544CF69; unchanged magic alone does not establish proof
compatibility.