I’m preparing to open a PR for a new ERC tentatively titled “Programmable Settlement Locks”, and wanted to start a thread first to introduce the proposal and provide a place for discussion.
Context
The proposal defines a minimal interface for value-bearing contracts to expose a common lock lifecycle: creation, update, delegation, spending, cancellation, and inspection.
The primary use case is atomic settlement across systems that do not share the same asset model or visibility assumptions. This includes conventional token contracts such as ERC-20, shielded or private token systems, zero-knowledge proof based transfers, externally validated state transitions, and other value-bearing contracts where the details of an operation may not be fully visible on-chain.
Proposal summary
The core idea is a standardized settlement object, rather than a uniform token model.
A programmable settlement lock represents a prepared value-bearing operation with a single current spender, committed spend and cancel paths, and delegation of finalization authority.
The intended shape of the interface is roughly:
interface IERCXXXX {
function createLock(...) external returns (bytes32 lockId);
function updateLock(bytes32 lockId, ...) external;
function delegateLock(bytes32 lockId, address newSpender, ...) external;
function spendLock(bytes32 lockId, ...) external;
function cancelLock(bytes32 lockId, ...) external;
function getLock(bytes32 lockId) external view returns (...);
function isLockActive(bytes32 lockId) external view returns (bool);
}
The implementing contract is responsible for defining exactly what the lock means, how arguments are encoded, how commitments are constructed, and how supplied execution arguments are validated.
This allows a single executor, such as a coordinating smart contract, to settle many such locks in a uniform manner, even when they are tied to assets or value systems with very different internal construction.
The proposal is intended to support flows where a party prepares an operation on its own asset or value system, delegates control of that prepared operation to another party or coordinating contract, and allows the delegated spender to finalize it only through the predefined spend or cancel path.
Review focus
My plan is to open the PR with the complete specification rather than reproducing or summarizing it here. The most useful discussion will likely be against the full proposal.
Initial feedback is welcome on the general framing, related settlement patterns, and major token or value-system examples that should be considered. I’ll link back here once the PR is open to allow for more detailed discussion on the specifics.