Wireframe · OAuth agent · consent OAuth agent flow
OAuth 2.1 · Authorization Code + PKCE (S256) act-as-user
Agent client wants to act as Ty on Pocket Change.
loans:propose loans:agree payments:propose loans:read payments:read

Every action is logged via-agent (actor=agent-client, subject=Ty). Revoke anytime. No money:move scope exists.

← OAuth agent flow

Authorize agent client

Delegated agent · not impersonation

Friends & family loan tracker. We never touch your money.

Client
Agent client agent
client_id · agent_client · token_use · delegated_agent
What the agent can do for me
ProposeDraft loans / tab add-ons as Ty
AgreeSubmit my agree (not Mom’s)
PaymentsSubmit receipt / apply intents
ReadLoans & ledger visible to me
What The agent cannot do
Consent for Mom · move / hold / route money · skip mutual agree · hide as a third party · use a caller-supplied user id
Via-agent audit Each read/mutation appends actor_type=agent, actor_id=agent-client, subject_user_id=Ty, via_agent=true, scopes used. Visible to me; The agent cannot edit it.
Allow · continue as Ty Deny

PKCE challenge required. Short-lived access token. Refresh rotates; revoke kills the grant.