/royaldao-contracts

Royal DAO contracts Repo

Primary LanguageSolidityMIT LicenseMIT

RoyalDao

Docs NPM Package

**A library for smart contract development of Complex NFT Based DAOs.

🧙 Not sure how to get started? Check out our usage Examples.

Overview

Who Am I?

I am Vin Rodrigues, Co-founder of QueenEDAO, along with other 3 people (see more at QueenE Repo), and the creator and, currently, only maintainer of RoyalDao Libraries.

QueenEDAO was an innovative project inspired by NounsDAO and using Openzeppelin Governance Contracts.

The innovation in the project falls into the fact that the collection is tied to real world events and can end at an unknown moment. In this specific case, the death of Queen Elizabeth, who inspired the fictional Character QueenE.

So, we knew from the beginning that we would need to find a solution to keep the DAO running and Growing after the event, that came sooner than any of us imagined.

With this background, I envisioned the Senate pattern. Based in the Governor pattern, from Openzeppelin, the Senate allows multiple tokens (at this point, only ERC721) to participate into one single DAO. So, no matter the project you have tokens from, if it is a member of the Senate, you can propose and vote in the same DAO.

The basic pattern is usable in beta and documentation is being done. You can see usage examples here.

Installation

$ npm install @royaldao/contracts

Or using Yarn

$ yarn add @royaldao/contracts

Usage

Once installed, you can use the contracts in the library by importing them:

pragma solidity ^0.8.0;

import "@royaldao/contracts/Governance/Chancelor.sol";

contract RepublicChancelor is
    Chancelor,
    ChancelorCompatibilityBravo,
    ChancelorSenateControl,
    ChancelorTimelockControl
{
    constructor(TimelockController _timelock, Senate _senate)
        Chancelor("RepublicChancelor")
        ChancelorSenateControl(_senate)
        ChancelorTimelockControl(_timelock)
    {}
}

If you're new to smart contract development, i strongly recomend all the content made by Sir Patrick Collins, but specially his 36h Course...i swear it's woth it!

Learn More

I am currently building the base docs of the library usage. Should be done soon, depending on how much i need to sleep or rest (it has been a while). But you can learn a lot by the examples repo.

Will update with documentation links when its done!

I urge you to take a look at OpenZeppelins Knowledge base! It will help a lot in Smart Contracts Development learning path.

Security

This project is maintained by me mostly, and developed following my questionable standard for code quality and security. So ,PLEASE, use common sense when doing anything that deals with real money! I take no responsibility for your implementation decisions and any security problems you might experience.

As soon i can leverage some funds from sponsorship (request pending approval from githubsponsors platform) i intend to audit everything, but 'till there, if you find any vulnerability, please contract us through security e-mail sec.royaldao@gmail.com.

Contribute

I will document the contributing process soon, but in the meanwhile you can email me at [royal dao.contracts@gmail.com](mailto:royal dao.contracts@gmail.com). Lets build!

License

RoyalDao's Contracts is released under the MIT License.