Periodic/Recurring Allowance

ERC20 allowance only specifies a spender and a finite amount spendable. This forces many applications to request unlimited approval to avoid having to request approvals again.

Recurring allowance automatically resets allowance every time period (eg. $100 per week), this allows applications to define limited spends while avoiding re-approvals over time. This
additional constraint is meant be built on top of ERC20 allowance.

Applications include recurring ERC20 gasless payments (using $10 USDC per month), subscriptions and credit-card-like spends.

Method Interface

function approveRecurring(
        address spender,
        uint256 value,
        uint256 startTime,
        uint128 secondsPerPeriod,
	uint128 maxPeriods

This interface differs from the following as allowance is automatically reset instead of being revoked.

Love to hear thoughts on this

1 Like