From 396d639ba262aa3b3fd79ce3d2178a6f1ac9d2c9 Mon Sep 17 00:00:00 2001 From: JohnnyWyles <97029546+JohnnyWyles@users.noreply.github.com> Date: Wed, 6 Aug 2025 12:39:37 +0100 Subject: [PATCH] Review pass Removes all references to Quote denoms, Superfluid and Internal Incentives. Some updated text around tokenomics --- .../modules/concentrated-liquidity/README.md | 18 +- docs/overview/educate/getting-started.md | 8 - docs/overview/educate/osmo.mdx | 23 +- docs/overview/features/index.mdx | 1 - docs/overview/features/protorev.md | 2 +- docs/overview/features/superfluid.md | 217 ------------------ docs/overview/features/tokenfactory.md | 2 +- docs/overview/integrate/apr.md | 11 +- docs/overview/integrate/frontend.md | 4 +- docs/overview/integrate/incentives.md | 48 +--- docs/overview/integrate/on-chain.md | 16 -- docs/overview/integrate/pool-setup.mdx | 21 +- 12 files changed, 24 insertions(+), 347 deletions(-) delete mode 100644 docs/overview/features/superfluid.md diff --git a/docs/osmosis-core/modules/concentrated-liquidity/README.md b/docs/osmosis-core/modules/concentrated-liquidity/README.md index 80069ac97..fd4cb8513 100644 --- a/docs/osmosis-core/modules/concentrated-liquidity/README.md +++ b/docs/osmosis-core/modules/concentrated-liquidity/README.md @@ -1523,19 +1523,11 @@ the use of these hooks. - `AuthorizedQuoteDenoms` []string -This is a list of quote denoms that can be used as token1 when creating a pool. -We limit the quote assets to a small set for the purposes of having convenient -price increments stemming from tick to price conversion. These increments are -in a human readable magnitude only for token1 as a quote. For limit orders in -the future, this will be a desirable property in terms of UX as to allow users -to set limit orders at prices in terms of token1 (quote asset) that are easy -to reason about. - -This goes in-hand with centralized exchanges that limit the quote asset set -to only a few denoms. - -Our list at launch is expected to consist of OSMO, DAI and USDC. These are set -in the v16 upgrade handler. +This was a list of quote denoms that can be used as token1 when creating a pool. +Quote assets were limited to a small set for the purposes of having convenient +price increments stemming from tick to price conversion. + +This is no longer an active parameter as of v30 although it remains visible on chain. - `IsPermisionlessPoolCreationEnabled` bool diff --git a/docs/overview/educate/getting-started.md b/docs/overview/educate/getting-started.md index 60300b44c..2de351500 100644 --- a/docs/overview/educate/getting-started.md +++ b/docs/overview/educate/getting-started.md @@ -81,9 +81,6 @@ Click Start Earning and choose a bonding length. ![](../../assets/start-earning.png) - -### Internal Incentives - ### External Incentives Osmosis not only allows the community to add incentives to gauges. Anyone can deposit tokens into a gauge to be distributed. This feature allows outside parties to augment Osmosis’ own liquidity incentive program. @@ -92,10 +89,5 @@ For example, there may be an ATOM< >FOOCOIN pool that has a one-day gauge incent These external incentive providers can also set up long-lasting incentive programs that distribute rewards over an extended time period. For example, the Foo Foundation can deposit 30,000 Foocoins to be distributed over a one-month liquidity program. The program will automatically distribute 1000 Foocoins per day to the gauge. -## Go Superfluid! - -## Unbonding LP Tokens -When a user wants to stop bonding an LP token, they submit a transaction that begins the unbonding period. After the end of the timer, they can submit another transaction to withdraw the tokens. - diff --git a/docs/overview/educate/osmo.mdx b/docs/overview/educate/osmo.mdx index e9e87307e..6363f3884 100644 --- a/docs/overview/educate/osmo.mdx +++ b/docs/overview/educate/osmo.mdx @@ -22,28 +22,23 @@ _the token must have reasonable liquidity, paired with $OSMO as a minimum requir ::: -## ProtoRev -The ProtoRev module mints and burns tokens in order to perform privileged arbitrage transactions onchain, ensuring prices are balanced across all liquidity sources. This happens within the same transaction and results in a net gain after the mint and burn from the arbitrage performed. - -If a non-OSMO asset is recovered from this arbitrage, it is sent to the Community Pool as specified in [Proposal 709](https://daodao.zone/dao/osmosis/proposals/709). - -If OSMO is recovered from this arbitrage, it is burned as specified in [Proposal 710](https://daodao.zone/dao/osmosis/proposals/710), permanently decreasing the Maximum Supply of 1 billion. -All permanent burns can be tracked by viewing the [Null Address](https://www.mintscan.io/osmosis/address/osmo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqmcn030). - ## Taker Fees Osmosis charges a small taker fee on all trades with a 0.1% default. Several routes have reductions or exemptions, which are managed by the [Protocol Fee Controller](https://daodao.zone/dao/osmo162wk8qc3w5s9hfs8dm76wrqnk6fjmsez2t4kk6zyugmrlzgds8sqfesmlm) subDAO. -Taker fees are collected in the Quote asset involved in the trade. +Taker fees are initially collected in the asset provided as the entry point to the trade. -All OSMO collected is distributed to stakers. +Non-OSMO collected is divided, with 25% going to the Community Pool and 75% used to buyback OSMO before further distribution. -Non-OSMO collected is divided, with 33% going to the Community Pool and 67% being converted to OSMO before being distributed to stakers. +OSMO collected is distributed partially to stakers (30%) and partially burned (70%) to reduce the maximum supply of OSMO. -## Superfluid Staking -The OSMO token is also minted and burned in the context of Superfluid Staking. As a Osmosis-specific feature, Superfluid Staking provides the consensus layer more security with a sort of "Proof of Useful Stake". Each person gets an amount of OSMO representative of the value of their share of liquidity pool tokens staked and delegated to validators, resulting in the security guarantee of the consensus layer to also be based on GAMM LP shares. This is available in pools that contain OSMO in the pairing and have had this feature enabled by governance. +## ProtoRev +The ProtoRev module mints and burns tokens in order to perform privileged arbitrage transactions onchain, ensuring prices are balanced across all liquidity sources. This happens within the same transaction and results in a net gain after the mint and burn from the arbitrage performed. -Further details can be seen in the [Superfluid module specifications](/osmosis-core/modules/superfluid/) +If a non-OSMO asset is recovered from this arbitrage, it is sent to the Community Pool as specified in [Proposal 709](https://daodao.zone/dao/osmosis/proposals/709). + +If OSMO is recovered from this arbitrage, it is burned as specified in [Proposal 710](https://daodao.zone/dao/osmosis/proposals/710), permanently decreasing the Maximum Supply of 1 billion. +All permanent burns can be tracked by viewing the [Null Address](https://www.mintscan.io/osmosis/address/osmo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqmcn030). ## Other Fees The OSMO token is required as fees for several tasks on chain to prevent spam and encourage considered usage of features. All fees paid go to the Community Pool. diff --git a/docs/overview/features/index.mdx b/docs/overview/features/index.mdx index de065dc4c..f4f452783 100644 --- a/docs/overview/features/index.mdx +++ b/docs/overview/features/index.mdx @@ -15,7 +15,6 @@ This page serves as an informative gateway to explore the innovative and distinc - [Fee Abstraction](/overview/features/fee-abstraction) - [IBC Hooks](/overview/features/ibc-hooks) - [IBC Rate Limit](/overview/features/ibc-rate-limit) - - [Superfluid Staking](/overview/features/superfluid) - [Token Factory](/overview/features/tokenfactory) - [Protorev](/overview/features/protorev) diff --git a/docs/overview/features/protorev.md b/docs/overview/features/protorev.md index 5f4d95346..9ee3000af 100644 --- a/docs/overview/features/protorev.md +++ b/docs/overview/features/protorev.md @@ -1,5 +1,5 @@ --- -sidebar_position: 9 +sidebar_position: 8 --- # Protorev diff --git a/docs/overview/features/superfluid.md b/docs/overview/features/superfluid.md deleted file mode 100644 index 6b0ad4a50..000000000 --- a/docs/overview/features/superfluid.md +++ /dev/null @@ -1,217 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Superfluid Staking - -## Abstract - -Superfluid Staking provides the consensus layer more security with a -sort of "Proof of Useful Stake". Each person gets an amount of Osmo -representative of the value of their share of liquidity pool tokens -staked and delegated to validators, resulting in the security guarantee -of the consensus layer to also be based on GAMM LP shares. The OSMO -token is minted and burned in the context of Superfluid Staking. -Throughout all of this, OSMO's supply is preserved in queries to the -bank module. - -### The process - -All of the below methods are found under the [Superfluid -modules](https://github.com/osmosis-labs/osmosis/tree/main/x/superfluid). - -- The `SuperfluidDelegate` method stores your share of bonded - liquidity pool tokens, with `validateLock` as a verifier for lockup - time. -- `GetSuperfluidOsmo` mints OSMO tokens each day for delegation as a - representative of the value of your pool share. This amount is - minted because the staking module at the moment requires staked - tokens to be in OSMO. This amount is burned each day and re-minted - to keep the representative amount of the value of your pool share - accurate. The lockup duration is guaranteed from the underlying - lockup module. -- `GetExpectedDelegationAmount` iterates over each (denom, delegate) - pair and checks for how much OSMO we have delegated. The difference - from the current balance to what is expected is burned / minted to - match with the expected. -- A `messageServer` method executes the Superfluid delegate message. -- `syntheticLockup` is used to index bond holders and tracking their - addresses for reward distribution or potentially slashing purposes. - These track whether if your Superfluid stake is currently bonding or - unbonding. -- An `IntermediaryAccount` is mostly used for the actual reward - distribution or slashing events, and are responsible for - establishing the connection between each superfluid staked lock and - their delegation to the validator. These work by transferring the - superfluid OSMO to their respective delegators. Rewards are linearly - scaled based on how much you have locked for a given (validator, - denom) pair. Rewards are first moved to the incentive gauges, then - distributed from the gauges. In this way, we're using the existing - gauge reward system for paying out superfluid staking rewards and - tracking the amount you have superfluidly staked using the lockup - module. -- Rewards are distributed per epoch, which is currently a day. - `abci.go` checks whether or not the current block is at the - beginning of the epoch using `BeginBlock`. -- Superfluid staking will continue to expand to other Osmosis pools - based on governance proposals and vote turnouts. - -### Example - -If Alice has 500 GAMM tokens bonded to the ATOM \<\> OSMO, she will have -the equivalent value of OSMO minted, delegated to her chosen staker, and -burned for her each day with Superfluid staking. On the user side, all -she has to know is who she wants to delegate her tokens to. In order to -switch delegation, she has to unbond her tokens from the pool first and -then redeposit. Bob, who has a share of the same liquidity pool before -Superfluid Staking went live, also has to re-deposit into the pool for -the above process to kickstart. - -### Why mint Osmo? How is this method safe and accurate? - -Superfluid staking requires the minting of OSMO because in order to -stake on the Osmosis chain, OSMO tokens are required as the chosen -collateral. Synthetic Osmo is minted here as a representative of the -value of each superfluid staker's liquidity pool tokens. - -The pool tokens are acquired by the user from normally staking in a -liquidity pool. They get minted an amount of OSMO equivalent to the -value of their GAMM pool tokens. This method is accurate because -querying the value OSMO every day allows for burning and minting -according to the difference in value of OSMO relative to the expected -delegation amount (as seen with -[GetExpectedDelegationAmount](https://github.com/osmosis-labs/osmosis/blob/main/x/superfluid/keeper/stake.go)). -It's like having a price oracle for fairly calculating the amount the -user has superfluidly staked. - -On epoch (start of every day), we read from the lockup module how much -GAMM tokens we have locked which acts as an oracle for the -representative price of the GAMM token shares. The superfluid module has -"hooks" messages to refresh delegation amounts -(`RefreshIntermediaryDelegationAmounts`) and to increase delegation on -lockup (`IncreaseSuperfluidDelegation`). Then, we see whether or not the -superfluid OSMO currently delegated is worth more or less than this -expected delegation amount amount. If the OSMO is worth more, we do -instant undelegations and immediately burn the OSMO. If less, we mint -OSMO and update the amount delegated. - -This minting is safe because we strict constrain the permissions of Bank -(the module that burns and mints OSMO) to do what it's designed to do. -The authority is mediated through `mintOsmoTokensAndDelegate` and -`forceUndelegateAndBurnOsmoTokens` keeper methods called by the -`SuperfluidDelegate` and `SuperfluidUndelegate` message handlers for the -tokens. The hooks above that increase delegation and refresh delegation -amounts also call this keeper method. - -The delegation is then verified to not already be associated with an -intermediary account (to prevent double-staking), and is always -delegated or withdrawn taking into account various multipliers for -synthetic OSMO value (its worth with respect to the liquidity pool, and -a risk modifier) to prevent mint inaccuracies. Before minting, we also -check that the message sender is the owner of the locked funds; that the -lock is not unlocking; is locked for at least the unbonding period, and -is bonded to a single asset. We also check to see if the lock isn't -already in superfluid and that the same lock isn't currently being -unbonded. - -On the end of each epoch, we iterate through all intermediary accounts -to withdraw delegation rewards they may have received and put it all -into the perpetual gauges corresponding to each account for reward -delegation. - -### Bonding, unbonding, slashing - -Here, we describe how token bonding and unbonding works, and what -happens to your superfluid tokens in the case of a slashing event. - -### Bonding - -When bonding, your input tokens are locked up and you are given GAMM -pool tokens in exchange. These GAMM pool tokens represent a share of the -total liquidity pool, and allows you to get transaction fees or -participate in external incentive gauge token distributions. When -bonding, on top of the regular bonding transaction there will also be a -selection of validators. As stated above, OSMO is also minted and burned -each day and superfluidly staked to whoever you have chosen to be your -validator. You gain additional APR as a reward for bolstering the -Osmosis chain's consensus integrity by delegating. - -### Unbonding - -When unbonding, superfluid tokens get un-delegated. After making sure -that the unbond message sender is the owner of their corresponding -locked funds, the existing synthetic lockup is deleted and replaced with -a new synthetic lockup for unbonding purposes. The undelegated OSMO is -then instantly withdrawn from the intermediate account and validator -using the InstantUndelegate function. The OSMO that was originally used -for representing your LP shares are burnt. Moves the tracker for -unbonding, allows the underlying lock to start unlocking if desired - -## Concepts - -### SyntheticLockups - -SyntheticLockups are synthetica of PeriodLocks, but different in the -sense that they store suffix, which is a combination of -bonding/unbonding status + validator address. This is mainly used to -track whether an individual lock that has been superfluid staked has an -bonding status or a unbonding status from the staking delegations. - -### Intermediary Account - -Intermediary Accounts establishes the connections between the superfluid -staked locks and delegations to the validator. Intermediary accounts -exists for every denom + validator combination, so that it would group -locks with the same denom + validator selection. Superfluid staking a -lock would mint equivalent amount of OSMO of the lock and send it to the -intermediary account and the intermediarry accounts would be delegating -to the specified validator. - -### Intermediary Account Connection - -Intermediary Accounts Connection serves the role of tracking the locks -that an Intermediary Account is dedicated to. - -## State - -### Superfluid Asset - -A superfluid asset is a alternative asset (non-OSMO) that is allowed by -governance to be used for staking. - -It can only be updated by governance proposals. We validate at proposal -creation time that the denom + pool exists. (Are we going to ignore edge -cases around a reference pool getting deleted it) - -### Intermediary Accounts - -Lots of questions to be answered here - -### Dedicated Gauges - -Each intermediary account has has dedicated gauge where it sends the -delegation rewards to. Gauges are distributing the rewards to end users -at the end of the epoch. - -### Synthetic Lockups created - -At the moment, one lock can only be fully bonded to one validator. - -### Osmo Equivalent Multipliers - -The Osmo Equivalent Multiplier for an asset is the multiplier it has for -its value relative to OSMO. - -Different types of assets can have different functions for calculating -their multiplier. We currently support two asset types. - -1. Native Token - -The multiplier for OSMO is always 1. - -2. Gamm LP Shares - -Currently we use the spot price for an asset based on a designated -osmo-basepair pool of an asset. The multiplier is set once per epoch, at -the beginning of the epoch. In the future, we will switch this out to -use a TWAP instead. diff --git a/docs/overview/features/tokenfactory.md b/docs/overview/features/tokenfactory.md index 19b6999b2..af334883c 100644 --- a/docs/overview/features/tokenfactory.md +++ b/docs/overview/features/tokenfactory.md @@ -1,5 +1,5 @@ --- -sidebar_position: 8 +sidebar_position: 7 --- # Token Factory diff --git a/docs/overview/integrate/apr.md b/docs/overview/integrate/apr.md index 1045adc41..59610e629 100644 --- a/docs/overview/integrate/apr.md +++ b/docs/overview/integrate/apr.md @@ -29,13 +29,4 @@ Where: - `Exponent` is a factor related to the coin denomination. - `Liquidity` is the total liquidity in USD for the pool, adjusted by the percentage bonded (if applicable). - `Coin Price` is the current price of the coin. - - The multiplier \(36500\) annualizes the rate. - -2. **Superfluid APR Calculation** (if applicable): - - The Superfluid APR is calculated additionally for pools where it's relevant, using the formula: - ![](../../assets/apr-superfluid.png) - - Where: - - \(\text{Staking APR}\) is the APR from staking. - - `Superfluid Percentage` is the percentage of the pool that is superfluid. - - `Superfluid Risk Factor` is a risk adjustment factor. - - `APR_14d` is the 14-day APR calculated as above. + - The multiplier \(36500\) annualizes the rate. \ No newline at end of file diff --git a/docs/overview/integrate/frontend.md b/docs/overview/integrate/frontend.md index 78600c59f..17690babb 100644 --- a/docs/overview/integrate/frontend.md +++ b/docs/overview/integrate/frontend.md @@ -6,7 +6,7 @@ sidebar_position: 8 ## List onto the Osmosis Frontend -As long as the asset has been properly registered according to the [registration documentation](https://docs.osmosis.zone/overview/integrate/registration) and there is a pool with USD $1000 of [initial liquidity](https://docs.osmosis.zone/overview/integrate/liquidity) then the pool will be visible on this frontend. +As long as the asset has been properly registered according to the [registration documentation](https://docs.osmosis.zone/overview/integrate/registration) and there is a pool with USD $1,000 of [initial liquidity](https://docs.osmosis.zone/overview/integrate/liquidity) then the pool will be visible on this frontend. ## Verify Assets @@ -18,4 +18,4 @@ Approval requires meeting the requirements in the assetlist repo that can be see ## Swap Page -Although any asset in a liquidity pool can be traded when a user specifies the pool, an asset will only be listed on the Swap page if it is has a pool containing liquidity of USD $10,000. \ No newline at end of file +Although any asset in a liquidity pool can be traded when a user specifies the pool, an asset will only be listed on the Swap page if it is has a pool containing liquidity of USD $1,000. \ No newline at end of file diff --git a/docs/overview/integrate/incentives.md b/docs/overview/integrate/incentives.md index bc647aa0d..fec01157d 100644 --- a/docs/overview/integrate/incentives.md +++ b/docs/overview/integrate/incentives.md @@ -3,21 +3,7 @@ sidebar_position: 7 --- # Liquidity Incentives -Liquidity Providers on Osmosis receive swap fees by default, but can receive additional liquidity incentives from many sources. - -* [External Incentives](#external-incentives) - - Osmosis allows for the permissionless creation of external liquidity mining gauges, allowing projects to add their own rewards to further incentivize users to provide liquidity into a pool. - -* [Internal Incentives](#internal-incentives) - - Osmosis allocates up to 20% of inflation to incentivize users to bond their liquidity on Osmosis. If a pool is included by governance then it will be allocated a share of incentives based on several factors such as type of asset, swap fees generated in the pool, age of listing and sustained volumes. - Osmosis currently only incentivizes pools composed of a very limited set of tokens as of [Proposal 638](https://www.mintscan.io/osmosis/proposals/638). - -* [Superfluid Staking](#superfluid-staking) - - If enabled on a pool, a portion of the OSMO within can also be staked. Providing additional security to Osmosis as well as giving the liquidity providers additional staking rewards and the ability to participate in governance. - Superfluid staking is only available on Classic pools or full range Supercharged Pools. +Liquidity Providers on Osmosis receive swap fees by default, but can receive additional liquidity incentives through the permissionless creation of external liquidity mining gauges, allowing projects to add their own rewards to further incentivize users to provide liquidity into a pool. ## How to add External Incentives to a pool @@ -73,34 +59,4 @@ The command to run takes the format: **Example Classic Pool command** -`osmosisd tx incentives create-gauge gamm/pool/1 1355000000uosmo 0 --duration 336h --epochs 30 --start-time 1698328800 --from Wosmongton --gas=auto --gas-prices 0.0025uosmo --gas-adjustment 1.3` - - - -## Internal incentives -Internal incentives are provided from Osmosis inflation at each Epoch. Each pool on Osmosis has gauges that may be assigned a weighting to receive a share of these emissions. This weighting can be viewed on chain by [querying the poolincentives module](https://docs.osmosis.zone/osmosis-core/modules/pool-incentives#queries). - -To see how these weightings translate into incentive rates and expected changes at the next adjustment there is a dashboard available from [Chaos Labs](https://community-staging.chaoslabs.xyz/osmosis/incentives-optimization). - -Adjustments happen monthly and are required to be voted through Osmosis Governance in order to directly approve changes to the on chain parameters. An example of this is [Proposal 647](https://www.mintscan.io/osmosis/proposals/647). - -Calculations to determine incentive weighting for each pool were set in [Proposal 578](https://www.mintscan.io/osmosis/proposals/578). - -These use the incentives research carried out [documented in this paper](https://hathornodes.com/osmosis_incentives_research.html) and the [revision to this](https://hathornodes.com/incentives_research_update.html) based on community feedback. - -In summary, liquidity targets are set based on: -* Aiming to have slippage of 0.25% for most retail swaps, with 2.5% allowed for whale swaps. -* Minimum liquidity targets to defend against Oracle manipulation - -Incentives are then adjusted by up to 10% per month until that liquidity target is reached. - -## Superfluid Staking -Osmosis Superfluid Staking can further incentivize users to provide liquidity to a pool, as they are able to stake their LP tokens for additional rewards as well as participating in Osmosis governance. The rewards from superfluid staking come from a portion of the OSMO in the pool being staked, so only OSMO pools can qualify for superfluid staking. - -Superfluid staking is only available on full range positions in Supercharged pools and is currently only enabled on major pairings with OSMO. - -The feature is enabled by via on-chain governance by a `Set Superfluid Asset` Proposal. These proposals must also be posted to the [Osmosis Governance Forum](https://forum.osmosis.zone/) for 3 days before moving to chain. - -For an example of a Superfluid proposal see [Proposal #546: Enable Superfluid Staking on OSMO/KAVA](https://www.mintscan.io/osmosis/proposals/546) - -For instructions on how to carry out a `Set Superfluid Asset` Proposal via [CLI](https://docs.osmosis.zone/osmosis-core/osmosisd) see [Gov Module Documentation](https://docs.osmosis.zone/osmosis-core/modules/gov#submit-proposal-set-superfluid-asset) +`osmosisd tx incentives create-gauge gamm/pool/1 1355000000uosmo 0 --duration 336h --epochs 30 --start-time 1698328800 --from Wosmongton --gas=auto --gas-prices 0.0025uosmo --gas-adjustment 1.3` \ No newline at end of file diff --git a/docs/overview/integrate/on-chain.md b/docs/overview/integrate/on-chain.md index 49ce2ca3b..21f35d5cb 100644 --- a/docs/overview/integrate/on-chain.md +++ b/docs/overview/integrate/on-chain.md @@ -331,22 +331,6 @@ To keep a small but meaningful incentive for LPs to still migrate their position # Parameters -- `AuthorizedQuoteDenoms` []string - -This is a list of quote denoms that can be used as token1 when creating a pool. -We limit the quote assets to a small set for the purposes of having convenient -price increments stemming from tick to price conversion. These increments are -in a human readable magnitude only for token1 as a quote. For limit orders in -the future, this will be a desirable property in terms of UX as to allow users -to set limit orders at prices in terms of token1 (quote asset) that are easy -to reason about. - -This goes in-hand with centralized exchanges that limit the quote asset set -to only a few denoms. - -Our list at launch is expected to consist of OSMO, DAI and USDC. These are set -in the v16 upgrade handler. - - `IsPermisionlessPoolCreationEnabled` bool The flag indicating whether permissionless pool creation is enabled or not. For diff --git a/docs/overview/integrate/pool-setup.mdx b/docs/overview/integrate/pool-setup.mdx index d10e1406a..1b766fda3 100644 --- a/docs/overview/integrate/pool-setup.mdx +++ b/docs/overview/integrate/pool-setup.mdx @@ -26,7 +26,7 @@ Note: When specifying token denominations that are represented as `ibc/` v A Supercharged Pool is Osmosis’ Implementation of [Uniswap’s Concentrated Liquidity](https://docs.uniswap.org/concepts/protocol/concentrated-liquidity). In addition to full-range positions, liquidity providers can also ‘concentrate’ their liquidity to only apply within a defined price range. When the market price is within the defined price range, the liquidity earns comparatively more swap fees and incentives at the cost of increased impermanent loss; but when the market price is outside of the defined price range, the position doesn’t earn any swap fees (or incentives). -On Osmosis, for technical and UX reasons, some parameters are restricted to a limited set of governance-approved values. For example, the allowable quote assets are limited to a small set of tokens, meaning that all CL pools must contain at least one of these authorized tokens (which are listed below). The same applies to spread factor–-basically the same thing as swap fee–-and tick spacing–-used for refining the granularity of possible positions. +On Osmosis, for technical and UX reasons, some parameters are restricted to a limited set of governance-approved values. These are the spread factor–-basically the same thing as swap fee–-and tick spacing–-used for refining the granularity of possible positions. ### Create Pool @@ -73,7 +73,7 @@ Usage: ```bash osmosisd tx concentratedliquidity create-pool [denom-0] [denom-1] [tick-spacing] [spread-factor] [flags]` -denom-1 (the quote denom), tick spacing, and spread factors must all be authorized by the concentrated liquidity module +tick spacing, and spread factors must all be authorized by the concentrated liquidity module ``` Example: @@ -84,22 +84,7 @@ osmosisd tx concentratedliquidity create-pool ibc/... uosmo 100 0.01 --from val There are recommendations for creating CL pools: -- As mentioned in the help text, denom-1 (the quote denom), tick spacing, and spread factors must all be authorized by the concentrated liquidity module, and these can be confirmed by querying the chain: `osmosisd query concentratedliquidity params` -- denom-1: Must be from a set of authorized ‘quote’ assets, which include (not exhaustive): - - ibc/498A0751C798A0D9A389AA3691123DADA57DAA4FE165D5C75894505B876BA6E4 (noble.USDC) - - ibc/4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB (kava.USDT) - - ibc/0CD3A0285E1341859B5E86B6AB7682F023D03E97607CCC1DC95706411D866DF7 (DAI.axl) - - ibc/EA1D43981D5C9A1C4AAEA9C23BB1D4FA126BA9BC7020A25E0AE4AA841EA25DC5 (wETH.axl) - - factory/osmo1z0qrq605sjgcqpylfl4aa6s90x738j7m58wyatt0tdzflg2ha26q67k743/wbtc (WBTC) - - ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2 (ATOM) - - ibc/D79E7D83AB399BFFF93433E54FAA480C191248FC556924A2A8351AE2638B3877 (TIA) - - uosmo (OSMO) - - ...and several others -- ...and on Testnet (osmo-test-5) are: - - uosmo (OSMO) - - ibc/A8C2D23A1E6F95DA4E48BA349667E322BD7A6C996D8A4AAE8BA72E190F3D1477 (ATOM) - - ibc/8E2FEFCBD754FA3C97411F0126B9EC76191BAA1B3959CB73CECF396A4037BBF0 (unregistered denom) - - ibc/6F34E1BD664C36CE49ACC28E60D62559A5F96C4F9A6CCE4FC5A67B2852E24CFE (aUSDC.axl) +- As mentioned in the help text, tick spacing, and spread factors must be authorized by the concentrated liquidity module, and these can be confirmed by querying the chain: `osmosisd query concentratedliquidity params` - tick-spacing: Must be from a set of authorized values: 1, 10, 100, and 1000 - It is recommended to use a tick spacing of 100, which nearly all current Supercharged pools use; this effectively sets positions as being definable at any `0.01%` interval. - Since passing each initialized tick carries a computational cost(, and therefore requires more gas), a smaller tick spacing will require higher transaction fees, while a larger tick spacing will have lower transaction fees (but less precise positions).