Description

Contractlist is a Tooling project which can be used to access information of latest smart contract addresses of various projects and protocols. As smart contract developers, there often arises a need to know about the address of some other contracts in order to make an integration with other DApps and Protocols. It demands that we lookup their documentation to find the list of deployed contracts. But this is usually time-consuming and sometimes frustrating in nature as this is a difficult path. There is a need for a unified platform which can be used by anyone to find the latest set of contracts and their addresses. This was the inspiration behind Contractlist. Contractlist provides this data in 3 different ways. First of all, there is a web app, whose UI is a fork of Chainlist. The web app can be used to lookup projects and view their contract addresses instantly. Secondly we provide a free API for developers to easily access and query addresses of specific contracts. And finally we provide a data feed, intended to enable other smart contracts to access data from Contractlist. The data feed smart contract acts as an intermediary between our own API and other smart contracts, which can request the address of another contract from our intermediary smart contract. For eg, a smart contract which has a Uniswap integration can use our data feed to obtain the latest contract addresses of Uniswap, without it having to be hardcoded or manually updated.

Contractlist showcase

How it's made

We built the web app by forking the UI of Chainlist. We also modified it to make it suitable to our specification. We manually collected smart contract addresses of various projects and used it as our source of data. The front-end was made possible with Next.js and we've deployed it on Vercel. Then we completed the API endpoint, which was done using NextApiRequests. We developed an intermediary contract for providing data feed and deployed the contract on the Polygon Mumbai Testnet. The intermediary contract makes API calls to the Contractlist API, using the Chainlink API calls and uses a Chainlink Oracle to obtain the address that has been requested through our data feed. We take pride in having been able to integrate all these and this was the first time we were successfully trying out Chainlink API Calls and we found it to be pretty interesting. We're also delighted that we could build a project that would be handy for developers and honestly, we've always felt the need for such a service.