Introducing SmartRPA
Neighbor to Neighbor Real Estate Transactions
Selling a home can be a lot of fun. Selling a home can be a lot of not fun as well. Often, the difference is the ability of the most interested parties (Buyer and Seller) to know what is going on, and where they stand.
So, how can we improve the odds they know those things?
Well, as a ERC-721 Non-Fungible Token contract, SmartRPA enables secure transparency for both the Homeowner (Seller) and Potential Buyers by integrating Chainlink time enforcement (Alarm Clock) with the trust of blockchain and existing document management systems (e.g. DocuSign).
That’s a lot of words, let’s take a step back..
Motivation
Initially, I hoped to solve the below market rate (BMR) issue for the City of Dublin, CA. In 2018 I hosted a BRM open house, and each day, over 200 people showed up.
BRM properties are price controlled, and intended to be fairly distributed to low income individuals or families in the area. For example, the BMR I hosted was listed around $250,000 while the exact same unit next door was listed around $650,000.
The issue is some people are good at presenting their case, some people are not good at presenting their case, a boatload of people are qualified, and the listing agent more or less has complete control over who actually gets selected.
My solution was to build a end-to-end offer lottery so that everyone who was qualified and ready to go had a fair shot. That was a bit much for 2 weeks, so we built the base, SmartRPA.
What it does
SmartRPA provides an on-chain listing service for Homeowners (or their Agents) to offer their real estate to the crypto community in a transparent yet secure way, without having to change anything.
Basically this means anyone can see vague details about submitted offers, the status of the listing, and where they stand.
How it Works
It’s really quite simple.
- A Seller posts their listing on-chain by deploying a SmartRPA.
- Potential Buyers submit the URL of their offer, and the number of days the Seller has to respond.
- Each Potential Buyers’ submission returns them a unique SRPA token that’s linked to their offer. They can use this to check its status.
- Once an offer is submitted, a Chainlink Alarm Clock is started with a clause check to see if it was responded to within the offer’s time limit.
- If it was not responded to, or the offer was rejected, that offer’s SRPA token is burned (transferring ownership from the Potential Buyer to no one) as the offer is no longer active.
- If it was, a similar timer is started either for the Counter Offer’s expiration or for the Close of Escrow, and the token’s offer URL becomes the SmartRPA’s offer URL.
At any point, the Seller can see how many offers they have, when each expires, and securely access them through familiar standards.
Listing on-chain also facilitates the use of cryptocurrencies or other digital assets as payment.
Demo
Live Demo
Submit an offer: https://nevada-smart-rpa.herokuapp.com/
Video
Future Direction
This project is intended to serve a boilerplate template for peer-to-peer real estate in general. A few ideas;
- Below market rate (BMR) lottery for the City of Dublin, CA to ensure fairness in the past-max-capacity processing of qualified BMR applicants
- Neighbor to neighbor real estate rentals, leveraging DeFi insurance or staking in place of overlords (think AirBnb without AirBnb)
Interested in joining the team? Come help solve an issue or open a PR.
Getting Started
git clone https://github.com/gumdropsteve/nevada-smart-rpacd nevada-smart-rpanpm installtruffle compiletruffle migrate --reset --network rinkeby -f 2truffle run verify SmartRPA --network rinkeby --license MIT
Front end: https://github.com/eserilev/smart-rpa-frontend
Using Testnets
What is a testnet?
Since Ethereum is a protocol, this means there can be multiple independent “networks” conforming to this protocol that do not interact with each other.
Mainnet is the primary public Ethereum production blockchain, where actual-value transactions occur on the distributed ledger. When people and exchanges discuss ETH prices, they’re talking about mainnet ETH.In addition to mainnet, there are public testnets. These are networks used by protocol developers or smart contract developers to test both protocol upgrades as well as potential smart contracts in a production-like environment before deployment to mainnet. Think of this as an analog to production versus staging servers.
To deploy and then interact with the contract, you’ll need testnet LINK and testnet ETH tokens. We used the Rinkeby testnet, which means those tokens will need to come from Rinkeby faucets.
LINK tokens are used to pay node operators for retrieving data for smart contracts and also for deposits placed by node operators as required by contract creators.