Installation
Build from the project repository:target/release/bitrune-verify.
Usage
| Argument | Description |
|---|---|
<txid_or_hex> | A 64-character transaction ID (fetched from bitcoind) or raw transaction hex |
| Option | Default | Description |
|---|---|---|
--rpc-url | http://127.0.0.1:18443 | bitcoind RPC endpoint |
--rpc-user | rpc | RPC username |
--rpc-pass | rpc | RPC password |
--json | off | Output results as structured JSON |
--help | Show usage information |
BITRUNE_RPC_URL, BITRUNE_RPC_USER, BITRUNE_RPC_PASS.
What It Verifies
The tool decodes all Bitrune audit tags present in a transaction and runs validation checks against each:| Tag | Name | Checks Performed |
|---|---|---|
| 111 | Tax Specification | Tax rates within valid range (0–10000 bps), bucket shares sum to 100% |
| 333 | Swap Data | Direction valid, amounts positive |
| 555 | Reserve Proof | Reserve deltas are directionally consistent (one up, one down), fee within range, LP shares positive, constant-product invariant holds |
| 777 | Tax Execution Proof | gross = tax + net, bucket distribution sums to total tax, params_hash matches etch-time commitment |
| 889 | Pool Parameters | Fee within range, initial reserve positive |
| 999 | LP Event Proof | Operation type valid, reserve deltas match amounts, deposits have zero reward claims |
| 1111 | Batch Settlement | User count positive, reserve changes consistent with total input/output |
| 1333 | LP-Rune Linkage | Fee within range, LP premine positive |
Example
Verify a swap transaction:Use Cases
- Auditors: Verify that every swap executed by Bitrune follows the constant-product formula and applies fees correctly.
- Rune creators: Confirm that deflationary tax rules are applied exactly as configured at etch time, with no modifications.
- LP providers: Validate that deposit/withdraw share calculations match the published AMM formulas.
- Block explorers: Integrate structured Bitrune tag data into transaction detail pages.
Connecting to a Node
For mainnet verification, point the tool at a Bitcoin Core node withtxindex=1 enabled: