Intercoin Defi: CommunityContract

Qbix and Intercoin were founded to help build web-based online communities, and secure them with crypto, respectively. As our investor presentation explains, once you have a social network, you can roll out a payment network on top of it. But crypto can power a lot more than secure payments; it can also power secure elections, governance, and analytics.

The CommunityContract is a smart contract that provides a standard interface for managing who belongs to a community, and what roles they have. Other contracts, such as VotingContract (elections) and ControlContract (management) rely on this contract to handle the above concerns.

Currently, the CommunityContract supports a hierarchical model, where an owner can add and remove admins, who can add and remove members. However, other roles and permissions can be defined by owners. In general the interface is below:

addRoles([role], [members])
removeRoles([roles], [members]);
getRoles(member) // member optional, all members have "member" role
getMembers(role) // role optional
memberCount(role) // role optional

// owners only:
createRole(role, displayName)
canManage(role1, role2) // add and remove role

Members are represented in a pseudonymous way by their Ethereum wallet addresses, and can themselves be either real users or smart contracts. For example, the owner of a CommunityContract can actually be an instance of ControlContract that is managed, say, by 5 admins together, and any action taken by the owner account would have to be endorsed by at least 3 admins before it takes effect.

This is a very general-purpose implementation, that nevertheless implements a basic community that can be used by other smart contracts, either built by us or someone else.

Besides the technology, there are also social, economic and legal aspects to think about when rolling out community currencies and universal basic income. That is what we all discuss in the Intercoin community.


Crypto or blockchain can do so much more and it is important to spread awareness of all the possibilities and opportunities we have on hand to help solve existing issues on our society.