Private Token Balance Attestation: Difference between revisions
Eleutherious (talk | contribs) New tool page, source-checked against the project README |
Eleutherious (talk | contribs) Second check: fixes to facts, dates (UTC), glosses and attribution |
||
| Line 10: | Line 10: | ||
| verified_against = README and commit of 25 August 2026 | | verified_against = README and commit of 25 August 2026 | ||
}} | }} | ||
'''Private Token Balance Attestation''' is a zero-knowledge tool that proves a shielded token account holds at least a set number of tokens | '''Private Token Balance Attestation''' is a zero-knowledge tool that proves a shielded (private) token account holds at least a set number of tokens. It runs on the Logos Execution Zone (LEZ), the Logos layer that runs on-chain programs, with an off-chain path over [[Logos Messaging]]. The code is published by the GitHub account edenbd1. The README does not say whether it is an official Logos project. | ||
== What it does == | == What it does == | ||
* It proves that a shielded token account holds at least N tokens without revealing the account's npk, exact balance or identity. | * It proves that a shielded token account holds at least N tokens without revealing the account's npk (its nullifier public key), exact balance or identity. A zero-knowledge proof shows that a statement is true without showing the data behind it. A nullifier is a one-time tag that marks a proof as used without saying who made it. | ||
* It verifies the proof either on chain, through a LEZ verifier program, or off chain, via Logos Messaging. | * It verifies the proof either on chain, through a LEZ verifier program, or off chain, via Logos Messaging. | ||
* It uses a Risc0 guest circuit that proves balance against the LEZ private-account commitment, with Merkle membership, context binding and nullifier emission. | * It uses a Risc0 guest circuit (the program whose run the Risc0 prover proves) that proves balance against the LEZ private-account commitment, with Merkle membership, context binding and nullifier emission. | ||
* Each proof commits to a public context ID, | * Each proof commits to a public context ID, to prevent a proof being reused at another gate, as the README puts it. | ||
* Each proof is bound to a presenter key, and the presenter must sign a nonce from the verifier to be accepted. | * Each proof is bound to a presenter key, and the presenter must sign a nonce from the verifier to be accepted. | ||
* For the off-chain path, it wraps the receipt in a Groth16 proof of about 256 bytes so it fits a Logos Messaging message. | * For the off-chain path, it wraps the receipt in a Groth16 proof (a compact zero-knowledge proof) of about 256 bytes so it fits a Logos Messaging message. | ||
* It ships a client SDK, a CLI with prove, submit, send and verify commands, and a Basecamp app. | * It ships a client SDK, a CLI with prove, submit, send and verify commands, and a Basecamp app. | ||
* Four of its crates are published on crates.io, starting with attestation-core. | * Four of its crates are published on crates.io, starting with attestation-core. | ||
Stage: Prototype. The README status section | Stage: Prototype. The README, last changed on 20 July 2026, says in its status section "Deployed live on the public Logos Execution Zone testnet." <code>docs/DEPLOYMENT.md</code> records a testnet reset in July 2026 that "cleared the transaction history" of the first deployment, and a re-deploy checked on 19 July 2026. The version in metadata.json is 0.1.0 and the latest tag is an alpha. | ||
The README says it is a "Submission for LP-0005 on ns.com". The CONTRIBUTING file calls it "a focused submission for a single λPrize". | The README says it is a "Submission for LP-0005 on ns.com". The CONTRIBUTING file calls it "a focused submission for a single λPrize". | ||
| Line 34: | Line 34: | ||
== Build it == | == Build it == | ||
* | * The build needs the Risc0 toolchain, installed with rzup (cargo-risczero and r0vm 3.0.5). | ||
* | * <code>cargo build --release -p attestation-cli --bin attest</code> builds the CLI. | ||
* Developers can add <code>attestation-core = "0.1"</code> to Cargo.toml instead of forking the repository. | * Developers can add <code>attestation-core = "0.1"</code> to Cargo.toml instead of forking the repository. | ||
== Releases == | == Releases == | ||
* Latest tag: v0.1.0-alpha, | * Latest tag: v0.1.0-alpha, 21 May 2026 (UTC). | ||
* Version in app/metadata.json: 0.1.0 (module name lp_0005_attestation). | * Version in app/metadata.json: 0.1.0 (module name lp_0005_attestation). | ||
* GitHub lists no releases. | * GitHub lists no releases. | ||
| Line 54: | Line 54: | ||
* [https://github.com/edenbd1/lp-0005-private-token-balance-attestation/blob/main/CONTRIBUTING.md CONTRIBUTING.md], GitHub | * [https://github.com/edenbd1/lp-0005-private-token-balance-attestation/blob/main/CONTRIBUTING.md CONTRIBUTING.md], GitHub | ||
* [https://github.com/edenbd1/lp-0005-private-token-balance-attestation/blob/main/app/metadata.json app/metadata.json], GitHub | * [https://github.com/edenbd1/lp-0005-private-token-balance-attestation/blob/main/app/metadata.json app/metadata.json], GitHub | ||
* [https://github.com/edenbd1/lp-0005-private-token-balance-attestation/blob/main/docs/DEPLOYMENT.md docs/DEPLOYMENT.md], GitHub | |||
* [https://github.com/edenbd1/lp-0005-private-token-balance-attestation/releases releases], GitHub | |||
{{Page status|Stub}} | {{Page status|Stub}} | ||
Revision as of 21:01, 4 November 2026
Private Token Balance Attestation is a zero-knowledge tool that proves a shielded (private) token account holds at least a set number of tokens. It runs on the Logos Execution Zone (LEZ), the Logos layer that runs on-chain programs, with an off-chain path over Logos Messaging. The code is published by the GitHub account edenbd1. The README does not say whether it is an official Logos project.
What it does
- It proves that a shielded token account holds at least N tokens without revealing the account's npk (its nullifier public key), exact balance or identity. A zero-knowledge proof shows that a statement is true without showing the data behind it. A nullifier is a one-time tag that marks a proof as used without saying who made it.
- It verifies the proof either on chain, through a LEZ verifier program, or off chain, via Logos Messaging.
- It uses a Risc0 guest circuit (the program whose run the Risc0 prover proves) that proves balance against the LEZ private-account commitment, with Merkle membership, context binding and nullifier emission.
- Each proof commits to a public context ID, to prevent a proof being reused at another gate, as the README puts it.
- Each proof is bound to a presenter key, and the presenter must sign a nonce from the verifier to be accepted.
- For the off-chain path, it wraps the receipt in a Groth16 proof (a compact zero-knowledge proof) of about 256 bytes so it fits a Logos Messaging message.
- It ships a client SDK, a CLI with prove, submit, send and verify commands, and a Basecamp app.
- Four of its crates are published on crates.io, starting with attestation-core.
Stage: Prototype. The README, last changed on 20 July 2026, says in its status section "Deployed live on the public Logos Execution Zone testnet." docs/DEPLOYMENT.md records a testnet reset in July 2026 that "cleared the transaction history" of the first deployment, and a re-deploy checked on 19 July 2026. The version in metadata.json is 0.1.0 and the latest tag is an alpha.
The README says it is a "Submission for LP-0005 on ns.com". The CONTRIBUTING file calls it "a focused submission for a single λPrize".
Use it
- Install the Risc0 toolchain once with rzup, version 3.0.5 of cargo-risczero and r0vm.
- Build the CLI with
cargo build --release -p attestation-cli --bin attest. - Run
./scripts/demo.sh. The demo makes a presenter key, proves a balance of 1,000,000 is at least 100,000, and checks the credential locally. - To use it in Basecamp, drop the packaged file
app/lp-0005-attestation.lgxinto the LogosBasecampDev plugins folder. The README gives the macOS path. - To verify the on-chain proof from public data alone, run
./scripts/verify-onchain-proof.sh. It needs only curl, python3 and jq.
Build it
- The build needs the Risc0 toolchain, installed with rzup (cargo-risczero and r0vm 3.0.5).
cargo build --release -p attestation-cli --bin attestbuilds the CLI.- Developers can add
attestation-core = "0.1"to Cargo.toml instead of forking the repository.
Releases
- Latest tag: v0.1.0-alpha, 21 May 2026 (UTC).
- Version in app/metadata.json: 0.1.0 (module name lp_0005_attestation).
- GitHub lists no releases.
See also
Sources
- lp-0005-private-token-balance-attestation README, GitHub, last commit 25 August 2026
- CONTRIBUTING.md, GitHub
- app/metadata.json, GitHub
- docs/DEPLOYMENT.md, GitHub
- releases, GitHub