We have developed a library aimed at developers to allow them to easily integrate applications with off-chain components. This innovative standard aims to open new possibilities in terms of applications and infrastructure. In order to demonstrate its effectiveness, we have developed a use case integrating two applications that would normally be difficult to integrate without specific developments for this use case. An NFT lending protocol and a marketplace, allowing a user to buy an NFT in installement.
We have deployed and integrated zkSync testnet in order to make this library available and participate in the development of the ecosystem on this new L2.
We have deployed the library on Base Testnet in order to make available to its community of developers this new standard allowing to greatly improve the composability of applications of its ecosystem and the development of new innovative use cases. Composooor can participate in a composability-based development of this promising new L2. => https://goerli.basescan.org/address/0x43b949724b56fd72F0Ad55d65685b7bD2F05800D#code
We have deployed the library on Polygon Mainnet in order to make available to its community of developers this new standard allowing to greatly improve the composability of applications of its ecosystem and the development of new innovative use cases. => https://polygonscan.com/address/0x7165305088dfc6961937fc9bf16600373a01c5ea#code
We have deployed the library on Aurora Testnet in order to make available to its community of developers this new standard allowing to greatly improve the composability of applications of its ecosystem and the development of new innovative use cases. => https://explorer.testnet.aurora.dev/address/0x7165305088dfC6961937fc9BF16600373A01C5eA/contracts#address-tabs
We have deployed the library on Mantle Testnet in order to make available to its community of developers this new standard allowing to greatly improve the composability of applications of its ecosystem and the development of new innovative use cases. => https://explorer.testnet.mantle.xyz/address/0x7165305088dfC6961937fc9BF16600373A01C5eA/contracts#address-tabs
We have developed two ways to integrate the logic of the library, one of them using Snaps. We integrated directly the logic of the library through a Snaps to make its use easier for the developer who does not need to integrate it in the front-end when using Composooor. NFT's installment plan demo works with Matamask Snaps. => https://www.npmjs.com/package/@composooor/snap => https://www.npmjs.com/package/@composooor/composooor
We have deployed the library on Scroll Testnet in order to make available to its community of developers this new standard allowing to greatly improve the composability of applications of its ecosystem and the development of new innovative use cases. => https://blockscout.scroll.io/address/0x7165305088dfC6961937fc9BF16600373A01C5eA/contracts#address-tabs
Most modern dApps are reliant on off chain data/computation to function.
OpenSea needs seller/buyer signatures to execute transfers.
Blur is the same.
Kairos Loan needs signatures of loan offers to provide liquidity against NFTs.
NFTfi is the same.
Uniswap needs an api to figurate the best route for a trade.
It's the same for aggregators such as 1inch/Paraswap/LLamaSwap, etc.
You need a merkle proof to claim your farmed Morpho tokens.
It's the same for all airdrops.
Developing a smart contract using those systems just won't work, as EVM can only access onchain ressources. DeFi effectively evolved to an incomposable state. Worse than this, developers often don't ever try to build some projects as blockchains and rollups are limited in the data and computation they can handle. What is there was a way to let the blockchain only check validity of actions and offload all heavy storage and computation offchain in a composable way? This would enable composability:
Contract access to unlimited storage.
Contract access to unlimited computation & solutions to optimization problems.
Meet Composooor. Composoor is a front-end and smart-contract library made to build hybrid on & off chain composable apps. Building a smart contract that must interact with an hybrid app (e.g OpenSea)? A one-line import of the corresponding composooor adapter does the trick (example). Want to leverage offchain power inside your smart contract without breaking composability? One line import of Composooor register. Need a front-end for all that? One line import of useComposooor.
Composooor design is based on a standardized way for smart contracts to signal missing data that should come from an off chain ressource at transaction-preparation time.
When preparing a transaction, our MetaMask snap wallet will request an estimate gas call on the desired on chain contract.
If the contract needs some data or computation made off chain to function, it will revert with a standardized error containing specs on how to find this missing data.
The wallet can then decode this error and finds the missing data either by fetching it on a decentralized protocol, or on an API, or by executing some code it fetched from this sources to produce it.
The wallet will then estimate gas again, this time adding an instruction to store the fetched data in the standardized registry of the corresponding contract before calling the desired method.
In the transaction execution the same or another contract may need another off chain ressource to function. If it's the case, the wallet loops on the transaction preparation steps until no offchain ressource is needed anymore.
When the gas estimation is successful, the user is prompted with the signature of the prepared transaction, to execute successfully with all necessary ressources included.
=> More infos: https://github.com/kairos-loan/composooor/blob/main/README.md