-
Notifications
You must be signed in to change notification settings - Fork 15
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
Stake-based Liquidity Incentives #31
Comments
My biggest concern is with the community fee in regards to NFT marketplaces. Is increasing the cost of each transaction by $.10 on average (using the historical average) going to encourage relayers to continue to use 0x or turn to another technology where the total gas costs are closer to what the function costs to run on the blockchain? I understand the overall desire for fees, but is there a reason that a value that roughly doubles the gas cost was chosen? Could a smaller fee be used to properly incentive the 0x ecosystem while still not making small-value trades too expensive to perform? |
Fascinating proposal. I was wondering if you could elaborate around how maker rebates are intended to work in the case of settlement using Suppose there exists an order, let us call it orderA which was created and signed by userA. UserB intends to take this order, but, instead of becoming the direct counter-party to orderA, calls My question then is: How are fee shares calculated in the case of fills via Edit: The above construction fails to state the key insight that the |
@dwbauschlicher Almost all of the historical 0x trades used in our protocol fee analysis were trades on liquid erc20 markets where trade settlement is more time sensitive than the typical NFT trade. I imagine the distribution of protocol fees for NFT trades has a lower average/median value. Will see if I can pull this data and provide a more definitive answer. We'll have a smaller data set to work with given the lower frequency of NFT trades on 0x. |
@hysz could you elaborate what this means in practise for Market-making on 0x? I think any proposal should highlight the benefits for Market-makers very clearly as opposed to other platforms i.e. central exchanges. A google doc or PR to comment on would be helpful. "Encourage user ownership among market makers." user ownership? More explanation from practical MM perspective (in my view at least): |
@benjyZ that's a good idea, I’ve added a link to a google doc for future comments. See below for your questions; also check out this blog post for more information on the incentive mechanism in relation to market makers.
We want development of the 0x protocol to be governed by the ZRX token holders, so that users of 0x have ownership of the underlying protocol. This ZEIP specifically aims to incentivize the class of users who bring liquidity - market makers.
We want market makers to have a vested interest in the 0x protocol, by staking ZRX and participating in governance. A market maker who has staked ZRX receives a portion of the fees generated from trades on the protocol (liquidity rewards); which is proportional to their trade volume and amount of ZRX they have staked or been delegated.
A portion of a maker’s liquidity reward goes to their delegators, which accumulates in the delegators' reward pool.
A maker’s liquidity reward is a portion of all fees collected by 0x over a period of time (epoch). The reward is given at the end of each epoch to make our contracts more efficient.
This perhaps sounds more formal than it is. A maker may stake their ZRX from one address and use any number of additional addresses to trade. By registering, a maker associates these addresses with a single identifier. |
@hysz thanks, will add comments there. "We want market makers to have a vested interest in the 0x protocol, by staking ZRX and participating in governance." It makes sense to reward MM who are active in 0x. Parts of the incentives should go to cover development cost and making MM more open. I think MM are mostly not going to be public. So development for making MM generally more available is what I have been working on. That part ideally is exchange and chain agnostic. Integration into MM backend systems is a lot harder than just writing a client against some central server. "A portion of a maker’s liquidity reward goes to their delegators, which accumulates in the delegators' reward pool." Although coupling MM with 0x stake can make sense to some degree, it might add complexity and risk. MM has already a lot to deal with so maybe point 1.1.1 and 1.1.2 could be expanded upon. Many people who might want to stake MM strategies might not fully understand them. |
@L-Kov that's a good question that sparked a good amount of internal discussion. There are certainly several edge cases, especially with respect to order matching. We just published ZEIP 42 to define the fees for the Exchange contract. These are by no means set in stone at this point and we'll be diving more into this during our dev call next week. Feel welcome to join and share your thoughts! |
CC @satosheth Recently we've seen a spike in ERC-721 trades when Gods Unchained card trading began on TokenTrove on 11/22. Since then we've seen ~35K trades on TokenTrove with: Compare that to Radar Relay over that same time period (excluding some addresses we've identified as arb bots), we've seen ~280 trades with: Since protocol fees are directly proportional to gas price, this is some evidence that NFT trades will have much lower protocol fees than ERC-20 trades. |
ZEIP-31 introduces a stake-based liquidity incentive to the 0x protocol. This draft outlines the design principles and constraints of the incentive mechanism, along with guidelines for its implementation. We encourage relayers, market makers, and developers working on complementary Ethereum projects to help us shape these ideas into a formal specification.
Feel welcome to leave comments below or in this google doc.
See the 0x Staking Specification for the most up-to-date information on architecture, implementation and usage.
1 Overview
1.1 Motivation
1.2 Principles
1.3 Specification
2 Specification
2.1 Staking ZRX
2.1.1 Utility
2.1.2 Depositing Stake
2.1.3 Withdrawing Stake
Stake is locked up for a period of time before it can be withdrawnFunds are frozen and cannot be used to vote or earn liquidity rewards during this lockup periodThe length of this lock up is to be determined2.2 Delegating Stake
2.2.1 Overview
2.2.2 Incentives
2.2.3 Weight of Stake
2.2.4 Delegating Stake
Delegators must therefore “buy into the pool” by locking a small amount of ether along with their delegated stake2.2.6 Motivation for Reward Pool Buy-ins
Reward pool buy-ins reduce the gas cost of joining a delegation poolAbsent a buy-in, we would have to record when a delegator joins and leaves a pool to compute their rewardsNote: Reward Pool buy-ins have been eliminated.
2.2.5 Buying Into a Reward Pool
The buy-in equation is eᵢ = (eₜ / dₜ) dᵢWhere eᵢ is the amount of ether to deposit when delegating dᵢ stakeThere already exists dₜ delegated stake and eₜ liquidity rewards already in the poolThe capital requirements of a buy-in will be very low relative to the ZRX stake needed to earn a rewardAnyone can call a function to payout all delegators and liquidate the reward poolNote: Reward Pool buy-ins have been eliminated.
2.2.7 Exiting a Reward Pool
2.3 Fees
2.3.1 Charging Fees
2.3.2 Motivation for Fee Mechanics
2.3.3 Accumulating Fees
a vault managed bythe staking contract2.4 Liquidity Rewards
2.4.1 Earning Liquidity Rewards
2.4.2 Liquidity Rewards for Market Makers
2.4.3 Liquidity Rewards for Delegators
2.4.4 Liquidity Rewards for the Ecosystem Fund
2.5 Governance
2.5.1 Voting on Proposals
2.6 Epochs
2.6.1 Scheduling
The duration of an epoch is to be determined, but will likely be 2-4 weeks2.6.2 Epoch Finalization
2.7 Setting Up Liquidity Rewards for Market Makers
2.7.1 Registering as a Market Maker
For EOA's the market maker signs a message and submits it to the staking contractFor contract accounts the market maker must implement a simple signature validation functionThe text was updated successfully, but these errors were encountered: