Legend

For the sake of the audit process, we define a legend that displays the completion status of each component in our architecture.

EVM Protocol Architecture (3).png

Complete Protocol Overview

In its completed state, the protocol aims to be chain-agnostic. This means that from a frontend perspective, incoming assets may be bridged from any supported chain using the Li.Fi router, and the returned assets may be bridged back out using our LayerZero OFT implementation. Shown below is a chart that displays the planned final architecture in its entirety. The bulk of the contracts are completed, but some cross-chain functionality is not yet implemented, thus the in-progress status is displayed on most contracts.

image.png

Smart Contract Overview

As shown above, our smart contracts are primarily deployed on Base, with some auxiliary contracts deployed on other L2s, namely the token contracts and the distributor, allowing people to transfer their derivatives and claim their owed coupons on other chains. Below is a list of the contracts found on Base and a couple sentences describing the purpose of each one.

Plaza Core

Pool: The core contract for the protocol. The pool holds all of the underlying assets for a particular set of derivative and handles the issuance and burn of all derivatives pertaining to its particular strategy. Our first product is a wstETH pool that splits the total return of wstETH into two products targeted at different investor profiles:

Auction:: Auction for contributing USDC to the protocol in exchange for underlying pool assets. This is done as a mechanism to prevent having to swap large amounts of the reserve tokens for USDC in a single transaction on a dex, which would result in large slippage

Distributor: The contract that contains the coupons available for claiming. For our initial bondETH product, every quarter, after an Auction concludes for a distribution period (sells the required amount of wstETH for USDC), the USDC is then sent to the distributor and is ready for claiming by the bond holders.

bondERC20: The bond token for the protocol is an extension of regular ERC20s that contains custom checkpointing logic for tracking the balances that a user has at each period. This allows for distributions to have a time complexity of O(1) and claims to be at O(n) with n increasing only once a quarter. If a user doesn’t claim their coupons from previous periods, and transfers their tokens, they are still eligible to claim the coupons from the unclaimed periods. The logic extension tracks historical balances and retains information about outstanding claims.

levERC20: The leverage token is a default ERC20 with no extra capabilities. The leverage is demonstrated by the amount of underlying token redeemable for the levERC20. The pool dictates the worth of the token based on the price movement of the underlying asset using a conditional AMM curve.

PoolFactory: Creates pools and initializes them with the desired parameters.

Plaza Periphery (out of the scope of Sherlock Audit)

Router Adapter: Contract used by Li.Fi and LayerZero as an entry point into the pool for users who require a swap or bridge to deposit the required pool asset on the required chain, Base. These call the create, redeem, and swap functions in the pool on behalf of a defined address, from which the pool outputs to the designated user.

Dependencies