Skip to content

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

Open
aegonmyy wants to merge 1 commit into
logos-co:masterfrom
aegonmyy:solution/lp-0008
Open

Solution: LP-0008 — Autonomous AI Module with Wallet, Storage, and Messaging#142
aegonmyy wants to merge 1 commit into
logos-co:masterfrom
aegonmyy:solution/lp-0008

Conversation

@aegonmyy

@aegonmyy aegonmyy commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Solution for LP-0008, Autonomous AI Module with Wallet, Storage, and Messaging: an agent with its own shielded LEZ wallet, Logos Storage access, and Logos Messaging.

Re-submission note. This PR was originally opened pinned at 4e6e3c5 (2026-09-07). It is updated in place as submission 2 to answer the three reviewer objections: CI at RISC0_DEV_MODE=0, a proof-bearing testnet transaction, and the Basecamp GUI demo. The public testnet was reset by its operator on 2026-09-08, which invalidated every hash cited in the original body; all testnet evidence below was re-landed on the fresh chain and independently re-verified against the public RPC.

Reviewed version, pinned

The implementation is https://github.com/aegonmyy/logos-agent at head commit 2d2cb0a; the solutions/LP-0008.md on this branch is byte-identical to submission/LP-0008.md at that commit. The file pins its evidence generation at 22e9cee (green runs cited inline there) and states that every commit from 22e9cee to the head changes documentation only; both CI lanes are green at both commits (links in the CI section below). Every on-chain hash in the file was verified against the public RPC on 2026-09-09, and each success criterion carries an inline verification path (a command to run, a link to open, or a named test).

What it is

The agent is packaged as a Logos Core module with a documented, third-party-extensible skill interface. It holds its own shielded account and keys, spends autonomously under per-transaction and per-period limits, escalates over-limit spends to its owner over an end-to-end encrypted Logos Messaging channel, and coordinates with peer agents through an A2A-compatible binding that settles payment in LEZ.

Evidence, on the official public LEZ testnet with real Groth16 proofs (RISC0_DEV_MODE=0)

  • Proof-bearing shielded transactions, agent-driven (tests/testnet_agent_spend.rs, re-landed 2026-09-08): the agent's own shielded account receives a 100-token mint and spends 10 autonomously below its limit, and every transaction in the flow lands as a PrivacyPreserving transaction (type byte 0x01, real Groth16 proof serialized in the on-chain body):

    tx block on-chain size
    a178944818bc67ee776bcc9ca4e8bf5a798b4d1cf1aab8ce5a84650c079799c6 (mint) 87 270,810 B
    a3eaeb3a773f35a48935944ca1b15bed683265dbded90633c094e4ef56aa4f4b (spend) 88 272,778 B
    2a283d3c8887ef552bf56f415bbd6b534a4424e0765b590f3b44f6f6215a0aaa (spend) 111 273,066 B
    eab567f88e164945769c342d35540c7e7ae610c267c4247d877868ae51af8b93 (spend) 118 270,480 B

    The block explorer does not index PrivacyPreserving transactions, so verify against the public RPC directly:

    curl -s -X POST https://testnet.lez.logos.co -H 'Content-Type: application/json' \
      -d '{"jsonrpc":"2.0","id":1,"method":"getTransaction","params":["a3eaeb3a773f35a48935944ca1b15bed683265dbded90633c094e4ef56aa4f4b"]}'

    Piping the response through | jq -r '.result[0]' | base64 -d | wc -c reproduces the sizes in the table: a PrivacyPreserving transaction at DEV_MODE=0 is hundreds of kilobytes because the proof is serialized in the body, while a Public transaction is a few hundred bytes. Committed RPC snapshots for all four: docs/testnet-evidence/v0.2.0/. Full account ids, the balance semantics of shielded accounts, and reproduction steps: docs/SHIELDED_TESTNET_PROOF.md.

  • Program-mediated settlements, one per category agent (docs/THREE_TESTNET_SETTLEMENTS.md): the agent deploys a program with its program.deploy skill (id 937554f71c96d8ace11298d2d3342e0b4ffa7d61fb394c1706a78c088f4ea471, deployment tx 810ac460c5bb2b46a3868fb699635be5059496478db48c98809c107a04ee3d67, block 144, a 343,397-byte ProgramDeployment), then each agent settles through it with an included, state-changing transaction whose effect (the claimed account's ownership flipping to the program) is read back from chain state:

    • storage: tx 155731c68cce04f856ad501f568bfb618cc18793705230d7ffcff548f74416cf, block 148
    • messaging: tx adf2ae7455e40315f2b5e31f1dc1b66b2c137f5bd88df483189202a704f94d9c, block 149
    • blockchain: tx f589abe4dac0fc0ba40e00614a43ae67b2045cfc24e00884c1574de0be15bd54, block 150

    These are Public transactions by design; they are the settlement evidence, and the proof evidence is the shielded set above.

  • Demo videos:

    • Terminal + real-proof + CLI, builder narration: https://youtu.be/HS6i3ucrKeE (~13 min)
    • Three use cases (personal file vault, privacy-preserving notary, paid multi-agent task), the builder's own voice: what each use case is, what the agent does step by step, and the architecture; cut from the 58-minute RISC0_DEV_MODE=0 capture of the single test run that executes all three: https://youtu.be/dg6RuNw44a8
    • Basecamp GUI demo, builder narration over a screen capture of a human driving the owner app over VNC through approve, deny, reconfigure, and an autonomous spend, over real Waku, settled on a local LEZ sequencer: https://youtu.be/1Ck_0keFXek (4 min 32 s)
    • Reviewer tip: turn on YouTube subtitles (CC); all three videos are narrated and carry subtitles.
  • CI: two workflows, and where the RISC0_DEV_MODE=0 e2e lives. The real-proof lane is a separate workflow file, real-proof.yml, outside ci.yml (a proving lane bound to every push would hold the branch hostage for about 120 minutes per push), and both lanes are green on this submission's exact head commit 2d2cb0a:

    • Fast lane (ci.yml, runs on every push): clean-room build + unit tests + an e2e job against a standalone LEZ sequencer at RISC0_DEV_MODE=1. Green on 2d2cb0a: run 34357162499; also green at 22e9cee, the commit the solutions file pins: run 34326620286.

    • Real-proof lane (real-proof.yml, dispatched on demand on the exact commit under review, its own concurrency group so pushes can never cancel a proving run): RISC0_DEV_MODE=0 throughout, both steps required, no continue-on-error anywhere in the file. Green on 2d2cb0a: run 34358611324. Step 1: the agent spending flow on a local sequencer, 114 minutes of real Groth16 proving. Step 2: the shielded-send probe against the public testnet, which landed a fresh proof-bearing transaction from CI: tx b59af9a93ae9ad33d3de6a6b6f1bdfab4061a67edcbd4e6bc64286cee88e29d1, block 1603, 271,076 bytes, type byte 0x01, holder balance 100 -> 90 (mint block 1564). Verify it live:

      curl -s -X POST https://testnet.lez.logos.co -H 'Content-Type: application/json' \
        -d '{"jsonrpc":"2.0","id":1,"method":"getTransaction","params":["b59af9a93ae9ad33d3de6a6b6f1bdfab4061a67edcbd4e6bc64286cee88e29d1"]}' \
        | jq -r '.result[0]' | base64 -d | wc -c   # 271076

      The same lane is also green at 22e9cee, the commit the solutions file pins: run 34326632248, whose probe landed tx 6c5aa75e... in block 1225 with the identical shape (271,076 bytes, type 0x01); both transactions are live on the public chain today.

    • Correction of this PR's own earlier report: a previous real-proof run (34313591594, commit ca578f8) showed a green conclusion with an error annotation inside it. The probe step was continue-on-error then, so the failure was swallowed. The failure itself was never the testnet: that run's send landed in block 1032, included 14 seconds after submission, 271,076 bytes, type 0x01. What failed was the test's own hash extraction, which scraped the return value's Debug text and could not parse any hash (a derived-Debug space makes the parse return an empty string). Fixed in ab3ca0e by matching the executed-transaction variant directly, and 22e9cee removed the continue-on-error so a probe failure now reds the run; the pinned green run above is green with nothing swallowed.

    All runs: https://github.com/aegonmyy/logos-agent/actions

  • Basecamp .lgx bundles: https://github.com/aegonmyy/logos-agent/releases/tag/v0.2.0-basecamp-bundles

Criterion to evidence map

Every success criterion in the prize is mapped to a specific test or artifact in solutions/LP-0008.md. Headline coverage: shielded wallet identity and autonomous spend with real proofs, storage skills with client-side-encrypted uploads to a real node, messaging skills with an approval channel over live Waku, escalation above limits to the owner, A2A coordination with LEZ settlement, the Basecamp owner mini-app, and the third-party skill interface.

Honest limitations

docs/limitations.md states plainly what does not work: self-certifying Agent Card keys, the module's offline session, a known indexer stall in the recorded real-proof run, and no key-loss recovery. Two limitations from the first submission are resolved in this one:

  • The public testnet's silent drop of private transactions: the shielded spend now lands on chain with its proof (blocks 87-118 above); the earlier finding was a transient sequencer condition (docs/SHIELDED_TESTNET_PROOF.md).
  • The un-recorded owner GUI click-through: the Basecamp GUI demo video above records the full owner flow, human-driven.

By submitting this solution I confirm that I have read and agree to the Terms and Conditions.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

✅ Validation passed

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


Automated check. See solution template and TERMS.

@aegonmyy
aegonmyy marked this pull request as draft September 8, 2026 17:38
@aegonmyy
aegonmyy marked this pull request as ready for review September 9, 2026 06:46
@aegonmyy
aegonmyy marked this pull request as draft September 9, 2026 07:41
@aegonmyy
aegonmyy marked this pull request as ready for review September 9, 2026 10:33
@aegonmyy
aegonmyy marked this pull request as draft September 9, 2026 10:59
@aegonmyy
aegonmyy marked this pull request as ready for review September 9, 2026 16:59
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