Simulation of reward tokens in a DAO. Employs agent-based models (ABM) and discrete-time Markov random fields.
Switch branches/tags
Nothing to show
Clone or download
Latest commit 5e8c60e Oct 8, 2018

Simulating an Organizational Economy


This is a multi-agent simulator for token mechanisms in decentralized organizations. Use this to simulate your own token-based societies!

Built out of a project for scientifically evaluating an organizational incentive schemes, this simulation demonstrates the behaviour of a decentralized autonmous economy over time. The system is akin to those occuring in statistical mechanics and is modelled as a discrete-time Markov chain.

Read my paper on Decentralized Organizations as Multi-Agent Systems

Cryptosystems Simulation Workshop

Ahoj Ethereum developers!


Make sure you have Python 3. You can download the latest version here -

Install Mesa

Install Mesa on Python 3:

$ pip3 install mesa


Install all dependencies either manually or by using

$ pip3 install -r requirements.txt


Clone this repository.

$ git clone

On Terminal or Command Prompt, cd into the main directory for this repository.

If you want to follow the workshop, see Token Engineering. If you want to skip ahead and run the code, go to Run/

Token Engineering

In the token enginerring design process, you will define your token economy as an optimization problem, mathematically model it, and then validate it using this multi-agent simulation.

πŸš€ Objective πŸš€

Define the goal of your token economy. Think long-term.

A simple token economy aims to either maximize or minimize one parameter or function. The objective funtion is also known as the fitness function or utility function.

In this example, I want my token to incentivize human agents to contribute in projects. So, I could define my objective function as:

Maximize f(x) = Total number of human agents participating in a project in each iteration

🌐 Domain 🌐

In this example, the domain is a single organization/company with a fixed number of agents.

Domain: A single DAO with 10x10 participants

πŸ‘« System agents/players πŸ‘«

The agents of the system constitute of all the parties that can transact with one another.

In this example, the agents of this economy are members of the DAO.

Agents: Members of the DAO

The agents certainly have some properties associated with them. At this point, you may have uncovered some of them.

In this example, the agents have the following known properties -


πŸ•‘ System clock πŸ•‘

The clock is defined as the smallest period in which the objective function/parameter changes. The period should be repeatable.

In this example, the period is the granular unit in which a full project cycle can be completed i.e. the project can be posted, agents can opt in to it, complete it, and get rewarded.

πŸ‘Œ Assumptions πŸ‘Œ

There are always some unknowns in any system. Although not measured or verified, we may have a rough idea of what these unknowns could be. These will be defined as assumptions.

βš“οΈ Constraints βš“οΈ

➑️ Input parameters ➑️

πŸ”° Starting mechanism πŸ”°


Navigate into the cloned repo folder

$ cd Simulating-an-Economy-ABM

And run

$ python3


The server should host it on

🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁


Star this repo if you found this model useful. Reach out to me if you'd like to collaborate.