Skip to content

Solution: LP-0008 — Autonomous AI Module with Wallet, Storage, and Messaging - #129

Open
edenbd1 wants to merge 1 commit into
logos-co:masterfrom
edenbd1:lp-0008-submission
Open

Solution: LP-0008 — Autonomous AI Module with Wallet, Storage, and Messaging#129
edenbd1 wants to merge 1 commit into
logos-co:masterfrom
edenbd1:lp-0008-submission

Conversation

@edenbd1

@edenbd1 edenbd1 commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

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.


Verify it in five minutes

1. Three agents anchored and live on the public testnet, one per default skill category. Each create_policy on the block explorer:

category per-tx per-period create_policy
storage 50 500 6857ba23…631fe7d4 · block 8868
messaging 25 250 ce557a0a…278e1918 · block 8876
blockchain 200 1,000 2f6b481c…ecec5eda · block 8884

The deployed program itself: 697746f5…cb5370bf. A LEZ deploy hash is SHA256(borsh(bytecode)), so the committed artifacts/programs/agent_verifier.bin is 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 on explorer.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=0 is 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:

workflow run
e2e vs local sequencer 32024953786 success, 3 h 03 — builds LEZ at a pinned revision, installs r0vm, runs the full lifecycle with RISC0_DEV_MODE: 0
alongside the companion modules 32040423074 success — all four modules in one Logos Core runtime on Linux, from published sources, both negative controls firing

The 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_agent takes 54 minutes of real proving, and the lifecycle ends with a payment inside the envelope moving a balance 0 → 50 between two wallets, and a payment above the ceiling refused with Program error 6005 leaving 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.sh

51 MB fetched. It needs a Rust toolchain, python3 and curl, names any of them that are missing before it runs anything, and exports RISC0_DEV_MODE=0 itself. 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.md rather than omitted — including that getAccount cannot 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.py resolves every path, link and file:line citation across fifteen documents; check-package-fresh.py refuses the shipped .lgx unless every source string literal is present in it; verify-deployment.sh re-reads the deployment off the chain; check-video.py reads 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:

  • Three agents anchored. Each create_policy live via getTransaction, each
    policy account re-read off the chain with the envelope it records, and the
    control hash dedede… returning null. ./scripts/verify-deployment.sh exit 0.
  • Two agents paying each other, twice, with no owner in the path. Three
    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 at
    106 → 107108, 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 1spent 2 in window 10000, in
    an account LEZ rule 6 lets only this program write. All three owners read
    nonce 1 — one signed transaction each, the anchor, before any settlement.
  • Real nodes. ./scripts/exercise-nodes.sh exit 0, 18 assertions, 0
    failures: 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.
  • The end-to-end sequencer job, green in CI at RISC0_DEV_MODE: 0 with no
    skip path — ci.yml and the companion workflow contain no if: and no
    continue-on-error at all, and the e2e workflow uses if: once, on the step
    that runs only when there is a failure to explain.
  • The video, checked frame by frame: 21 m 57 s, both public testnet domains
    on screen, RISC0_DEV_MODE=0 legible, none of the five forbidden strings in
    any sampled frame, four use cases identified by the section titles they print.
  • The module in Logos Core, headless against LogosBasecamp 0.2.2: exit 0,
    40 assertions, 28 skills each carrying a parameter schema.

…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.
@github-actions

Copy link
Copy Markdown

✅ Validation passed

A reviewer will assess against the prize criteria.
ℹ️ Solution submission for LP-0008.
ℹ️ Checking repo: https://github.com/edenbd1/lp-0008-autonomous-agent-module


Automated check. See solution template and TERMS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant