Alchemy is a budgeting and resource-allocation tool for decentralized organizations. It is an interface that enables thousands of individuals to coordinate towards a common purpose, by proposing and deciding on how to spend funds in alignment with their goals and values.
Some example use cases for Alchemy include decentralized venture funds, charitable funds, innovation funds, a budget proposal system (like Dash but more sophisticated), or prioritizing features for an open-source project.
Alchemy is a Dapp (decentralized application) built on top of DAOstack, a platform for decentralized governance of DAOs (decentralized autonomous organizations).
How does it work? Alchemy makes it easy for DAO members to carry out three simple actions:
- Make proposals for the DAO to take a specific action. A proposal is equivalent to a project pitch and includes details about the proposal such as objectives, methods, costs and milestones.
- Predict whether a proposal will be approved or rejected by the organization. This helps guide the collective voting process by sorting and prioritizing the proposals.
- Vote on whether a proposal should be accepted or rejected.
While anyone can propose and predict, only people who hold reputation (voting power) can vote.
- NVM can be helpful to manage different versions of node
- NodeJS 9.4 or greater + NPM
- You will need alchemy-server running locally for the app to function
sudo apt-get install -y libsecret-1-dev git clone https://github.com/daostack/alchemy.git cd alchemy npm ci
Run app locally
There are two ways to work with the alchemy stack.
We are providing a convenient
docker-compose file for quick setup. Alternatively,
you can recreate the docker environment by installing an starting all services locally.
Working with docker
The easiest way to start developing is to work with docker. Here is a quick setup; there are more detailed instructions in here.
After you have installed docker, run the following command to spin up ganache (with the migrated contracts), the caching server and the alchemy server:
docker-compose up graph-node alchemy-server
Now, in a separate terminal run the following command to run alchemy:
npm run start
At this point you should be able to access alchemy on http://127.0.0.1:3000.
See working with docker for details and troubleshooting.
Interacting with your test instance using MetaMask
- Install and enable MetaMask extension in Chrome
- Click on the MetaMask extension icon in the toolbar and log in
- Click on the avatar icon in the top right, and choose "Import Account"
- Choose "Private Key" and paste the string
0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1dand click "Import"
- Give it a name like "Alchemy Test Account" so you won't get confused later
- If you need more than one test account you can also import these private keys:
0x646f1ce2fdad0e6deeeb5c7e8e5543bdde65e86029e2fd9fc169899c440a7913. Make sure to give them all differnent names.
- Make sure that Metamask is connected to
127.0.0.1:8545(choose from the "Networks" picklist in Metamask)
- Go to http://127.0.0.1:3000 to load Alchemy