Arcade Protocol Architecture
The Arcade Protocol is a set of smart contracts deployed on the Ethereum blockchain that facilitates trustless peer to peer borrowing, lending, and escrow of NFT assets.
The Arcade.xyz application is built on top of the Arcade Protocol. The Protocol facilitates off-chain negotiation, on-chain settlement for loans collateralized by an Arcade Vault or single NFTs.
The Asset Vault is a holding contract that functions as a safe storage mechanism for multiple assets. Asset Vault contracts could hold any or all of ETH, ERC20s, ERC721, ERC1155, and/or CryptoPunks.
The Asset Vault as a referential asset that the asset holder (borrower) mints, deposits assets into, and can optionally set loan terms on. Lenders can either match these terms or make an offer on an Arcade Vault.
Actors in the Arcade Protocol
- Asset Vault Owners
- NFT Owners
- Borrower Note Holders
- Lender Note Holders
Borrowers and lenders convene on the Arcade.xyz application to negotiate terms of loans and settle transactions.
A hypothetical example of end to end loan flow up to settlement proceeds as follows:
- Arcade users can create/mint a Vault on app.arcade.xyz, obtaining a bona fide ERC721 representing the vault in the process.
- The Arcade user (now: Vault owner!) can deposit assets into their Vault - any or all of ETH, ERC20s, ERC721, ERC1155, and/or CryptoPunks. All Vaults are open to offers from lenders.
- The Vault owner can set terms on a Vault - specifying a funding currency (ERC20 token) at a specific duration and interest rate, signing a structured payload transaction for the terms (see EIP-712).
- Lenders can match those terms and initiate the loan at the terms set by the Vault owner. Lenders can also make offers on any borrower's Arcade Vault.
- Vault Owners can accept a lender's offer and initiate the loan.
Trustless, Secure Escrow
Continuing with the hypothetical loan flow, when a lender is ready to fulfill a loan request they observe on app.arcade.xyz, they can do so via MetaMask, trustlessly at any time as long as the request is still unmatched.
When the lender is ready to lend, they simply Sign Terms on a borrower's vault on the Arcade.xyz app and are prompted to:
- Sign the structured payload representing the loan terms (EIP-712 implementation) in MetaMask.
- Approve the spending transaction for the funding amount and currency associated with the loan.
- Approve the transaction that initializes the loan, disbursing funding proceeds to the borrower address, a borrower note to the borrower (NFT), a lender note to the lender (NFT).
- When the transaction to start a loan is minted, the Arcade Vault will at that point be "escrowed" in the Arcade Protocol core contract and will only be retrievable under two scenarios: loan payoff or default.
Updated 6 months ago