A signed-delegation enforcement runner. No successor is planned. The enforcement path it demonstrated is now covered by
@observer-protocol/policy-engineand the per-rail adapters inop-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.
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.
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.
- Delegate (
issue_delegation.py) — the principal signs anObserverDelegationCredentialscoping the agent on Liquid: per-transaction cap, allowed counterparties, validity window. - Operate (
run_maxi_demo.py) — the agent attempts a Liquid send; Aqua posts the proposed transaction to the sidecar before signing. - Enforce — the evaluator allows an in-mandate spend and denies an out-of-mandate one
before the key is touched, returning a signed
PolicyEvaluationCredential. - 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.
eddsa_jcs.py— theeddsa-jcs-2022sign + 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.