Beneficiary: OpenSquare(12sNU8BXivMj1xQmcd4T39ugCyHjmhir8jkPqfAw5ZDESrx4)
Date: 07/20/2022
Requested Allocation: $143,760(19,583 DOT by the price of 07.20.2022 on subscan)
OpenSquare has been actively developing new features for products including dotreasury, subsquare, statescan, off-chain voting. This is a proposal for some delivered features and new development plans.
Delivered
Child bounties(dotreasury + subsquare)
We implemented child bounties feature for both dotreasury and subsquare. The supported user stories includes:
- As a user, I can see all child bounties of one parent bounty.
- As a user, I can see the list of all child bounties.
- As a user, I can see the child bounty detail, while it includes the child bounty metadata, timeline.
- As a user, I can give comments about one child bounty.
- As a user, I can go directly from dotreasury to subsquare to view the child bounty context where the child bounty curator can edit the context.
Please check the time we have spent on the development.
Development |
Estimated hours |
memo |
Design |
32 |
1 FTE * 4 days |
Scan scripts |
60 |
1 FTE * 1.5 weeks |
Backend server |
40 |
1 FTE * 1 week |
Fronted |
160 |
2 FTE * 2 weeks |
Total: 292 hours.
Subsquare polkadot integration
Check here for the deployment. Generally the work includes:
- Data indexing for historical governance workflow
- Basic stuff design.
- Add code to support polkadot.
- Server setup.
Usually we request $10k for each chain integration and basic setup.
There are also some common features we have delivered since this deployment. The features includes:
- Setting a banner for my post and proposals.
- Adding a poll for my raised discussion.
- Support any of the signatories to edit the proposal context. Previously only the signatory who submits the extrinsic can edit.
- New editor and markdown renderer. We can show the latest polkadot account identity with them after we mention a polkadot account on a post or comment.
We will not request specific fund for above common features. Part of the cost can be covered by the routine maintenance fee we requested from each deployments.
Statescan on-chain NFT metadata support
Problems: Statescan supports NFT defined by JSON object hosted by IPFS, but there is NFT format whose metadata and image info are defined on chain. We can not recognize it before this feature. Please check the details on this issue.
For development, the main work includes:
- Block business indexing to find the target NFT definition.
- Refactor and add the onchain NFT metadata parsing business to NFT parsing scripts.
- Fronted pages adaption to this onchain NFT format.
Development |
Estimated hours |
memo |
On-chain NFT metadata |
60 |
1 FTE * 1.5 weeks |
Cost
Taking hour rate $80.
Item |
Hours |
memo |
Child bounties for dotreasury and subsquare |
292 |
$23,360 |
Statescan on-chain NFT metadata |
60 |
$4,800 |
Polkadot subsquare integration and setup |
- |
$10,000 |
Total |
- |
$38,160 |
New features plan
Dotreasury
Problems
Dotreasury serves very well as a treasury dashboard and we received lots of praise for its well designed UX, but it still has following problems:
- Users have to signup to leave comments, but we should make a web3 oriented product.
- Subsquare, as another product of OpenSquare, also supports proposals' discussion. It may cause a dispersion problem. So we may remove comments from dotreasury and redirect users to subsquare.
- It's more like an explorer, but it will be better if we can make it a Dapp where users can interact with chain, like proposing proposals/tips/bounties, closing tips, claiming bounties, etc.
- Dotreasury should provide more statistic data, like councilor, beneficiary and proposer's behaviors or related data.
- It's not tracking treasury proposal pipeline through democracy.
- There are still some polish work we can do, for example, we should show a counting down component for a bounty/child bounty pending payout.
Web3 oriented development
Less web2, more web3 🚀.
- Remove interfaces for user signup and login with email or username.
- Add connect with polkadot key. It should support polkadot.js extension, subwallet, talisman and nova wallet.
- Remove comments and redirect users to Subsquare if they want, but the legacy comments will be kept.
- Users can still grade with the connected account while every grade still can have a comment.
- Connected account can manage the proposal title, category, status and urls as an admin if the account is the proposal proposer or beneficiary.
Dapp
Dotreasury now has about 8k unique vistors per month on average, and we are sure it could be a good candidate interface for users to do treasury related actions. The planned features includes:
- Treasury proposal
- Create new treasury proposal.
- Vote a proposal on proposal detail page when there is a motion.
- Tip
- Create new tip including
TipNew
and ReportAwesome
calls
- Retract a tip
- Endorse a tip
- Batch new tips and batch endorsement
- Bounty
- New bounty and new child bounty(still no multisig support in this plan)
- Accept curator
- Claim a bounty/child bounty
More statistics
There should be more statistics data besides current data. We want to add more participants' data in this plan.
- A participant list page which each line contains the participant and his/her roles, while the role can be councilor, proposer, beneficiary.
- A participant detail page. Users can switch the role of this participant.
- As a councilor, we can see the renure, motion/tip attendance.
- As a proposer, we can all the proposed proposals, bounties and tips.
- As a beneficiary, we can see all the related proposals, bounties and tips. We can also see the calculated total benefited crypto/fiat value.
- Users can grade any participant on the corresponding detail page.
Please check the design of councilor page and check the figma source file here.
Enhancement and polishment
- Currently we only track treasury proposal process by council motions, it's not engouth. We will track the process through democracy in this proposal.
- We will polish some counting down components for bounty pending payout and tip closing.
Budget
Item |
Estimated Hours |
Design |
40 |
Web3 oriented development |
40 |
Dapp |
160 |
More statistics |
200 |
Enhancement and polishment |
120 |
Total |
560 |
Subsquare
Problems
Subsquare is a governance platform designed for substrate based chains. It indexs the on-chain governance data and provides interfaces for community to discuss and make calls to propose, second, vote, etc. It works well serving kusama and polkadot, but it can be still improved with following issues:
- It syncs proposal context from polkassembly, but it will better if it can sync comments and discussions, so it will be more convenient for users to view more governance data without leaving subsquare.
- It will be good if we can notify users specific governance proposal timepoint and context with email.
- We need a user profile page to show the basic user information, participated treasury/democracy proposals, raised discussions and list of comments.
- Treasury proposal decided by democracy should be in the proposal timeline.
- Support login with subwallet/talisman.
- Dark mode
Sync and load polkassembly
We have plans to create a protocol for governance data decentralization, but it will be big change and we may begin to do it after the implementation of governance 2. Syncing and loading data from polkassembly will be a solution to benefit users better view governance context and discussions. Work includes:
- Load comments for proposals and show them on a specific tab on proposal detail page.
- Sync all discussion topics and load comments on the discussion detail page.
In this proposal we will not implement login with polkassembly account on subsquare, while we think data decentralization and web3 should be the correct direction. If users want to leave comments for posts from polkassembly, subsquare will redirect user to the polkassembly page.
Subscription and notification
This feature enables user to subscirbe a governance event and subsquare will notify users when it happens. We know some tools like web3alert provides services to subscribe a on-chain event, but solution of subsquare differs in following ways:
- It provides off-chain governance events like a proposal context is provided.
- Notification of on-chain events will provide more related information, for example subsquare will also provide the pipeline info when a referendum started, so users can know this governance proposal full timeline, not just a event with the referendum index.
- Subsquare send the notification by email.
Planned subscription and notification items includes:
- Treasury(proposal, tip, bounties) lifecycle events and related context.
- Motion(Council, Tech. Comm.) lifecycle events and related context.
- Democracy(referendum, public proposals, external proposals) lifecycle events and related context.
User profile page
We need this profile page to view users' participation to governance. It will provides:
- Baisc user info address, links to explorers, email(if it's public), username(if registered via email and username).
- All created discussions.
- Proposed treasury/democracy proposals.
Enhancement and polishment
There are several improvements similar with those we proposed with dotreasury, but budget of implementation on subsquare will be much lower since it shares part of the logic and code.
- Add democracy process to the treasury proposal timeline.
- Support login with subwallet/talisman.
- Add counting down for bounty pending payout and tip closing. User can claim a bounty or close a tip when the counting down is over.
- Add create new tip interface.
- Dark mode.
Budget
Item |
Estimated hours |
memo |
Sync and load polkassembly |
112 |
2 FTE * 7 days |
Subscription and notification |
160 |
2 FTE * 10 days |
User profile page |
60 |
1 FTE * 7.5 days |
Enhancement except dark mode |
40 |
1 FTE * 5 days |
Dark mode |
60 |
1 FTE * 7.5 days |
Total |
432 |
|
Off-chain voting
OpenSquare off-chain voting is a common good product which provides off-chain democracy tools for polkadot ecosystem. It has helped projects collecting voting for over 45 proposals. It acts like snapshot in the ethereum ecosystem, but it provides different features.
- It supports substrate based chains.
- It supports multiple asset types including substrate native asset, ORML asset, statemine/statemint asset, ERC20 token.
- It supports substrate biased voting strategy.
- It can be configured to support voting from different assets like one proposal vote from $KSM or $DOT.
Problems
- Users have to contact OpenSquare team to add a space for them. Check here for details.
- Users can not be notified when a new proposal is created.
Space creation and configuration
We'd plan to provide users interfaces to seamlessly create spaces for their off-chain voting.
- User can add a new substrate based chain with multiple endpoints.
- User can add an asset for a chain, choose the asset type, and the backgroud job will check the asset availability.
- User can create a space, while the attributes include id, name, symbol, decimals, threshould to create/vote proposals, vote strategies, log/sns cover, etc.
- User can add/remove supported asset when creating a space.
- A space author can add maintainers for the space. Evenry maintainer has same authority with the author.
- A space maintainer can edit the space configurations.
- A space maintainer can delete the space.
In site notifications
- Users have to join a space to receive notifications.
- Users can config the notification types they may want to receive. The first batch of notification types includes new proposal created, new vote, close to a proposal voting end, proposal closed/terminated.
- Users will get in-site notifications when the subscribed events happen.
Budget
Item |
Estimated hours |
memo |
Space creation and configuration |
288 |
3 FTE * 12 days |
In site notifications |
40 |
1 FTE * 5 days |
Total |
328 |
|
Total budget
Taking hour rate $80, please check the budget list. For details of each item, please check above sections.
Item |
Estimated hours |
Fiat cost |
Delivered features on dotreasury/subsquare/statescan |
352 + polkadot subsquare integration |
$38,160 |
Dotreasury new features development |
560 |
$44,800 |
Subsquare new features development |
432 |
$34,560 |
Off-chain voting new features development |
328 |
$26,240 |
Total |
|
$143,760 |
- Beneficiary: 12sNU8BXivMj1xQmcd4T39ugCyHjmhir8jkPqfAw5ZDESrx4(identity is OpenSquare)
- We will update the allocated DOT by the price of subscan on the submission date.
Possible questions
Dotreasury and Subsquare shares some business, what's the plan for these 2 products direction?
- Dotreasury will foucus on the treasury mechanism. It will provides more statistics data about treasury income, output and participation.
- We still insist that the treasury need a retrospective mechanism which means there should be ways for community's supervision. We will promote current treasury spend grade method and seek more ways to help the community supervision.
- It will be a dapp besides a treasury dashboard.
- Subsquare is designed to help the whole on-chain governance process. Some treasury details like estimated fiat value and statistics data won't be provided.
Is the code of subsquare open source?
Currently still not. We have plans to open it when we have enough deployments and the grant will be closed to our development cost. OpenSquare team has been actively developing subsquare for over 10 months. Though we have gotten grants from dotsama and other para-chains, they are not enough to cover our cost. Requesting treasury from dotsama to cover all the cost sounds not the best idea. We beg the understanding that OpenSquare team has to keep alive before contributing more features.
What's your next plans for subsquare?
Gov 2.0 implementation and data decentralization. Data decentralization will be after the implementation of governance 2.0. We may refer to OpenSquare qa spec to make a protocol for governance discussion data decentralization.
There are few polkadot/kusama proposals on off-chain voting platform, so how do you make sure this platform will benefit dotsama?
- We're drafting some off-chain proposals with which we aim to collect the community opinions and trigger topics the community may think deeply.
- The ecosystem governance activeness will help the dotsama itself.