-
Notifications
You must be signed in to change notification settings - Fork 3
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
Voting Multiplier Spec #71
Comments
Can you provide links to the "existing services" referenced: CharacterSheets, Questline, Guild, Hats |
added 👍 |
|
RonTuretzky
pushed a commit
that referenced
this issue
Sep 28, 2024
Merged
RonTuretzky
added a commit
that referenced
this issue
Sep 28, 2024
Merged
Re-opening since PR has not been merged. |
RonTuretzky
added a commit
that referenced
this issue
Jan 2, 2025
* chore: init * chore: init of Imultiplier @secbajor * chore: implementing interfaces from #71 * chore: init permanftmul impl * chore: tmp commit * fix: reverting auto changes to yd * fix: changing to interface * fix: fixing imports * chore: init derived interfaces * fix: changing variable name" * fix: removing ref to external, impl in implemtations * chore: first multiplier * chore: Adding voting multiplier handling and integration to yd * fix: amending functionality to handle no multiplier for voter properly * chore: adding unit and fuzzy tests * chore: adding basic NFTMultiplier implementation, deploy script and config with tests Changes to be committed: * fix: updating wrong documentation * fix: reducing scope of pr * fix: order of operations clarification * chore: adding gas benchmark tests for mutipliers * rename: using PRECISION instead of hardcoded 1e18 for clarity" * chore: removing external calls by declaring public * chore: renaming outdating convention * chore: including prefix for function param and fixing up previous commit rename * chore: renaming constant to fit camel case convention * chore: refactoring constant to snake case * style: underscore for internal vars" * docs: updating authors * chore: removing voting multiplier gas snapshot testing * style: internal / function-scoped variables should have underscore * perf: optimizing init variable validation * Revert "perf: optimizing init variable validation" This reverts commit de0309d. * chore: introducing offchain indexing of multipliers to be bundled with voting function to prevent on-chain iteriations * fmt: removing underscore from natspec comment * fmt: moving func closer to similiar func and documenting func * fmt: removing line break * fmt: removing line break * fmt: removing line break * fmt: removing line break * fmt: removing line break * fmt: removing line break * chore: fixing checking of minimum voting power to include voting multipliers * chore: unclear why this is needed as it should have been merged from dev, reintroducing * chore: attempting to revert changes from upstream * chore: attempting to remove more unclear merge issues --------- Co-authored-by: Ron Turetzky <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Definition
We define a voting multiplier as the multiplication of existing voting power by increasing factor ( a number bigger than 1).
For example, some user holds 10 $BREAD , and has completed some tasks on guild.xyz , awarding him some NFTs. These could award him a voting multiplier of 10% (1.1), such that his voting power is now effectively equal to holding 11 $BREAD.
Motivation
Reward users for contributing or participating in Breadchain. Create incentives for further activity. Improve the governance process by weighing active and invested user's votes as more meaningful.
Multiplier Sources
Gnosis Chain
Cross Chain
Off Chain
Requirements
Concessions
High Level Overview
This overview suggests an implementation approach that relies on NFTs, allowing the usage of existing NFTs sanctioned by the Breadchain community. This approach also asserts that multipliers which require a custom implementation or some offchain integration can conform to an NFT design, providing a homogenous interface to all multipliers. This approach also provides forward compatibility to existing services which already implement NFT which breadchain may choose to adopt or increase usage of (such as CharacterSheets, [Guild])https://guild.xyz/breadchain) , Hats etc )
In order to integrate these multipliers into the existing voting infrastructure , the following contract will be deployed and referenced in the YieldDistributor
Overview of Currently Desired Multipliers
Delegation
If a user has delegated their voting power on the $BREAD contract to another user, that should also delegate multipliers.
The text was updated successfully, but these errors were encountered: