Skip to main content

Chain Development

The specifications for the Osmosis chain itself, for contributing to the protocol or understanding how a module behaves. To set up a local toolchain (build from source, IDE, LocalOsmosis, the osmosisd binary, and key management), see Developer Environment.

Each module page below documents one x/ module: its messages, state, and parameters. They cover the AMM and pool types (GAMM, concentrated liquidity, stableswap, CosmWasm pools, pool manager), incentives and staking (incentives, pool incentives, lockup, superfluid, valset preference), economics (mint, txfees, ProtoRev), governance, TWAP, epochs, the token factory, and the IBC middleware (hooks, rate limiting).

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:

NameAddressPermissions
transferosmo1yl6hdjhmkf37639730gffanpzndzdpmhxy9ep3minter, burner
bonded_tokens_poolosmo1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3aq6l09burner, staking
not_bonded_tokens_poolosmo1tygms3xhhs3yv487phx3dw4a95jn7t7lfqxwe3burner, staking
developer_vesting_unvestedosmo1vqy8rqqlydj9wkcyvct9zxl3hc4eqgu3d7hd9kminter
govosmo10d07y265gmmuvt4z0w9aw880jnsr700jjeq4qpburner
distributionosmo1jv65s3grqf6v6jl3dp4t6c9t9rk99cd80yhvldnone
lockuposmo1njty28rqtpw6n59sjj4esw76enp4mg6g7cwrhcminter, burner
incentivesosmo1krxwf5e308jmclyhfd9u92kp369l083wequge6minter, burner
gammosmo1c9y7crgg6y9pfkq0y8mqzknqz84c3etr0kpcvjminter, burner
mintosmo1m3h30wlvsf8llruxtpukdvsy0km2kum8q25g3jminter, burner
claimosmo1m5dncvfv7lvpvycr23zja93fecun2kcv226glqminter
poolincentivesosmo1upfuxznarpja3sywq0tzd2kktg9wv8mcc0rlm9none
fee_collectorosmo17xpfvakm2amg962yls6f84z3kell8c5lczssa0none

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:

  1. (IBC-Transfer) IBC Received
  2. (GAMM) Swap Exact Amount In
  3. (GAMM) Join Pool
  4. (lockup) Lock-tokens
  5. (superfluid) Calculate and delegate synthetic Osmo
  6. (lockup) Begin-unlock-tokens
  7. (GAMM) Exit Pool