## Contracts In the [Requirements](./requirements.md) section, we identified the following smart contracts: 1. Reputation 1. Bench 1. Work 1. Proposal 1. Forum 1. Rollup We also identified the need for a mechanism for coordinating Rollup Post validation. The following are reasons to submit a particular Post on-chain: - To conduct an on-chain Validation Pool tarageting that Post - To enable other Posts to reference the given Post. Rather than submit every Post on-chain and conduct every Validation Pool on-chain, it is more efficient to keep a collection of Posts off-chain, and add a single Post on-chain representing multiple off-chain Posts. We call this a Rollup Post. With this Rollup Post, we have the opportunity to attribute credit to multiple authors, with a weight assigned to each author. We can express this weight as Parts Per Million (PPM), for a balance between numerical precision, and ease of visual recognition. The Rollup Post can weight authorship in accordance with the off-chain Validation Pools that have taken place. The off-chain system can fully model the Forum and Bench outlined in the [Requirements](./requirements.md) section. For demonstration purposes, our prototype makes some simplifying assumptions. Work Evidence Posts (WEV) are assumed to contain no references to prior Posts. In reality, we want WEV to be able to reference prior Posts, such as those representing policies of the DAO, prior work by other DAO members, prior art outside the DAO, and so on. So, a proper implementation of this system should account for these references, just as the Forum contract must. ## Matrix To address the need for coordination of off-chain Posts and Validation Pools, we introduce Matrix. [Matrix](matrix.org) is a messaging protocol, and it has multiple implementations. Our prototype uses Synapse as the Homeserver. Our system communicates with the Homeserver using the Client-Server protocol.