Synonym is a cross-chain borrow and lend protocol, using a Hub and Spoke model.

Users can deposit assets into the protocol. They can also borrow assets from the protocol, using the assets that they have deposited as collateral. The protocol keeps track of the amount of each asset a user has deposited, and the amount of each asset a user has borrowed. We will often refer to a user’s deposited and borrowed assets in the protocol as their ‘vault’.

Users can also repay assets (returning some or all of their borrowed assets) and withdraw assets (retaking some or all of their deposited assets).

Users can also liquidate other users if the other user’s borrowed assets are worth more than their deposited assets. We use Pyth prices to determine value of assets.

We store all state and protocol liquidity on the Hub, and have a Spoke contract deployed on different chains; this way users on any supported chain can perform the deposit, borrow, withdraw, and repay actions through the corresponding Spoke contract.

Users that wish to perform actions on the same chain as the Hub can simply call functions on the Hub.

The cross-chain functionality is enabled by Wormhole - allowing us to publish payloads/transfers from our Spoke on the source chain, have them relayed via off-chain infra (or guardians), and receive these payloads/transfers on our Hub on the destination chain. Of course, the contracts are registered on both ends for sending/receiving from verified sources.

GitHub repository


Last updated