This thread proposes a new ERC defining a Permissioned Authorization Object:
a portable, revocable EIP-712 authorization struct for bounded pull-based transfers.
This ERC focuses only on the authorization primitive itself. Execution semantics are defined separately (see ERC-8102: Permissioned Pull).
Summary
A Permissioned Authorization Object (PPO) is an off-chain signed authorization that allows a grantee to pull ERC-20 tokens from a grantor under explicit constraints:
who may pull (grantee)
which token
maximum amount per pull
validity window
single-use nonce (revocable prior to execution)
PPOs are:
signed off-chain (EIP-712),
revocable before use,
executor-agnostic,
portable across chains and systems that adopt the same struct,
compatible with existing ERC-20 tokens (no token changes required).
This ERC does not define how pulls are executed on-chain. That responsibility lives in a companion standard (ERC-8102).
Motivation
Existing primitives do not provide a clean, general authorization object for retrieving value by consent.
I’m intrigued by the idea of a more general purpose authorization scheme for token approvals. Can you elaborate on how this is an improvement over say the Permit2 Library for signed token approvals?
Would this be implemented similarly using a contract to track and enable approvals and authorizations?
Great question. Permit2 is a useful comparison point.
The key distinction is that ERC-8103 defines a general authorization object, not an approval system or registry.
Permit2 is an opinionated implementation:
• approvals are ultimately modeled as allowances,
• state lives in a canonical Permit2 contract,
• execution is routed through that contract.
In contrast, a Permissioned Authorization Object (PPO):
• is a pure EIP-712 signed payload describing bounded pull consent,
• does not require a central contract or registry,
• does not track cumulative balances or allowances,
• is domain-bound to the executor, not globally scoped.
PPOs are intentionally executor-agnostic. Any contract implementing ERC-8102 can verify and execute a PPO, using its own domain separator and revocation model.
Registries may exist (for revocation or observability), but they are optional and out of scope of the authorization primitive itself.
In short: Permit2 is a concrete approval mechanism; ERC-8103 is a minimal, reusable authorization primitive that executors, wallets, AA stacks, or registries can build on in different ways.