Deposit ticks can be optionally represented by an ERC20 token, offering users a basic ERC20 interface to their deposit position. This is enabled for a tick by an external actor calling tokenize(uint128 tick) on the Pool, which deploys an ERC20 token bound to the specified deposit tick. Once an ERC20 token exists for a tick, all users of that tick are automatically minted and burned tokens for deposit and redeem operations on that tick.

The basic ERC20 interface (balanceOf(), allowance(), approve(), transfer(), transferFrom(), etc.) operates in terms of deposit tick shares, rather than currency value, allowing for a stable, non-rebasing unit of account. The ERC20 token is also extended with several convenience APIs, including depositSharePrice() and redemptionSharePrice() price getters, for converting the shares amounts to a currency value using one of the two tick valuation approaches discussed in the Deposit Flow section.

Tokenized ERC20 deposits can be used with other protocols in DeFi, such as automated market makers, lending protocols, etc.

See the ERC20DepositTokenImplementation contract for more information and the exposed API.

Last updated