ICDevs is extremely excited to push out an update to Axon that enables it to be an on-chain wallet, DAO builder, Canister Deployer, or multi-sig wallet.
Axon was an early IC dapp that helped users manage neurons while providing basic multi-sig and DAO functionality. More than a year later @wang 's foundation is one of the premier dapps and Motoko implementations built for the IC.
@3oltan, and @aiv have added a number of features with a bit of help from myself. DFINITY funded the bounty Assigned: ICDevs.org Bounty 2 - Add generic DAO functions and interface to Axon. Some of this work was funded by Origyn Foundation as well.
Each Axon that is created is its own canister that can hold tokens and/or call other canister via a DAO based framework
User start by visiting the Axon Dashboard:
This will list your different axons. Some can be public and some can be private. You can deploy your own AXON Controller canister and make it so that only you can approve new axons. It can be like your own little wallet of wallets.
You can create a new axon:
Most features can be changed later so this is not a set of decisions to be stressed over. Each new Axon does require transferring 1T cycles to a new canister, so make sure youâve loaded it up.
Set up your parameters:
For example, if this is a 2 of 3 multi-sig you might add the three principals, decide who can propose, give each user 1 token and restrict token transfer. This way signers canât transfer their tokens.
Once created youâll see your new axon:
This is a 1 of 2 multisig. All of the old Axon neuron management features are still there, but weâve added the ability to propose calling other canisters from your Axon. This means you can send tokens to the account/principal of the axon and then send them out later.
Clicking âCanister Commandâ will open the canister command dialog:
The above command will send 1 ICP to the ICDevs Community Fund. (Cool features like named canisters would be a cool feature to add in a future bounty donât you think?)
Each Propsal will allow users to vote on it as an open proposal. Once you hit quorum and passing threshold the command will be called by your axon. In this proposal I sent some ICP to the Community fund that I had previously sent to the axon:
You can see the corresponding transaction here: ICSCAN
Weâve also added Burning tokens and Motion proposals:
Here we do a motion to declare @bob11 Sheriff of the DAO. This motion doesnât execute code and is just a âpollâ.
Here is the full feature set of what we have released for v2.
Add the following features to the back end of axon:
- Added an Axon level âmanage axonâ option that is a âMotionâ. If this motion passes or fails, there is no action taken, it iss just recorded as part of the app. The Motion has a URL Field and a Text Field.
- Added an administrator role that can be used to limit the ability to create new axons. (we will be deploying a new instance and only ICDevs will be able to create axons on our serverâŚthis is due to cycle issues with the public instanceâŚothers can do the same)
- Added the ability for a proposer to burn a members token.
- Added âthe ability for a proposer to burn a memberâs tokenâ as a flag on set policy.
- Added the ability for transfers of governance tokens to be restricted.
- Added âthe ability to restrict token transfersâ as a flag on set policy.
- Added a âcommandâ proposal that lets a proposer suggest calling any function on the IC. Once approved, the function is called.
- Can update the master of the axon(maybe event to one of your proxies to âblackholeâ to your dao.)
- Update the axon user interface(a next.js app)
Added the new flags to the Manage Neuron dialog
- Added a burn token button and function that is only available to a proposer
- Removed the transfer Added a burn token button and function that is only available to a proposer
- Removed the transfer button on the ledger if restricted
- Added a screen to view a motion
- updated the logo and theme to focus on ICDevs.org powered by Axon - This is configurable for other organizations - see axon_ui readme
- added an about link that links to an anchor at the bottom of the page where we can add informational html to the page.
- added the call_raw functionality to allow a proposal that calls a function with a payload.
- added the command interface.button on the ledger if restricted
- Added a screen to view a motion
- updated the logo and theme to focus on ICDevs.org powered by Axon - This is configurable for other organizations - see axon_ui readme
- added an about link that links to an anchor at the bottom of the page where we can add informational html to the page.
- added the call_raw functionality to allow a proposal that calls a function with a payload.
- added the command interface.
Unfortunately the Ledger for each axon is currently a very limited token. In the future weâd love to directly incorporate ICRC-1 into the proxy so that each proxy would get is own ICRC1 token out of the box. Watch the Skies!
There are also some other improvements that would help with performance and scalability that weâll be looking at in the future as well as some UI improvements for calling functions and understanding what has been called.
If you want a feature, suggest it at Issues ¡ icdevs/axon ¡ GitHub
We also liberally accept Pull Requests. The project is MIT Licensed, so use it as you see fit.
The back end is motoko and the front end is next.js.
If you would like to test it out you can clone the repo and deploy your own instance. It generally works locally, but there are some hang up with auto loading .did files. If you donât like the ICDevs theming, I believe there are instructions for swapping out the log and changing the CSS to a theme of your liking.
If you donât want to deploy your own, sent 1 ICP(each Axon takes 1T cyclesâŚIâll put any leftover into a donation for ICDevs) to 93a3506e08e88e1f65f85990451038f7a232b6f860ee706b42cc9edec96eecee and Ping me with the Name you want for you axon and your principal. Iâll set you up with a basic single signer and you can configure it however you want using the managed functionality after that. It will be located at https://77i6o-oqaaa-aaaag-qbm6q-cai.ic0.app/ (trying to get axon.icdevs.org pointed there).
Weâll be relaunching the ICDevs developer advisory and board process so that we can formally accept and vote on thing on a public Axon.