Modules
📄️ Introduction
Module Accounts
📄️ Concentrated Liquidity
Background
📄️ CosmWasm Pool
Overview
📄️ Downtime-detector
For several use cases, we need a module that can detect when the chain is recovering from downtime. We want to be able to efficiently know "Has it been $RECOVERYPERIOD minutes since the chain has been down for $DOWNTIMEPERIOD", and expose this as a query to contracts.
📄️ Epochs
Abstract
🗃️ GAMM
2 items
📄️ Gov
The `gov` module enables on-chain governance which allows Osmosis token holders to participate in a community led decision-making process. For example, users can:
📄️ IBC-hooks
Wasm Hooks
📄️ IBC Rate Limit
The IBC Rate Limit module is responsible for adding a governance-configurable rate limit to IBC transfers.
📄️ Incentives
Abstract
📄️ Lockup
Abstract
📄️ Mint
The mint module is responsible for creating tokens in a flexible way to reward
📄️ Pool Incentives
Abstract
📄️ Pool Manager Module
The poolmanager module exists as a swap entrypoint for any pool model
📄️ Osmosis modules
Osmosis implements the following custom modules:
📄️ Superfluid Staking
Abstract
📄️ Token Factory
The tokenfactory module allows any account to create a new token with
📄️ TWAP
Time Weighted Average Price
📄️ Txfees
The txfees modules allows nodes to easily support many tokens for usage as txfees, while letting node operators only specify their tx fee parameters for a single "base" asset.
📄️ validator-set Preference
Abstract
Module Accounts
All modules have their own module account. Think of this as a wallet that can only be controlled by that module. Here are a few with their respective wallet addresses and permissions:
Name | Address | Permissions |
---|---|---|
transfer | minter, burner | |
bonded_tokens_pool | burner, staking | |
not_bonded_tokens_pool | burner, staking | |
developer_vesting_unvested | minter | |
gov | burner | |
distribution | none | |
lockup | minter, burner | |
incentives | minter, burner | |
gamm | minter, burner | |
mint | minter, burner | |
claim | minter | |
poolincentives | none | |
fee_collector | none |
Module Flow
While module functions can be called in many different orders, here is a basic flow of module commands to bring assets onto Osmosis and then add/remove liquidity:
- (IBC-Transfer) IBC Received
- (GAMM) Swap Exact Amount In
- (GAMM) Join Pool
- (lockup) Lock-tokens
- (superfluid) Calculate and delegate synthetic Osmo
- (lockup) Begin-unlock-tokens
- (GAMM) Exit Pool