CLI reference
Every command, its options, and a complete walkthrough you can copy-paste. Run tasknull --help any time.
Commands at a glance
| Command | What it does |
|---|---|
tasknull init | Create your local identity (secret + Ed25519 keys). |
tasknull whoami | Print your public Solana address. |
tasknull commit | Publish a hiding commitment for a solution. |
tasknull prove | Emit a signed proof + one-way nullifier. |
tasknull verify | Verify a proof JSON. |
tasknull claim | Settle a proof — burns the nullifier. |
tasknull spent | List 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.
| Option | Required | Description |
|---|---|---|
--bounty <id> | yes | Bounty identifier. |
--file <path> | yes | Path to your solution. |
$ tasknull commit --bounty zk-audit-114 --file solution.txt
tasknull prove
Generates a signed completion proof with a one-way nullifier.
| Option | Required | Description |
|---|---|---|
--bounty <id> | yes | Bounty identifier. |
--file <path> | yes | Path to your solution. |
--to <SOL_ADDRESS> | yes | Fresh payout address (Solana base58, 32-44 chars). |
--out <path> | no | Write the proof JSON to a file (default: stdout). |
--scope <text> | no | Optional scope label, included in the signed payload. |
--reward <text> | no | Optional 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
~/.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)