Development resources at your finger tips
Build with the coolest Web3 projects
Recurring funding for Open Source
Learn about Web3 & earn rewards
Show appreciation for each other
Meet fellow developers, designers, futurists and more. Collaborate and BUIDL awesome projects together.
Discover great web3 organizations, work on meaningful projects and build relationships with like minded people. Browse Tribes
Meet the top hunters and contributors from our community.
In partnership with Protocol Labs, we’re excited to welcome builders from everywhere to APOLLO, your mission control to engage with the builder…
We’re excited to publically announce that Matic Network is partnering with Gitcoin to launch the Build-n-Earn Program – assisting dApps t…
Gitcoin is GDPR complaint. Learn more in
Gitcoin's Terms & Conditions.
Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
### User Story
As a Gitcoin user, my grant contributions will go through a splitter contract, so I only have to submit one transaction to Metamask.
### Why Is this Needed
A splitter contract will allow us to experiment collecting a % fee and help us cut down on the number of Metamask transactions. When successful on Grants, this long-term investment can be incorporated into Bounties and possibly Tips.
@danlipert & @thelostone-mc - does this ticket need to be broken into sub-tasks? It might be worth a quick 15 min sync for me to understand the high-level technical details on implementing a splitter contract, and then happy to bolster my own understanding and open sub-tickets as necessary.
From doing some cursory reading:
A splitter contract is a contract that would record and tell us how dividends should be divided but let us do the distribution of those funds offline using a script that uses data from reading that contract. The splitter contract employs a doubly linked list to record who is still holding tokens. This list is updated every time tokens are transferred.
Not entirely sure about understanding the doubly linked list, but it sounds like 1 txn to take all the funds, and then how they're allocated is done offline? Is that updated information then relayed back to the blockchain?
### Current Behavior
No splitter contract. Possible contract modification to implement a % fee which is complicated and involves multiple Metamask transactions.
### Expected Behavior
Splitter contract for ETH / ERC-20 tokens that has a small / no attack surface.
### Definition of Done
- [ ] splitter contract implemented for Gitcoin grants
- [ ] engineering post (engineering to make the call if this is separate)
- [ ] prep as a broader open source contribution? (engineering to make the call if this is separate)
- [ ] be be updated with engineering feedback
### Data Requirements
- [ ] each contribution id in our database should have a fee_amount once the contract is up