tasknull docs
Home GitHub
/ cli reference

CLI reference

Every command, its options, and a complete walkthrough you can copy-paste. Run tasknull --help any time.

Commands at a glance

CommandWhat it does
tasknull initCreate your local identity (secret + Ed25519 keys).
tasknull whoamiPrint your public Solana address.
tasknull commitPublish a hiding commitment for a solution.
tasknull proveEmit a signed proof + one-way nullifier.
tasknull verifyVerify a proof JSON.
tasknull claimSettle a proof — burns the nullifier.
tasknull spentList nullifiers spent on this machine.

tasknull init

Creates your identity in ~/.tasknull/identity.json. Use --force to overwrite an existing one.

$ tasknull init
✓ identity created  → ~/.tasknull/identity.json

tasknull whoami

Prints your shareable Solana address.

$ tasknull whoami

tasknull commit

Binds a solution file to a bounty and prints the commitment.

OptionRequiredDescription
--bounty <id>yesBounty identifier.
--file <path>yesPath to your solution.
$ tasknull commit --bounty zk-audit-114 --file solution.txt

tasknull prove

Generates a signed completion proof with a one-way nullifier.

OptionRequiredDescription
--bounty <id>yesBounty identifier.
--file <path>yesPath to your solution.
--to <SOL_ADDRESS>yesFresh payout address (Solana base58, 32-44 chars).
--out <path>noWrite the proof JSON to a file (default: stdout).
--scope <text>noOptional scope label, included in the signed payload.
--reward <text>noOptional reward label, included in the signed payload.
$ tasknull prove --bounty zk-audit-114 --file solution.txt \
    --to 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU --out proof.json

tasknull verify

Checks a proof and exits 0 if valid, 1 otherwise. Runs four checks: bounty membership / commitment, signature integrity, nullifier unspent, and scope & reward match.

$ tasknull verify proof.json

tasknull claim

Verifies the proof, then burns the nullifier by recording it locally. A second claim of the same work fails.

$ tasknull claim proof.json
Settlement is local in v0.1 — the nullifier is written to ~/.tasknull/spent.json. On-chain settlement on Solana ships with the $TNULL program.

tasknull spent

Lists the nullifiers burned on this machine.

$ tasknull spent

Full walkthrough

Copy-paste this end to end to see the whole lifecycle, including double-claim rejection.

# 1. create your identity
$ tasknull init

# 2. write a solution (anything — code, a writeup, a patch)
$ echo "my fix for the reentrancy bug" > solution.txt

# 3. prove completion, payable to a fresh address
$ tasknull prove --bounty zk-audit-114 --file solution.txt \
    --to 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU --out proof.json

# 4. anyone can verify it
$ tasknull verify proof.json        # → ✓ VALID

# 5. settle — burns the nullifier
$ tasknull claim proof.json         # → ✓ settled

# 6. try to claim the same work again
$ tasknull claim proof.json         # → ✗ rejected (nullifier already spent)