@multi.near [Posted on Developer DAO Board](https://near.social/#/devgovgigs.near/widget/Post?id=383) ## Idea: #DAO Sprint Planning `This post is meant to help coordinate development of an *on-chain* frontend component library for DAOs.` ### Objectives The main goal is to support a growing community of DAO builders in the NEAR ecosystem. Our hope is to collaborate with anyone who can provide NEAR communities with more useful DAO technology and resources. Greater accessibility, reusability, and positive impact are key results. ##### Current Projects * [NEP-463](https://github.com/near/NEPs/pull/463): DAO Contract Standard * [DAO Type](https://temp.everything.dev/#/multi.near/widget/Everything.Create.DAO) + [Reusable Components Library](https://near.social/#/multi.near/widget/Common.DAO) * [DAO Social Search](https://near.social/#/onboarder.near/widget/DAOSocialSearch) by @onboarder.near * [Easy DAO Payout Proposal](https://near.social/#/nearweekapp.near/widget/Easy-DAO-Payout-Proposal) by @nearweekapp.near * NDC Gateway (coming soon) @hackerhouse.near We are developing an open-source library of *on-chain* frontend components that support generic DAO interactions. All necessary methods, which are listed below, should have reasonably specified input arguments and return value types. #### [Sputnik ABI](https://github.com/near-daos/sputnik-dao-contract/blob/main/sputnikdao2/ABI.md) ##### View Methods: - [ ] version - [ ] **get_config** - [x] **get_policy** - [ ] get_staking_contract - [ ] has_blob - [ ] get_locked_storage_amount - [ ] get_available_amount - [ ] delegation_total_supply - [ ] delegation_balance_of - [ ] delegation_balance_ratio - [ ] **get_last_proposal_id** - [ ] **get_proposals** - [ ] **get_proposal** - [ ] get_bounty - [ ] get_last_bounty_id - [ ] get_bounties - [ ] get_bounty_claims - [ ] get_bounty_number_of_claims - [ ] get_factory_info ##### Change Methods: - [ ] **new** - [ ] migrate - [ ] store_blob - [ ] remove_blob - [x] **add_proposal** - [ ] **act_proposal** - [ ] register_delegation - [ ] delegate - [ ] undelegate - [ ] bounty_claim - [ ] bounty_done - [ ] bounty_giveup Below is a breakdown of enumerable types in the Sputnik DAO contract code base, including: * Proposals * Actions * Policies These will contribute to a common DAO Type. ##### Proposals - [ ] ChangeConfig - [ ] ChangePolicy - [x] AddMemberToRole - [x] RemoveMemberFromRole - [x] FunctionCall - [ ] UpgradeSelf - [ ] UpgradeRemote - [x] Transfer - [ ] SetStakingContract - [ ] AddBounty - [ ] BountyDone - [x] Vote - [ ] FactoryInfoUpdate - [ ] ChangePolicyAddOrUpdateRole - [ ] ChangePolicyRemoveRole - [ ] ChangePolicyUpdateDefaultVotePolicy - [ ] ChangePolicyUpdateParameters ##### Actions - [x] **AddProposal** - [ ] RemoveProposal - [ ] **VoteApprove** - [ ] **VoteReject** - [ ] VoteRemove - [ ] Finalize ##### Policies - [ ] TokenWeight - [ ] RoleWeight(role) ### Scope of Work *What is the meaning of "done" in this context?* - [ ] NEP-463 ready to be reviewed by Contract Standards WG another time - [ ] Generic DAO UI complete (essential methods, in bold above, implemented and tested successfully) - [ ] DAO widget library and `Type` system is accessible for anyone to use on the bOS ### Key Challenges --> Learning how to index proposals for the voting components 🗂️ ## **Next Steps** *What is planned for the upcoming 2-week sprint?* * Finish building [CreateDAO](https://near.social/#/hack.near/widget/CreateDAO) widget MVP * Start building `DAO.Voting` widget ~ integrate with @EasyPoll.near * Continue to experiment with [Everything](https://social.near.page/p/efiz.near/87803726), courtesy of @efiz.near * Turn this [DAO GroupCheck](https://near.social/#/hack.near/widget/GroupCheck) into a reusable component ### Learn, Build, and Grow! Join the [DAO Builders Group](https://nearbuilders.com/tg-dao) on Telegram and follow @multi.near! ##### HOW TO GET INVOLVED If you are interested in building DAO widgets during #sprint1, **Monday, April 3** to **Friday, April 14**, please reply to this post before next **Friday, March 31**. We suggest including: * Brief description of which on-chain frontend components you are building and / or would like to build and why * Your experience with development of DAO solutions, bOS widgets, or anything you have built on NEAR We are exploring a public process of deciding which components to prioritize as well as electing people to build them, within the framework of proposal reviews. It's helpful to know the justifications for why this or that library is added to the scope and why this or that person is responsible. Anyone can apply to build a component or take maintenance of an existing one. This can be done on a bi-weekly cadence where builders propose what they would do for that component and how much they want to be paid. Let us know any feedback in the comments. Thanks!