The smart contracts powering blockimmo
blockimmo is a secure, simple platform for buying, selling, and investing in Swiss 🇨🇭 real-estate. By migrating specific components of the Swiss real-estate market on-chain (the Ethereum blockchain), and integrating seamlessly with the existing processes and systems powering this industry, blockimmo aims to facilitate a more accessible, streamlined market.
blockimmo’s primary use-case is the sale of commercial investment properties and the financing of development projects. These properties are usually owned by multiple parties (investors) in differing stakes (shares). A blockchain-based solution introduces the following 🔑 benefits:
✅ Property ownership can occur in small stakes
A few hundred dollars is all you need to start investing in real-estate.
✅ Investments are liquid
Property can be bought and sold on the scale of minutes.
✅ Fees are reduced by an order of magnitude
Fees are one of the most important determinants of investment performance.
✅ Accessible to the general investor
Prime investments no longer happen behind closed doors in small groups of big-shot investors, and sellers have access to a much larger audience.
Buying, selling, and investing in real-state becomes secure, simple, and transparent with blockimmo.
This is a semi-technical post and assumes the reader has a basic understanding of blockchain and smart contracts. It gives a high-level overview of blockimmo’s core smart contracts and highlights some of the design principles guiding development. Detailed documentation will be released when we open-source our contracts in the coming months. For an introductory post see:
Executive overview
The 🔴 LandRegistry
is a simple smart contract living on the Ethereum blockchain. The first step of creating a listing on blockimmo is tokenizing a property for sale (if not already on-chain). This is the process of moving a property to its on-chain representation. A 🍊 TokenizedProperty
smart contract is deployed (completely independent of LandRegistry
and other properties that already/will live on-chain) that becomes the official representation of the rights/ownership to this specific property. At this point, blockimmo initiates processes in the background to verify/validate the authenticity of this listing, and append the TokenizedProperty
to the LandRegistry
if 💯.
A 🌕 ShareholderDAO
contract is then deployed (completely independent of TokenizedProperty
), and granted control of TokenizedProperty
. It enables owners of a property to make major decisions related to the property via a de-centralized voting process.
Lastly, a 🔵 CrowdSale
contract is deployed (completely independent of TokenizedProperty
and ShareholderDAO
), and given access to the tokens to be sold. Multiple investors can now buy tokens of property (through the CrowdSale
) with ETH! The seller of the property will receive ETH, and the investors will receive tokens!
blockimmo aims to be flexible and enable an eco-system of on and off-chain services. We will go into more detail about our vision and how our technology enables this in a future post. The important thing to note is that these smart contracts are designed to be modular and plugged into by other contracts/parties. In the following sections we will briefly look into each of these contracts in a bit more detail.
The land registry — ground zero
The Swiss cadastral system (Land Register) is an immutable, append-only, public ledger (sound familiar 🤔?) recording the rights/ownership pertaining to plots of land. Each and every parcel of land in Switzerland is recorded here, indexed by it’s Grundstück Number (by canton) and E-GRID Number (a universally unique identifier). All information relevant to this land is publicly available and attainable with this number. This information is maintained by Swiss land registrars, and is easily accessible to the general public. There is no need to duplicate this information and store it on-chain.
These fundamental characteristics of the Swiss land registry make it a perfect fit for blockchain — an extremely simple smart contract can encompass this functionality. This contract has a single public state variable landRegistry
, mapping grundstückNumbers
➡️ TokenizedPropertys
. Each TokenizedProperty
is an independent smart contract that controls and manages that plot of land.
Furthermore, the Swiss land registry is partially decentralized — there is no central land registrar. Rather, the individual cantons are responsible for maintaining their land register, and the cadastral surveying is mostly done by private parties acting as public agents, providing a decentralized service.
As the blockimmo platform matures, we envision completely decentralizing this system — cadastral surveying will be commissioned and delivered/executed on-chain. This is a next step, and highlights our modular, one-step-at-a-time approach towards moving the Swiss real-estate industry/market on-chain.
Tokenizing real-estate
Let’s zoom-in on TokenizedProperty
. This is an ERC20 compliant token denominated such that ownership can occur across many parties in small stakes. This contract maps the owners
(Ethereum addresses) to the numberOfTokens
they own. Owning 50% of a property’s tokens correlates to 50% ownership of that property.
Given a property’s Grundstück Number, we can look it up in the LandRegistry
to find it’s on-chain representation — TokenizedProperty
. We can read it’s state (who owns what, etc…), and call it’s functions to execute additional functionality (to be discussed in a future posts/case-studies). Furthermore, we can view other useful information like a property’s entire transaction history to-date. Useful meta-data (i.e. information surrounding a transaction) is stored off-chain via IPFS and indexed in TokenizedProperty.
Enabling property owners to make decisions through a de-centralized voting process
A given property may have multiple owners with varying stakes of ownership. We need a solid mechanism to enable them to effectively make and execute decisions. This is accomplished by a simple ShareholderDAO
. Each ShareholderDAO
is an independent smart contract that is attached to a TokenizedProperty
. Owners of TokenizedProperty
can extendProposals
and vote
in favor or against an open Proposal
.
Any property owner can extend a proposal, and if majority consensus is reached, the proposal will be executed. An owner’s votingPower
is determined by their stake in the property (a party that owns over 50% of a property has full decision making power). ShareholderDAO
determines canExtendProposal
/canVote
/votingPower
by readingTokenizedProperty
’s state — TokenizedProperty.balanceOf.call(account)
.
A decision is usually in the form of sending ETH (goods) to a party for (off-chain) services. We will explain this further in a future post/case-study.
Distributing income
The complete management of an investment property will usually be outsourced to a professional partner active in the region the property is located. This ensures the building stays in good condition, that tenants receive excellent service, and that accounting and finances are done by a trustworthy party. In a future case-study we will demonstrate a property’s owner/ShareholderDAO
assigning management of the property to a management company.
Investment properties (both commercial and residential) generate income. In the case a property is under control of a management company, this income is routed (in ETH) to the TokenizedProperty
smart contract on a quarterly basis (without a management company tenants would be required to pay the TokenizedProperty
smart contract directly, in ETH). This income is used to pay any of the property’s expenses (as determined by ShareholderDAO
and/or the management company), and the remaining funds are automatically distributed to the property’s owners (according to their stake). The behavior is similar to dividend payouts.
Crowd-sale
An investment property will usually be sold via crowd-sale. A crowd-sale is an ideal mechanism for exchanging tokens of property (or any digital asset) for ETH. A TokenSale
is an independent smart contract that a seller attaches to the TokenizedProperty
(giving TokenSale
access to their tokens). The behavior is then the same as a normal crowd-sale (i.e. an ICO). A TokenSale
is configurable by the seller (i.e. startTime
, endTime
, goal
, etc…), but the end result is investors receive rights/ownership of property (tokens), and the seller receives ETH.
Final remarks
In this post we presented a simplified view of the suite of smart contracts powering blockimmo. In future posts/case-studies we will go into more detail — especially when we open source our contracts. These contracts are abstracted from a user’s-perspective with a clean and intuitive UI/UX. A user only needs to sign/verify blockchain transactions (via MetaMask, and uPort for 2FA):
Furthermore, there are legal and regulatory processes/workflows that occur in parallel/asynchronously to our smart contracts/ÐApp. We are partnered with a strong legal company to ensure these are executed correctly and smoothly.
blockimmo is located in Zug, Switzerland. We are looking for solid software engineers to join us. Please reach out if interested!