Scaling blockchain networks is a well-known pressing issue. It’s a familiar story: you want to send a transaction, but would rather wait for gas fees to come down from Mars. As solutions like rollups and bridges arrive on the scene, we wanted to create a solution that allows users to directly move ERC721 tokens across EVM-compatible chains.
The existing solutions are few, restrictive, or have a steep learning curve with regard to technical capabilities. We saw an opportunity with enormous growth potential. By building the infrastructure to allow users to freely transfer NFTs across chains inexpensively, we can help grow communities on other chains, lower barriers to minting and sending NFTs, and bring ecosystems closer together.
Enter Pooch: A simple, fun interface for NFT creators, investors, and enthusiasts to transfer their NFTs across blockchains.
Pooch is an easy and unintimidating way for users to transfer NFTs and leverage the performance capabilities of different networks. NFTs could be minted cheaply on networks with greater TPS or faster finality, and then transferred cheaply to Ethereum, where most of the action with NFTs is taking place. For dapps, adding bridges may serve as a user acquisition strategy on steroids, by being a nexus that captures organic engagement between chains.
Our NFTs are like our pooches; they’re much too cute to be left on our home chains.
Medium article: https://medium.com/pooch-blog/introducing-pooch-a-cross-chain-nft-bridge-dc118798b416
Figma mockups: https://www.figma.com/file/sHFKPq8tplQHMtAnYBVUuu/Pooch-NFTHack-2021
Slide deck: https://docs.google.com/presentation/d/1SmtEfZ1t00UrvWCmv2KrTO9VaqrUTFe5ZrUx32Y1KiE/edit?usp=sharing
Pooch is designed to be compatible with any blockchain that has implemented ChainBridge's ERC721 handler. The initial demo connects Ethereum's Görli and Kotti testnets, but the interface is designed to be arbitrarily composable, connecting with any ChainBridge implementation with a few minor tweaks.
Pooch is an open source React app that enables easy cross-chain ERC-721 transfers. In the current iteration of Pooch, we used IPFS to host NFTs made by our team as part of the hackathon demonstration.
A user locks up the NFT they plan to send in the ChainBridge contract on the origin chain. The user also needs to input the destination chain (where the NFT will be sent). The deposit function of the ChainBridge handler contract is called, which validates the parameters provided by the user, creating an execution record on the corresponding call of the target contract.
Once the NFT is in the bridge contract, the bridge relayer triggers the contract on the destination chain to mint an identical NFT to the wallet address that the user specified. ChainBridge functionality is two-way, which means that a user can transfer NFTs from one chain to another, and back again (if they so desire).
To send it back to the origin chain, the bridge contract burns the NFT and transfers ownership of the NFT back to the address that the user specified.