/chainlink21

HomeFi - Tap into the equity of your home using chainlink

Primary LanguageCSSMIT LicenseMIT


HomeFi

Tap into the equity of your home using Chainlink, IPFS, and NFT's.

Built for the Chainlink 2021 Fall hackathon.

What it does

HomeFi uses Chainlink and a combination of web3 services to administer and deploy smart contracts that represent home equity lines of credit.

Users can create the terms of the fundraise and allow others to deposit to it. Proof of ownership, such as a title or deed, is uploaded on HomeFi during the listing process. The app then collects the user's signature and uploads it as an image file to the IPFS folder for the property. After upload, prospective buyers/participants (up to the limit specified by the issuer) can discover previously-created listings and purchase units of ownership using attachments to the NFT metadata source of truth.

Each property gets deployed as its own smart contract. With the price/appraised value of the property fixed to the contract.

Note this app is a prototype and would need additional work to be production ready.

Requirements

HomeFi has the following environment variables for interfacing with core blockchain services:

    REACT_APP_NFT_PORT_KEY=XXX # your nftport.xyz api key
    REACT_APP_STORAGE_KEY=XXX  # your web3.storage api key
    REACT_APP_MORALIS_ID=XXX # your moralis app id
    REACT_APP_MORALIS_SERVER=XXX # your moralis server id
    REACT_APP_ALCHEMY_KEY=XXX # your network-specific alchemy key

Sponsors: Chainlink: Each listed property is deployed as its own distinct smart contract. The smart contract maintains the owner and listing terms, as well as all the payers. A chainlink API call is made to fetch information ( appraise value, lat/lng location) dynamically about the property and save it to each contract. Moralis: Distributed mutable data storage for the marketplace metadata. Each contract/deployment is saved to a Moralis location. Moralis also facilitates app authentication. IPFS / Filecoin: Store property files, any signatures, and proof of ownership (ex: deed/title documents). NFTPort: NFT issuance for the issued real estate backed NFT (minting). The NFT is created at the time of contract creation. Alchemy: Maintains app high availability and serves app requests for the demo (could be updated to serve a production deployment). SmartZip: At or near the time of deployment, the property could be appraised. The smartzip oracle is integrated into the smart contract and can be (optionally) invoked to set the smartZipEstimate on the contract itself to track the property's value.

Running the app

Define the above environment variables and run:

yarn && yarn start

By default, the app is configured for blockchain interactions against the rinkeby eth testnet.

Screenshots

Home page and login

Creating a new listing

Signature is collected from the uploader

Completed upload

Uploaded IPFS content (deed and signature)

NFT created on upload

Once listed, property is available or search

Alchemy app serves chain requests

Moralis DB backs up all uploaded listings

Chainlink does lookup of property value and confirms location

SmartZip invocable contract method

-->

Future work

Useful links