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