Solution: LP-0008 — Autonomous AI Module with Wallet, Storage, and Messaging - #129
Open
edenbd1 wants to merge 1 commit into
Open
Solution: LP-0008 — Autonomous AI Module with Wallet, Storage, and Messaging#129edenbd1 wants to merge 1 commit into
edenbd1 wants to merge 1 commit into
Conversation
…ssaging
An agent that participates in the Logos stack directly rather than through an API
key: it holds its own shielded LEZ account, and the ceiling on what it may spend
is not a check inside the agent process but state on chain that the agent's own
program is the only thing permitted to write.
Amended after a read of all seventeen documents in the repository, which turned
up five statements in this file that the chain contradicts. Four of them
understated the work:
- the settlement counts said eleven, twelve and thirteen in three places; the
manifests hold sixteen rows, thirteen under the shipped program, confirmed by
re-decoding each from the chain's own copy;
- the storage skills were listed as never having driven a live node from inside
the module. They do — the module opens its own Logos Storage node and all
four are called through invoke();
- the owner-approval path was called "the most serious open defect" and said to
remove "half of the spending-threshold design". It ran on the public testnet:
approve_spend in block 10776, spend_approved in 10786, the payee 4 to 6. What
is actually closed is narrower and is now what this file says.
Nothing was reworded to sound better; every replacement states what was measured,
and the two explorer links added were opened before being cited.
✅ Validation passedA reviewer will assess against the prize criteria. Automated check. See solution template and TERMS. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
An agent that participates in the Logos stack directly rather than through an API key: it holds its own shielded LEZ account, and the ceiling on what it may spend is not a check inside the agent process but state on chain that the agent's own program is the only thing permitted to write. An agent whose process has been taken cannot raise its own ceiling — there is no second address to anchor a larger one at, and the write itself is refused.
solutions/LP-0008.mddocs/limitations.mdVerify it in five minutes
1. Three agents anchored and live on the public testnet, one per default skill category. Each
create_policyon the block explorer:create_policy6857ba23…631fe7d4· block 8868ce557a0a…278e1918· block 88762f6b481c…ecec5eda· block 8884The deployed program itself:
697746f5…cb5370bf. A LEZ deploy hash isSHA256(borsh(bytecode)), so the committedartifacts/programs/agent_verifier.binis its own deploy transaction — recompute it and compare.2. One agent paid another, unattended. The settlement filmed for the video:
54f85182…e2f47115, block 10102 — the recipient's balance goes 107 → 108 LEZ and no owner signs anything. Twelve more settlements under the shipped program are listed in the submission (thirteen in all with the shielded one), each re-decoded from the chain's own copy rather than from a cached file. Every transaction hash this submission cites resolves onexplorer.testnet.lez.logos.co.3. A recorded demo — https://youtu.be/5HF0xv6GX64, one narrated walkthrough, 21 m 57 s, against the public testnet at
https://testnet.lez.logos.co, never a localnet. Four illustrative use cases run in it — the spending threshold and its refusal above the ceiling, the privacy-preserving notary, the on-chain event alerter, and the paid skill marketplace that settles the transaction above.RISC0_DEV_MODE=0is visible throughout the proving output; the multi-minute proof times are what real proving costs. The same file is a release asset of the repository,lp8-demo.mp4, so the evidence does not depend on a third party keeping it up.4. End-to-end against a LEZ standalone sequencer, green in CI, with no skip path:
32024953786r0vm, runs the full lifecycle withRISC0_DEV_MODE: 032040423074The e2e refuses a runner it cannot finish on rather than skipping the expensive step: a job that completes through a skip path is not a job that ran. Inside that run,
claim_agenttakes 54 minutes of real proving, and the lifecycle ends with a payment inside the envelope moving a balance0 → 50between two wallets, and a payment above the ceiling refused withProgram error 6005leaving the balance untouched.5. From a clean clone, with nothing installed:
git clone --depth 1 https://github.com/edenbd1/lp-0008-autonomous-agent-module cd lp-0008-autonomous-agent-module ./scripts/demo.sh51 MB fetched. It needs a Rust toolchain,
python3andcurl, names any of them that are missing before it runs anything, and exportsRISC0_DEV_MODE=0itself. No funded account, no keys, no local sequencer, no Logos install.Success criteria
23 of 23 met. Functionality 11/11, Usability 2/2, Reliability 3/3, Performance 1/1, Supportability 6/6 — each box in the checklist carries the command that re-derives it rather than a claim. The long form of every entry — the controls, the transcripts, what was watched failing — is in
docs/criteria-evidence.md.Nothing here is asserted that has not been reproduced. What does not work is written down in
docs/limitations.mdrather than omitted — including thatgetAccountcannot see a private balance, that no model has been run against the inference port, and that the storage skills, which do drive a live node from inside the module, have no committed transcript and no CI job of their own.The repository holds gates rather than prose:
check-docs.pyresolves every path, link andfile:linecitation across fifteen documents;check-package-fresh.pyrefuses the shipped.lgxunless every source string literal is present in it;verify-deployment.shre-reads the deployment off the chain;check-video.pyreads the terminal text off the video's pixels and asserts the testnet is on screen and no loopback address is.Terms & Conditions
By submitting this solution, I confirm that I have read and agree to the Terms & Conditions.
Verified by execution before this was opened
Every line below was run against the public testnet or the shipped artefacts, and
the output read, rather than inferred from the code:
create_policylive viagetTransaction, eachpolicy account re-read off the chain with the envelope it records, and the
control hash
dedede…returning null../scripts/verify-deployment.shexit 0.consecutive settlements decoded from the chain's own copy of each transaction —
hash_ok=1, so the decoded bytes are that transaction — with the payee at106 → 107 → 108, credited by exactly the advertised price both times,
21 blocks apart. The payer is shielded, so its debit is not publicly readable;
what is, is the policy ledger going
spent 1→spent 2in window 10000, inan account LEZ rule 6 lets only this program write. All three owners read
nonce 1— one signed transaction each, the anchor, before any settlement../scripts/exercise-nodes.shexit 0, 18 assertions, 0failures: a Delivery node on the live network published a message the network
propagated back, and a Storage node returned a content address whose manifest
names the file that went in.
RISC0_DEV_MODE: 0with noskip path —
ci.ymland the companion workflow contain noif:and nocontinue-on-errorat all, and the e2e workflow usesif:once, on the stepthat runs only when there is a failure to explain.
on screen,
RISC0_DEV_MODE=0legible, none of the five forbidden strings inany sampled frame, four use cases identified by the section titles they print.
40 assertions, 28 skills each carrying a parameter schema.