# Contractooor: An On-Chain Contracting Platform for DAOs DAOs have recognized their need to obtain professional services -- legal, accounting, tax, risk management, design, marketing and others -- to achieve their aims. Currently DAOs source traditional service providers, spend time explaining the context of DAOs and smart contracts, negotiate terms in an off-chain legal agreement and then pay a fixed amount when services are rendered. This process is slow, inefficient and opaque. We propose to create a platform for private, on-chain contract creation between DAOs and DAO service providers ("SPs") that cuts legal costs and time, automatically starts streaming compensation when the agreement is executed by the parties, and allows for on-chain termination per the terms of the agreement. ## Rationale Contractooor is designed to facilitate the needs of DAOs and SPs. DAOs need services that can integrate smoothly with their on-chain operations and processes. SPs want to find DAO customers, enter fair services agreements and get paid reliably. Some SPs may wish to be compensated partially or wholly by receiving upside in their DAO customers' fortunes, rather than billing the same hourly fees regardless of whether they helped their customers achieve their strategic goals. Contract lawyers are expensive in both time and money, and many lack the necessary context to understand how DAOs operate and how best to structure the terms of agreements to suit the environment where these agreements will be performed. Contractooor is designed to disintermediate lawyers during the contract negotiation phase and the judicial system during the performance and termination of agreements. It protects parties through on-chain automatic performance of the contract's terms and avails the parties of on-chain termination remedies to protect their interests when things don't go as planned. ## Components * A smart contract allowing parties to send contract offers and counterproposals signed with their treasury wallet private keys * ERC1155 factory that mints a contract NFT when an offer is accepted * A smart contract that executes signed contracts by streaming the agreed upon compensation, and that allows on-chain termination and automatic dispute referral to an on-chain arbitrator like Kleros * A repo of template contract terms stored on IPFS or Arweave from which to assemble contract drafts * Ability to write custom terms to storage, viewable when a draft is proposed to the other party * A front end containing * a contract manager tool, showing the connected wallet's DAO's draft, live and terminated contracts * a contract drafting wizard that allows a party to assemble, propose, review, counter and accept a binding contract offer * a simple distillation of each contract's key terms * an interface for taking actions on live or terminated contracts, including submitting notices of material breach and cure, seeking termination under the contract terms and filing for arbitration. ## Benefits * Reduced legal fees * Negotiations gated to treasury signatories * Contract transparency for DAOs * Automatic payment * On-chain termination * Emergence of standard well-understood contracts ## Initial Use Case The initial implementation will be designed for perpetual DAO services, such as accounting or risk management, where the services are performed over time. In such cases repetitive periodic payments create admin overhead, are prone to delays, and refusal to pay can act as a kind of undesirable stealth termination. ## Example User Story 1: Contract Formation and Execution >AccountingDAO is comprised of CPAs that are willing to offer ongoing accounting services to DAOs. > >InvestmentDAO is a DAO that makes capital investments in early stage companies. It tweets that it is looking for particular accounting services and registers on the Contractooor front end. > >AccountingDAO visits the Contractooor front end, and registers itself as a services provider. It then submits a statement of work describing the specific services it wishes to offer InvestmentDAO and works through the contract creation wizard to generate a draft agreement. It proposes to be paid 1,000 InvestmentDAO tokens per month, streamed on Sablier and continuing indefinitely until particular termination conditions are met, with Kleros designated as a dispute arbitrator. It then makes a legal offer by signing with its treasury wallet and identifying InvestmentDAO's treasury wallet as the party that may accept the offer. It transfers 50% of the Kleros bond amount to an escrow contract that will be returned to the parties 30 days after the contract is terminated without a request for arbitration. > >InvestmentDAO receives and reviews AccountingDAO's offer, decides that it wishes to counteroffer 800 InvestmentDAO tokens per month, with a one year automatic termination after which the parties are free to negotiate a new agreement. It transfers 9,600 InvestmentDAO tokens into a Sablier stream that will start upon contract acceptance, and the other 50% of the Kleros bond into the escrow contract. It signs the counteroffer with its treasury wallet and sends the counter to AccountingDAO. > >AccountingDAO reviews the counter and accepts the revised terms by signing with its wallet, creating a legal contract between the parties. > >Upon acceptance, the contract automatically executes its payment terms by starting a Sablier stream that vests 800 tokens to AccountingDAO per month. ## Example User Story 2: Termination and Arbitration >After six months of normal contract performance by AccountingDAO, the principal contact retires and the services cease being provided. InvestmentDAO tries to get services restored by a suitable replacement but AccountingDAO is unresponsive. > > InvestmentDAO submits a notice of material breach transaction from the Contractooor front end, adding encrypted text explaining the deficiencies. This triggers a 30-day period for AccountingDAO to file a sufficient notice of cure explaining how they've remedied the breach. > > After 30 days elapse without AccountingDAO submitting a cure notice, InvestmentDAO calls Terminate Agreement from the Contractooor front end, which ends the Sablier stream and returns the unvested tokens back to InvestmentDAO. > > One week later, AccountingDAO submits a request for arbitration to Kleros, and stating that because enough multisig signers weren't available to submit the cure notice onchain, it sent a cure notice by snail mail to a member of InvestmentDAO and asking that the contract be restored. > > Kleros empanels a jury, gathers and reviews the evidence and finds that the termination was justified, denying AccountingDAO's request. ## Team This proposal is being spearheaded by Victor Rortvedt from MetaCartel Ventures DAO and HydraDAO, earth2travis from Raid Guild and Colin Nielsen. ## Funding Requirements We want to raise $40,000 in grants to build this platform as an open public good available to DAOs and DAO spervice providers. ## Work to Date * [Miro board](https://miro.com/app/board/uXjVP3rNkKQ=/?share_link_id=41813407305) * [DRAFT - DAO Service Provider contract template](https://docs.google.com/document/d/1GN82icL6TsCXqHWoj-ZrdceHgD9_JaJjafmxMfGhgzA/edit) * [Smart contract and UI spec](https://docs.google.com/document/d/1HE7u0FM30Rh3MNp5YKppd7dKW7zmtYYMau96v-eH2XE/edit) * [Figma on termination flows](https://www.figma.com/file/UeaWhCeOZTrJzPIGkIctI8/Hydra-termination-workflow?node-id=0%3A1&t=vw7upiJEiIywQooU-0)