Buddle is a simple protocol for bridging assets across layer2 chains. It serves as a quick bridge to receive tokens in your desired chain almost instantly. Once you deposit an approved token into the Source contract on a chain (specifying the desired destination chain and address), a liquidity provider provides your funds to you on your desired destination chain and address almost instantaneously, for an LP fee. This fee is higher if the LP provides funds closer to the startTime of the transfer and keeps dropping until a certain threshold is reached, where the fee becomes constant. The liquidity provider bears the burden of proof of correct transfer and also the wait until funds are bridged from the source. We intend to use this protocol as a base to build cross chain defi products such as cross chain lending or cross chain swaps. For more on the protocol, see @vitalik's proposal —

Buddle showcase

How it's made

The core of the protocol is three contracts — BuddleSource, BuddleBridge, and BuddleDestination. Every supported chain creates three contracts that inherit these base contracts. Using the chain's official cross domain messaging, the Bridge communicates with the Source and Destination to confirm a ticket and approve a state root, respectively. The Source and the Bridge also use the chain's standard bridges to bridge funds across the chains to reward the ticket creator or to pay back the liquidity provider, respectively. Finally, The Graph is used to index events emitted by our contracts so users may play the different roles of normal user, bounty seeker, and liquidity provider on our platform. You can see our contracts here —