All Projects → daostack → Arc

daostack / Arc

Licence: gpl-3.0
Arc is an operating system for DAOs.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Arc

Chainbook
📚 区块链上的纸质书交易平台,为未来而构建!
Stars: ✭ 189 (-0.53%)
Mutual labels:  blockchain, ethereum, decentralization
Learn Solidity
Code base for "Learn Solidity: Programming Language for Ethereum Smart Contracts" course in Tosh Academy & Blockchain Council
Stars: ✭ 44 (-76.84%)
Mutual labels:  blockchain, ethereum, voting
Ethlist
The Comprehensive Ethereum Reading List
Stars: ✭ 3,576 (+1782.11%)
Mutual labels:  blockchain, ethereum, decentralization
Carmel
The Open Digital Innovation Marketplace
Stars: ✭ 136 (-28.42%)
Mutual labels:  blockchain, ethereum, decentralization
Unstoppable Wallet Ios
A secure and decentralized Bitcoin and other cryptocurrency wallet for iPhone. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 180 (-5.26%)
Mutual labels:  blockchain, ethereum, decentralization
Unstoppable Wallet Android
A secure and decentralized Bitcoin and other cryptocurrency wallet for Android phones. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 165 (-13.16%)
Mutual labels:  blockchain, ethereum, decentralization
Blockchain Security Contacts
Directory of security contacts for blockchain companies
Stars: ✭ 186 (-2.11%)
Mutual labels:  blockchain, ethereum
Angular Truffle Starter Dapp
Angular CLI + Truffle Starter Dapp; write, compile & deploy smart contracts on Ethereum blockchains
Stars: ✭ 174 (-8.42%)
Mutual labels:  blockchain, ethereum
Armors Solidity
Armors-solidity is a framework to build secure smart contracts on Ethereum.
Stars: ✭ 184 (-3.16%)
Mutual labels:  blockchain, ethereum
Ultimateicocalendar
The ICO calendar to end all ICO calendars
Stars: ✭ 183 (-3.68%)
Mutual labels:  blockchain, ethereum
Smart Contract Watch
A tool to monitor a number of smart contracts and transactions
Stars: ✭ 168 (-11.58%)
Mutual labels:  blockchain, ethereum
Eevm
Enclave ready EVM (eEVM) is an open-source, standalone, embeddable, C++ implementation of the Ethereum Virtual Machine.
Stars: ✭ 175 (-7.89%)
Mutual labels:  blockchain, ethereum
Ethwallet
A ethereum wallet like imToken
Stars: ✭ 190 (+0%)
Mutual labels:  blockchain, ethereum
Eth Vue
Featured in Awesome Vue [https://github.com/vuejs/awesome-vue], a curated list maintained by vuejs of awesome things related to the Vue.js framework, and Awesome List [https://awesomelists.net/150-Vue.js/3863-Open+Source/18749-DOkwufulueze-eth-vue], this Truffle Box provides everything you need to quickly build Ethereum dApps that have authentication features with vue, including configuration for easy deployment to the Ropsten Network. It's also Gravatar-enabled. Connecting to a running Ganache blockchain network from Truffle is also possible -- for fast development and testing purposes. Built on Truffle 5 and Vue 3, eth-vue uses vuex for state management, vuex-persist for local storage of app state, and vue-router for routing. Authentication functionalities are handled by Smart Contracts running on the Ethereum blockchain.
Stars: ✭ 171 (-10%)
Mutual labels:  blockchain, ethereum
Trust Ray
☁️ API for the Trust Wallet. Project no longer supported and current version used as source of transactions and address tokens in Blockatlas https://github.com/trustwallet/blockatlas/blob/master/config.yml#L64
Stars: ✭ 172 (-9.47%)
Mutual labels:  blockchain, ethereum
Study Blockchain Referrence
区块链学习路上的一些资料作为参考
Stars: ✭ 172 (-9.47%)
Mutual labels:  blockchain, ethereum
Pando
A distributed remote protocol for git based on IPFS, ethereum and aragonOS
Stars: ✭ 177 (-6.84%)
Mutual labels:  blockchain, ethereum
Cointop
A fast and lightweight interactive terminal based UI application for tracking cryptocurrencies 🚀
Stars: ✭ 2,912 (+1432.63%)
Mutual labels:  blockchain, ethereum
Go Ethereum Hdwallet
Ethereum HD Wallet derivations in Go (golang)
Stars: ✭ 178 (-6.32%)
Mutual labels:  blockchain, ethereum
Loom Js
JS library for building browser apps & NodeJS services that interact with Loom DAppChains
Stars: ✭ 189 (-0.53%)
Mutual labels:  blockchain, ethereum

Build Status NPM Package Join the chat at https://gitter.im/daostack/Lobby

Arc

Arc is the base layer of the DAO stack. It consists of a set of smart contracts deployed on the Ethereum blockchain that define the basic building blocks and standard components that can be used to implement any DAO.

Arc is a modular, upgradeable platform that allows for a rapid natural selection of governance systems.

Arc Structure Diagram

Figure 1: Arc's structure

Every box in Figure 1 represents a smart contract.

The Token contract probably does not require an explanation, being the most popular use-case of the Ethereum network.

The Avatar contract is the face of an organization on the blockchain, e.g. if the organization is to hold ownership of anything, like ownership over a contract or asset, the owner address will be the Avatar.

The Reputation contract stores a DAO's reputation data. In Arc, Reputation represents a user's decision power in a given DAO. It is very similar to a token, with two main differences: one, it is non-transferable, and two, it can be granted or taken away by the DAO.

On the right side of the figure we have the schemes. Schemes are simple pieces of logic describing the different actions a DAO can take. One example is a scheme for funding proposals, in which everyone can suggest and vote on proposals, and if a proposal is approved, it is automatically funded.

At the bottom are the global constraints. Global constraints prevent current and future modules from breaking certain overarching rules, e.g. a cap on an organization’s total possible reputation.

The Controller is an access control module that keeps a record of all the registered schemes in a DAO and the permissions for each scheme. It also records all global constraints and enforces them by reverting transactions that violate them.

Go here for a full primer on Arc.

Security

DAOstack Arc is still in its alpha version. Arc is intended to provide secure, tested, and community-audited code, but please use common sense when doing anything that deals with real money! We take no responsibility for your implementation decisions and any security problem you might experience.

Getting Started

  1. Please install Truffle and initialize your project with truffle init.
    npm install -g truffle
    mkdir myproject && cd myproject
    truffle init
    
  2. Install the @daostack/arc package: npm install @daostack/arc.
    • .sol Source code is found under node_modules/@daostack/arc/contracts
    • .json Compiled contracts are found under node_modules/@daostack/arc/build/contracts
  3. Import in your project:
    import '@daostack/arc/contracts/universalSchemes/UniversalScheme.sol';
    
    contract MyContract is UniversalScheme {
      ...
    }
    
    You should be able to find the @daostack/arc contracts (.json) already built and ready for deployment in the node_modules/@daostack/arc/build/contracts/ folder.
  4. Read the documentation to get a better understanding of how to use Arc.

Contribute

PRs are welcome, but please first consult with the Contribution guide.

Join us on Discord!

To contribute to Arc development start by cloning the repo and installing the dependencies:

git clone https://github.com/daostack/arc
cd arc
npm install

Commands

Available commands while developing:

  • npm run build - Compile all contracts to the build/ folder.
  • npm run test - This will run ganache-cli, compile, migrate and run all tests.
  • npm run lint - Check all JavaScript code for style & good practices.
  • npm run solhint - Check all Solidity code for style & good practices.
  • npm run docs:<update|build|deploy|preview> - See this for details.

Docker

Arc has a prebuilt Docker image that makes development environments consistent and cross-platform. To start developing inside this environment:

  1. Install Docker in your favorite OS/platform.
  2. Run docker run --rm -it -v <path to repo>:/home/arc daostack/arc (*May require Admin/root permissions).
  3. The container will automatically git clone or git fetch depending on if <path to repo> is empty, and will install any dependencies.
  4. Continue development inside the container.

License

This is an open-source project (GPL license).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].