Private Token Balance Attestation: Difference between revisions

From Local Area Network
New tool page, source-checked against the project README
 
Plainer prose: fewer quotes, project claims attributed, glosses folded in
 
(One intermediate revision by the same user not shown)
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, and it runs on the Logos Execution Zone (LEZ) 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.
'''Private Token Balance Attestation''' is a zero-knowledge tool by the GitHub account edenbd1 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 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 with a zero-knowledge proof, which shows a statement is true without showing the data behind it. The README says the proof reveals neither the account's npk (nullifier public key), nor its exact balance, nor its identity.
* 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.
* The balance is proved against the LEZ private-account commitment by a Risc0 guest circuit, the program whose run the Risc0 prover proves. The circuit also handles Merkle membership and context binding, and emits a nullifier, a one-time tag that marks a proof as used without saying who made it.
* Each proof commits to a public context ID, so a proof cannot be replayed across gates.
* Each proof commits to a public context ID, which the README says prevents it being reused at another gate.
* 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, the receipt is wrapped in a Groth16 proof, a compact zero-knowledge proof of about 256 bytes, so it fits in 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 says "Deployed live on the public Logos Execution Zone testnet." The version in metadata.json is 0.1.0 and the latest tag is an alpha.
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 July 2026 testnet reset 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 calls it a submission for LP-0005 on ns.com, and the CONTRIBUTING file describes it as a focused submission for a single λPrize.


== Use it ==
== Use it ==
Line 34: Line 34:


== Build it ==
== Build it ==
* Install the Risc0 toolchain with rzup (cargo-risczero and r0vm 3.0.5).
* The build needs the Risc0 toolchain, installed with rzup (cargo-risczero and r0vm 3.0.5).
* Run <code>cargo build --release -p attestation-cli --bin attest</code>.
* <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, 22 May 2026.
* 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}}

Latest revision as of 23:27, 4 November 2026

Private Token Balance Attestation
What it does: A reusable private balance attestation primitive for the Logos Execution Zone (LEZ)
Stage: Prototype
Licence: MIT OR Apache-2.0
Verified on 4 November 2026 against README and commit of 25 August 2026.

Private Token Balance Attestation is a zero-knowledge tool by the GitHub account edenbd1 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 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 with a zero-knowledge proof, which shows a statement is true without showing the data behind it. The README says the proof reveals neither the account's npk (nullifier public key), nor its exact balance, nor its identity.
  • It verifies the proof either on chain, through a LEZ verifier program, or off chain, via Logos Messaging.
  • The balance is proved against the LEZ private-account commitment by a Risc0 guest circuit, the program whose run the Risc0 prover proves. The circuit also handles Merkle membership and context binding, and emits a nullifier, a one-time tag that marks a proof as used without saying who made it.
  • Each proof commits to a public context ID, which the README says prevents it being reused at another gate.
  • 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, the receipt is wrapped in a Groth16 proof, a compact zero-knowledge proof of about 256 bytes, so it fits in 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 July 2026 testnet reset 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 calls it a submission for LP-0005 on ns.com, and the CONTRIBUTING file describes it as a focused submission for a single λPrize.

Use it

  1. Install the Risc0 toolchain once with rzup, version 3.0.5 of cargo-risczero and r0vm.
  2. Build the CLI with cargo build --release -p attestation-cli --bin attest.
  3. 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.
  4. To use it in Basecamp, drop the packaged file app/lp-0005-attestation.lgx into the LogosBasecampDev plugins folder. The README gives the macOS path.
  5. 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 attest builds 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

Page status: Stub. Stub · Outline · Usable · Guide · Star. Anyone can improve this page and change its status.