-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
create dairdrop application #2429
base: master
Are you sure you want to change the base?
Conversation
7a01fdc
to
cf1e65b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey, thanks a lot for the application. It sounds very interesting and I also don't know about an existing solution that solves the issue of distributing airdops. I left a few comments and questions for you to review.
Looking forward to your answers :)
- **FTE:** 2,0 | ||
- **Costs:** 10,000 USD | ||
|
||
> :exclamation: **The default deliverables 0a-0d below are mandatory for all milestones**, and deliverable 0e at least for the last one. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The article deliverable is missing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The article deliverable is missing.
Next, I will submit it
applications/dairdrop.md
Outdated
|
||
## Future Plans | ||
|
||
This application is specifically designed for airdrops within the Polkadot ecosystem. In the coming months, after the launch of the Dota 2.0 mainnet, it will have its own economic model to secure ongoing maintenance and development funding from the Dota treasury. This is not just a project for native token airdrops, it will also support multi-asset airdrops and ERC20 token airdrops (once Polkadot Plaza is fully EVM-compatible). If widely adopted (beyond just the Dota community), we will support iOS and Android platforms and establish a Polkadot ecosystem airdrop monitoring platform to keep users informed about airdrop opportunities and activities. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm happy to hear that you are planning to maintain this project.
| 1. | Substrate module: airdorp | An airdrop module that provides all on-chain functionalities related to airdrops | | ||
| 2. | Smart contracts: airdorp-ink| Implementation of the airdrop module using Ink. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 1. | Substrate module: airdorp | An airdrop module that provides all on-chain functionalities related to airdrops | | |
| 2. | Smart contracts: airdorp-ink| Implementation of the airdrop module using Ink. | | |
| 1. | Substrate module: airdrop | An airdrop module that provides all on-chain functionalities related to airdrops | | |
| 2. | Smart contracts: airdrop-ink| Implementation of the airdrop module using Ink. | |
Under development. | ||
|
||
- https://github.com/dota-network/dairdrop | ||
- https://github.com/dota-network/dota-super-chain |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there nothing but a readme to this project?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there nothing but a readme to this project?
The Dota Super Chain has completed most of the code, developed by community contributors, and will be merged soon. The dairdrop is currently being prepared for development. Once the dairdrop development is completed, we will merge it into the Dota Super Chain, and the Dota community will use dairdrop to launch the 2.0 network.
### Team's experience | ||
|
||
- weaver | ||
Five years of development experience with Polkadot, core code contributor in the Dota community, and involved in the development of multiple parachains. Possesses extensive experience in blockchain product development within the Polkadot and Ethereum ecosystems. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where can I see these contributions of yours that involve parachains or substrate development? On your github I only found your work on the dota indexer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where can I see these contributions of yours that involve parachains or substrate development? On your github I only found your work on the dota indexer.
In the past few years (from 2019 to the present), I have primarily developed in an anonymous state due to privacy concerns. I was previously employed by several parachain teams and was a core development member for them. If you're interested, we can discuss this privately.
applications/dairdrop.md
Outdated
| 1. | Substrate module: airdorp | An airdrop module that provides all on-chain functionalities related to airdrops | | ||
| 2. | Smart contracts: airdorp-ink| Implementation of the airdrop module using Ink. | | ||
| 3. | indexer| An on-chain airdrop activity indexer that monitors on-chain airdrop status in real time.| | ||
| 3. | backend | Provide all APIs needed for the app, including calculating the MD5 hash of the airdrop file, the Merkle root of the airdrop, Merkle proofs, and airdrop status. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is the backend? I suppose the substrate pallet and the ink implementation serve directly as the backend.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is the backend? I suppose the substrate pallet and the ink implementation serve directly as the backend.
On-chain storage primarily contains the final state and completed Merkle proof verification. We need to provide an off-chain backend that allows users to obtain their Merkle proofs, submit transactions to claim airdrops, and access more information about the airdrop, such as progress, the number of participants, and which users have not yet participated. Additionally, anyone should be able to claim airdrops for others.
applications/dairdrop.md
Outdated
| -----: | ----------- | ------------- | | ||
| **0a.** | License | Apache 2.0 | | ||
| **0b.** | Documentation | Provide documentation for the app. | | ||
| **0c.** | Testing and Testing Guide | Provide manual test cases as much as possible. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd suggest to reword this. "as much as possible" is a very subjective term.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd suggest to reword this. "as much as possible" is a very subjective term.
I agree. I will update soon.
applications/dairdrop.md
Outdated
| **0c.** | Testing and Testing Guide | Provide manual test cases as much as possible. | | ||
| **0d.** | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. | | ||
| 1. | UI/UX design | Design user-friendly interactive pages to enhance the user experience. | | ||
| 2. | PC app | Desktop application compatible with Mac, Windows, and Linux. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd suggest to only developing a web-app. I don't see people being interested in this if they can get the same functionality from a web-app. I'd remove this deliverable unless you know that there is demand for this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd suggest to only developing a web-app. I don't see people being interested in this if they can get the same functionality from a web-app. I'd remove this deliverable unless you know that there is demand for this.
I agree with it, as it allows us to focus on providing users with richer features and a friendlier experience. However, user habits can vary. For developers, it's relatively easy to start a web service using Docker, but for regular users, this can introduce technical and learning costs. Therefore, I hope that while we develop the web application, we can also provide PC application.
applications/dairdrop.md
Outdated
|
||
- **On-chain** | ||
- An airdrop pallet(substrate pallet) | ||
- Set airdrop: Merkle tree root, MD5 hash of the airdrop file, start date, end date, total airdrop amount (must be staked) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To what granularity will the merkle tree resolve? To each individual address? To a group of addresses which will always be claimed together? I'd love to hear more about the strategy. Have you conducted any research up to which address amount your solution is able to scale?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To what granularity will the merkle tree resolve? To each individual address? To a group of addresses which will always be claimed together? I'd love to hear more about the strategy. Have you conducted any research up to which address amount your solution is able to scale?
We will provide a complete Merkle tree for each airdrop event, which includes the airdrop information for every user and is stored in the backend. This will support up to 2^160 addresses.
- **On-chain** | ||
- An airdrop pallet(substrate pallet) | ||
- Set airdrop: Merkle tree root, MD5 hash of the airdrop file, start date, end date, total airdrop amount (must be staked) | ||
- Cancel airdrop |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How will this work? Is the airdrop owned so that an account can decide on cancelling the airdrop at an arbitrary point in time?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How will this work? Is the airdrop owned so that an account can decide on cancelling the airdrop at an arbitrary point in time?
When users want to create an airdrop for the community, they will register the airdrop information on-chain, including the block height at which the airdrop will occur, the root hash of the Merkle tree, the end time of the airdrop, and more. They will also need to reserve their balances to ensure that everyone can claim the airdrop. Additionally, they can terminate the airdrop activity at any time. This ensures flexibility for the airdrop.
Thank you very much for your outstanding work and responses. I'm very happy that we can discuss this application together. |
d1bf4dd
to
38a642c
Compare
@PieWol, Thank you very much for your suggestions. I've updated the application accordingly. Regarding the desktop app issue, I agree that we should remove it, allowing us more time to focus on UX optimization and creating a product that is very user-friendly. However, our team is considering that community users are often non-technical and have diverse airdrop needs. Some may not want to provide a remote web service or might not know how to run a local program using Docker, which could impact community engagement and growth. If you have better suggestions, we are open to them. Our goal is to create an airdrop application that can be used in all scenarios. |
Project Abstract
Decentralized airdrop application that does not require a centralized server, compatible with Mac, windows, Linux and web.
https://github.com/dota-network/Grants-Program/blob/master/applications/dairdrop.md
Grant level
Application Checklist
project_name.md
).@_______:matrix.org
(change the homeserver if you use a different one)