{"name":"onyx_perm_grant","tier":"free","price_usdc":"0.00","endpoint":"https://onyx-actions.onrender.com/v1/onyx_perm_grant","method":"POST","input_schema":{"type":"object","properties":{"agent":{"type":"string","description":"Who is granted (did:pkh / wallet / agent id)"},"principal":{"type":"string","description":"Who grants the authority (did / email / org)"},"consent_ref":{"type":"string","description":"Proof of consent (AP2 mandate id / signature hash)"},"allowed_actions":{"type":"array","items":{"type":"string"},"description":"Subset of ['read', 'verify', 'transact', 'sign', 'negotiate', 'subscribe']; deny-by-default"},"allowed_merchants":{"type":"array","items":{"type":"string"}},"allowed_domains":{"type":"array","items":{"type":"string"}},"spend_max_usdc":{"type":"number","description":"Hard ceiling per action"},"spend_window_usdc":{"type":"number","description":"Optional rolling-window aggregate cap"},"spend_window_sec":{"type":"integer","description":"Window length in seconds (default 86400)"},"velocity_max":{"type":"integer","description":"Max number of transacts per window"},"per_counterparty_budget":{"type":"number","description":"Max aggregate spend per single counterparty per window"},"purpose":{"type":"string"},"expires_at":{"type":"integer","description":"Unix time the grant lapses"}},"required":["agent"]},"description":"Mint a signed permission grant (onyx-perm-grant/v0) for an agent: a portable, Ed25519-notarized declaration of the scope it may act within (allowed_actions, allowed_merchants/domains, spend_max_usdc, principal, consent_ref, expires_at). Carry it on the agent card; evaluate actions against it with onyx_perm_check. Facts, not judgments — attests what was declared, not that the grantor holds the authority.","when_to_use":null,"vs_alternatives":null,"example_request":null,"example_response":null,"settle_to":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","network":"base","facilitator":"https://facilitator.xpay.sh","payment_required":false,"free_introspection":true,"note":"GET this URL = free introspection card. POST with x402 payment header to call."}