Scheduled proof-of-golf

Short programs. Daily slots.

Solve the puzzle. Golf quality scores 1–9 points; strictly taller valid branches win. No nonce grinding.

A hobby chain built in Sigil. Not settlement-grade security.

Proof-of-golf flow: derive a puzzle, verify a program at or below par, then submit a zero-nonce block when its exact slot is due

How it works

A daily slot for a short program.

Every node derives the same input/output examples and syntactic constraint. Models and synthesis scripts search for short programs. The generated par witness is a valid fallback; block production does not require hash search.

01

Derive

The parent hash, height and complexity deterministically produce the puzzle.

02

Synthesize

Models, scripts and humans search the frozen puzzle language for a short function.

03

Verify

Nodes rerun the program under fixed fuel, memory, string and depth caps.

04

Submit

When the next exact slot is due, build and submit one complete block with nonce and coinbase locktime set to zero.

Fundamentals

Small programs. Fixed rules.

One compact chain. Every headline number comes from the protocol, not a market feed.

Layered consensus

Longest height. Release checkpoints.

Bounded evaluation establishes a program's validity and byte length. Golf score displays competition quality only: it neither selects canonical branches nor currently alters subsidy.

01

Bitcoin foundation

80-byte headers, transactions, UTXOs, script, P2WPKH, headers-first sync and block relay.

02

Frozen puzzle machine

A small Scheme subset with no I/O, mutation, floating point or host eval; one bounded machine checks every example.

03

Scheduled proof-of-golf

Version commits producer length and puzzle complexity. Bits stays fixed for header compatibility. Nonce and coinbase locktime are zero; non-genesis graffiti is empty.

04

Puzzle-complexity retarget

Every 16 blocks, median golf margin moves puzzle complexity C. Mainnet slots stay exactly 86400 seconds apart; no hash difficulty is searched or retargeted.

05

Co-op commit–reveal

Producers require L ≤ par; up to 8 signed personalized shares require L < personalized par and split a 10% contribution pool.

A valid height-two branch beats height one regardless of golf score; equal height keeps the durable active incumbent, and hardcoded release checkpoints bound reorgs
Switch only to a strictly taller valid branch that matches release checkpoints. Equal height retains the durable active incumbent. Mainnet pins H0 and H1 on the replacement slogan chain; public testnet and regtest remain H0-only.
Header and golf score

Version uses prefix 0x20600000 under mask 0xffe00000, with L−1 in bits 20..12 and C in bits 11..0. Valid producer programs satisfy L ≤ par. Savings are min(8, max(0, par − L)); block score is 1 + savings, from 1 through 9. Genesis contributes zero. The 80-byte header keeps fixed per-network bits and nonce zero; non-genesis coinbase locktime is zero, graffiti is empty, and transaction version and sequence remain canonical. There is no hash admission target.

Fork choice

A valid candidate branch must be strictly taller to replace the active chain. Equal height retains the durable active incumbent, including after restart; golf score, hash and arrival metadata never displace it. Chain configs publish hardcoded (height . internal-hash) checkpoints: incompatible branches cannot cross them. Checkpoints advance only in reviewed software releases, and nodes must upgrade to share newer checkpoints. Mainnet currently pins H0 and H1 on the replacement slogan chain; public testnet and regtest remain H0-only, protecting genesis but no later history. Reorgs remain possible above H1 on mainnet and above H0 on testnet and regtest.

Exact slots and puzzle retarget

Header time must equal parent time plus the configured spacing: exactly 86400 seconds on mainnet, shorter on test networks. No network allows a future slot. Missed slots can be filled late, so this is not a guarantee of daily block arrival. Every 16 blocks, median relative golf margin adjusts C, changing grammar width, examples and constraint tier. Bits and validator caps never move.

Payout and issuance

Solo pays floor(4S/5)+fees and leaves the reserve unminted. With shares, canonical outputs divide floor(S/10) by verified contributions 1–4, pay the parent floor(S/20), retain zero-value required outputs, and send fees and integer residuals to the producer.

Limits, plainly

A hobby chain, not financial settlement.

Valid equal-height branches are cheap to construct and can remain local to different nodes. A missed slot gives a rival an opportunity to become strictly taller; partitions can leave competing incumbents. Reorgs remain possible above the latest release checkpoint: H1 on mainnet, H0 on testnet and regtest. Fixing nonce and coinbase fields does not prevent parent-template manipulation through remaining valid block choices. There is no settlement-grade security.

The earlier nonce-PoW genesis was retired before height 1 because sustained compute burn contradicted the project's intent. Archive that retired state; never reuse its database. The authorized mainnet reset restores the exact genesis quote Sigil - Practical Symbolic Power at unchanged timestamp 1789228800. The mistaken marker-quote mainnet H0/H1 and its H1 checkpoint are abandoned; archive their chain and relay state and start fresh. Mainnet transport magic is SGM4 (last byte 0x34). Testnet and regtest retain their genesis identities, timestamps and SGT3/SGR3 magic (last byte 0x33); only their existing proof-of-golf H0 state may be reused.

Mainnet H0 internal hash: d15ecce0c8a3e4dc07c8136eb68770c2e59683cbad4bd268c420ec24ae040d3a. Reversed display ID: 3a0d04ae24ec20c468d24badcb8396e5c27087b66e13c807dce4a3c8e0cc5ed1.

The replacement slogan-chain H1 is produced and pinned. H1 internal hash: ec3ef647e87a3b54e832b10f0788e2494ac7934096b7357576b263504281637d. Reversed display ID: 7d6381425063b2767535b7964093c74a49e288070fb132e8543b7ae847f63eec.

SGL is intended to have no monetary value. There is no sale, bridge or promise of future value. Commit–reveal binds contributions and payouts, not finality. Checkpoints are hardcoded release policy, not automatic or signed finality.

Ecosystem

Inspect every layer.

The language, implementation, protocol documents and chain view stay open and directly linked.

Sigil language, SigilCoin source, consensus, explorer and community ecosystem

Get started

Download. Run a node or contribute.

Use the CLI as a full node, wallet and scheduled producer, or contribute to the public testnet pool without running a node. Read each command before running it.

1

Download

Published builds appear on Releases. If none matches your system, build the source with the repository's pinned Nix environment. Upgrade for the mainnet slogan reset and its reviewed H0 and H1 checkpoints; public testnet and regtest remain H0-only.

2

Create and back up your wallet

Start mainnet with a fresh state directory; do not reuse abandoned marker-quote H0/H1 or retired nonce-PoW databases. Back up state/mainnet-proof-of-golf/wallet/wallet.key before receiving SGL. Losing that file loses access; never share it.

sigilcoin address --chain sigilcoin-main --data-dir ./state/mainnet-proof-of-golf
3

Sync the chain

Use upgraded software to download and validate headers and blocks from the configured public seed; abandoned mainnet peers use incompatible transport magic.

sigilcoin sync --chain sigilcoin-main --data-dir ./state/mainnet-proof-of-golf
4

Solve and submit

Inspect the puzzle and next slot time. Once due, mine builds and submits one candidate using the valid at-par fallback. Pass --solution with your own shorter program to improve displayed golf quality, not fork weight or subsidy.

sigilcoin puzzle --chain sigilcoin-main --data-dir ./state/mainnet-proof-of-golf
sigilcoin mine --chain sigilcoin-main --data-dir ./state/mainnet-proof-of-golf

Contribute without a node

On public testnet, the contributor watcher derives your personalized puzzle and requires a solution strictly below its personalized par. It keeps your wallet key local; your blind and source remain local until your commitment appears in a canonical block, then submits the signed reveal.

sigilcoin contribute --relay https://pool.testnet.sigilcoin.lol --testnet --data-dir ./state/testnet-contributor-proof-of-golf

Keep the watcher running through the following block, or resume it from the saved commitment. If included, the reward is a direct coinbase payout to your wallet and becomes spendable in the block after it is paid. Inclusion is not guaranteed: the relay or producer can delay, omit or censor work, but cannot redirect a valid signed payout.

View current pool context ↗

Compact LLM prompt

Write the shortest valid SigilCoin puzzle-language one-argument function that reproduces every given input/output pair, obeys the stated syntactic constraint, and fits in 512 source bytes. Return source only.

The next block is a program waiting to be shortened.

See the current puzzle