ZYCORD docs
English
Zycord Source code

Source code

One repository, under the MIT licence: the node, the wallet, the command line, the parameter sets and the golden vectors that define the protocol. Everything the network runs on is in it.

Nothing on this site is worth more than what you can check without asking anybody, and this is where the checking starts. An anonymous author cannot offer you a reputation; what is on offer instead is a tree you can read, build, and compare against the binaries you were handed.

Clone it#

git clone https://gitlab.com/zycord-group/zycord-node.git
cd zycord-node

Or read it in the browser first: gitlab.com/zycord-group/zycord-node.

This is the only repository

The canonical locations of this project — this one included — are pinned in the signed attestation in the announcement thread, under the project key E724 39CE DD85 11F9 D607 550B 87FD 60D5 EB4A 0B29. A tree hosted anywhere else is a copy: it may be honest, it may be stale, it may be hostile, and nothing on this page can tell you which. Check the signed list before you trust a mirror, and build from a tag whose hash you verified yourself.

What is in it#

DirectoryWhat it holds
spec/The protocol. The parameter sets, the golden vectors and the pre-deployed library images. An implementation that passes the vectors is a peer, not a fork.
core/Consensus-critical code, standard library only: the cell model, stateless validity, the fold, the certificate-adapted EVM, and RandomX behind a build tag.
node/The node around that core — storage, mempool, miner, peer layer, sync, read-only RPC, Stratum.
wallet/Key management and certificate builders. A reference, not consensus.
cmd/zycordd, the node; zcd, the command line and wallet.
sim/The simulator and the fuzz harnesses, a second deliberately naive fold fuzzed against the real one, and the chaos soak that runs real nodes over real sockets.
contracts/The reference contracts, in Solidity.
packaging/The install script and the platform packages, reviewable before you run them.
docs/The architecture, the protocol reference, the operating guide and the whitepaper.

The protocol is the vectors#

The Go code in this tree is a reference implementation, and deliberately not the definition. What defines the network is the parameter sets and the golden vectors: every fold, block and validity rule as a (pre-state, block) → (post-state, fees) case, positive and negative. Write your own node in whatever language you like — if it passes the corpus it is a peer, and this implementation has no standing over it.

The activation heights live in the same place. h1_bond and h1_vm are parameters frozen at genesis rather than a release: the machine is compiled into every binary and refused below its height, so an era arrives because the chain reached a number and never because operators were asked to upgrade.

Build it#

make build           # no cgo, reproducible, development engine only
make build-randomx   # the network binary: mainnet and the public testnet

Only the RandomX build can join a network. The default build is byte-for-byte reproducible and runs a local devnet; the two write different files on purpose, so a binary that cannot speak to mainnet is never mistaken for one that can. The Go toolchain is pinned to go1.26.2 and the build refuses to run under anything else, because the same source compiled by two Go releases is two different binaries.

Rebuilding a published tag and comparing hashes is the check that replaces trusting the publisher — Verifying a download has the full procedure, and Installation covers building it for ordinary use.

Issues and security#

Bugs, questions and patches go to the issue tracker, and CONTRIBUTING.md says what a change needs before it can be merged.

A vulnerability goes to the disclosure process in SECURITY.md rather than to the tracker. The project would rather have the report than the benefit of the doubt, and a defect found before mainnet costs nobody anything.

Licence#

MIT, for the whole tree. Fork it, ship it, sell it, rename it — the licence asks for a copyright notice and nothing else. The one thing it cannot hand you is the network: that is decided by the nodes that accept your blocks, and they accept them by the rules in spec/.