AI Agent Oriented Design
Native infrastructure for autonomous economic actors.
Maroo provides KYA (Know Your Agent) verification and transaction modules for autonomous agents, ensuring accountability and strict boundaries for AI-driven economic activity.
Know Your Agent (KYA)
Every AI agent operating on Maroo must be cryptographically linked to a verified human or corporate owner, ensuring legal liability is always clear.
Delegation Scopes
An owner sets its agent's on-chain spending cap by writing the agent's
TransferLimit metadata on the IdentityRegistry — the per-transfer limit that AGENT_OKRW_TRANSFER_LIMIT_POLICY reads. The owner cannot register that policy, or a blocklist of counterparties (DENYLIST_POLICY), for its agent's own transfers: PCL has no per-agent scope. Global policies are set only by the PCL policy admin, and a contract policy binds only to a PCL-registered proxy or a policy-aware precompile; binding one to an agent wallet reverts with ContractPolicyNotRegistered. So the cap takes effect only where the policy admin puts AGENT_OKRW_TRANSFER_LIMIT_POLICY into the global policy (the testnet's global policy does not include it), or where a contract admin binds it to a PCL-wrapped proxy the agent calls. No per-agent cap applies by default, but the testnet's global policy still covers every agent wallet: without an EAS attestation on the wallet or on one of its owners, a transfer is capped at 2,000,000 OKRW, and the wallet's transfers count toward each owner's 10,000,000 OKRW per UTC day unless that owner is attested (see two-layer-policy-model).Enforcement at execution time
Delegation scopes are enforced on-chain only by the policies actually configured for the agent's transaction path — on its own, the
TransferLimit metadata restricts nothing: AGENT_OKRW_TRANSFER_LIMIT_POLICY caps a single transfer against the on-chain TransferLimit metadata, and EAS_POLICY requires an EAS attestation — of the sender, or, inside a policy that iterates over an agent's owners, of each owner. A transaction that falls outside a configured policy is rejected. There is no protocol-level revocation: the IdentityRegistry has no revoke function, and nothing on-chain rejects a transaction because an agent's metadata says "revoked" — that status is a convention only the off-chain layer (MAWS) honours.