Skip to content
This repository was archived by the owner on Aug 9, 2026. It is now read-only.

Repository files navigation

ARCHIVED. No package was ever published from this repository, so nothing was unpublished.

A signed-delegation enforcement runner. No successor is planned. The enforcement path it demonstrated is now covered by @observer-protocol/policy-engine and the per-rail adapters in op-adapters. Kept public and readable.

On "No changes to Aqua" below. The policy hook ran in an INSTRUMENTED build of Aqua. It is not in shipped Aqua, and only the Liquid path was hooked.

Free Your Agent — Observer Protocol on Jan3 Aqua (Liquid)

The demo and integration glue for running Observer Protocol's signed-delegation enforcement natively on Jan3's Aqua wallet over the Liquid network. A human (or org, or Sovereign certification) authorizes an agent with a signed, revocable spending delegation; Aqua calls the OP policy sidecar before it signs; the evaluator checks the proposed transaction against that delegation and returns a signed decision, fail-closed. No changes to Aqua.

This is the source behind the live walkthrough at observerprotocol.org/free-your-agent.

How it composes (no Aqua core change)

Aqua integrates through the OP sidecar (POST /evaluate), not an embedded engine — so unlike the per-rail engines (ows-op-verify, mppx-op-account, wdk-op-policy, l402-op-authorize), the Aqua integration is the sidecar + this demo. Integration guide: op-policy-engine/docs/AQUA-INTEGRATION.md.

The flow

  1. Delegate (issue_delegation.py) — the principal signs an ObserverDelegationCredential scoping the agent on Liquid: per-transaction cap, allowed counterparties, validity window.
  2. Operate (run_maxi_demo.py) — the agent attempts a Liquid send; Aqua posts the proposed transaction to the sidecar before signing.
  3. Enforce — the evaluator allows an in-mandate spend and denies an out-of-mandate one before the key is touched, returning a signed PolicyEvaluationCredential.
  4. Verify (verifier/verify.py) — an independent script reproduces the binding hashes and checks the signatures against the published DID. You do not trust us, you check.

Layout

  • eddsa_jcs.py — the eddsa-jcs-2022 sign + verify core, shared by the issuer, the probes, and the verifier (run it directly for a self-test).
  • issue_delegation.py — issue the scoped spending delegation.
  • run_maxi_demo.py — the end-to-end Liquid demo driver.
  • step0_spending_probe.py, step0_v2_probe.py, step0b_parity.js — evaluator probes.
  • verifier/ — independent verification (verify.py, verify_delegation.py, build_test_fixture.py).
  • preflight_url.py, round_trip_smoke.py, realpath_smoke.py, verify_pair.sh, show_deny.sh — checks.

Keys are loaded from ~/.observer-protocol-keys/ at runtime; no key material is in this repo.

MIT. Credentials use eddsa-jcs-2022 (W3C VC Data Integrity), did:web principal + agent.

About

Observer Protocol signed-delegation enforcement demonstrated on Jan3 Aqua (Liquid) via the OP policy sidecar. The policy hook runs in an instrumented build and is not in shipped Aqua; only the Liquid path is hooked. eddsa-jcs-2022.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages