2.1.2 • Public • Published

    NPM Package


    The smart contracts powering blockimmo

    Built on the Ethereum blockchain, Solidity, and OpenZeppelin:

    NOTE: New to smart contract development? Check OpenZeppelin's introductory guide.

    Getting Started

    blockimmo integrates with Truffle.

    Installing blockimmo-contracts

    After installing Truffle, to install the blockimmo platform smart contracts, run the following in your Solidity project root directory:

    cd blockimmo-contracts
    npm i
    sh scripts/test.sh

    Smart contracts

    Contract Version Description
    LandRegistry v1.0.0 A minimal, simple database mapping properties to their on-chain representation (TokenizedProperty).
    LandRegistryProxy v1.0.0 Points to LandRegistry, enabling it to be upgraded if absolutely necessary.
    Whitelist v1.0.0 A minimal, simple database mapping public addresses (ie users) to their permissions.
    WhitelistProxy v1.0.0 Points to Whitelist, enabling it to be upgraded if absolutely necessary.
    TokenizedProperty v1.0.0 An asset-backed token (a property as identified by its E-GRID (a UUID) in the (Swiss) land registry).
    DividendDistributingToken v1.0.0 An ERC20-compliant token that distributes any Ether it receives to its token holders proportionate to their share.
    ShareholderDAO v1.0.0 A simple DAO attached to a TokenizedProperty (ownership of the property is transferred to this).
    TokenSale v1.0.0 Distribute tokens to investors in exchange for Ether.


    Unit test are critical to the blockimmo platform. They help ensure code quality and mitigate against security vulnerabilities. The directory structure within the /tests directory corresponds to the /contracts directory. blockimmo uses Mocha’s JavaScript testing framework and Chai’s assertion library. To learn more about how to tests are structured, please reference OpenZeppelin’s Testing Guide.

    Testing notes

    Some of our contracts rely on the addresses of the deployed LandRegistryProxy, Medianizer, and WhitelistProxy smart contracts. These addresses differ between testing, Ropsten, and Main net. Comments in our smart contracts indicate which addresses must be used for each kind of deployment.


    blockimmo is meant to provide a secure, tested, and audited platform for real-estate.

    We follow the core development principles and strategies that OpenZeppelin is based on including: security in depth, simple and modular code, clarity-driven naming conventions, comprehensive unit testing, pre-and-post-condition sanity checks, code consistency, and regular audits.

    If you find a security issue, please make an issue at our HackerOne page.

    Other docs


    Copyright (c) 2018 blockimmo AG license@blockimmo.ch




    npm i @blockimmo/contracts

    DownloadsWeekly Downloads






    Unpacked Size

    45.2 kB

    Total Files


    Last publish


    • blockimmo