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 local identity. |
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 local identity key. This key is separate from the fresh Arc payout address carried by a proof.
$ 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 <ARC_ADDRESS> | yes | Fresh Arc payout address (EVM format: 0x plus 40 hex characters). |
--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 0x7E57d0040527699D7fE97A76D3fca9ec6AFB4A21 --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. Arc Testnet settlement ships with the $TNULL contracts.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 0x7E57d0040527699D7fE97A76D3fca9ec6AFB4A21 --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)