# Blockchain Modules

# Modules — Nibiru

Module Active? Description
wasm ✔️ Handles Wasm smart contracts. This is the interface with the Wasm VM.
devgas ✔️ Implements a Smart contract gas royalties mechanism allowing builders to capture the value they create.
epochs (opens new window) ✔️ Often in the SDK, we would like to run certain code every-so often. The purpose of epochs module is to allow other modules to set that they would like to be signaled once every period. So another module can specify it wants to execute code once a week, starting at UTC-time = x. epochs creates a generalized epoch interface to other modules so that they can easily be signalled upon such events.
oracle (opens new window) ✔️ Handles the decentralized oracle module.
common (opens new window) ✔️ Holds helper and utility functions to be utilized by other x/ cosmos-sdk modules.
common/testutil (opens new window) ✔️ Helper functions for unit and integration tests.
spot (opens new window) ⭕️ Responsible for creating, joining, and exiting liquidity pools. It also allows users to swap between two assets in an existing pool. It's a fully functional AMM.
perp ⭕️ Powers the Nibi-Perps decentralized application. This module enables traders to open long and short leveraged positions and houses all of the PnL calculation and liquidation logic.

# Modules — Cosmos-SDK

Production-grade modules imported from the Cosmos-SDK:

Module Active? Description
auth ✔️ Authentication of accounts and transactions for Cosmos SDK application.
authz ✔️ Authorization for accounts to perform actions on behalf of other accounts.
bank ✔️ Token transfer functionalities.
base (opens new window) ✔️
capability ✔️ Object capability implementation.
crisis ✔️ Halting the blockchain under certain circumstances (e.g. if an invariant is broken).
crypto (opens new window) ✔️
distribution ✔️ Fee distribution, and staking token provision distribution.
evidence ✔️ Evidence handling for double signing, misbehaviour, etc.
feegrant ✔️
genutil (opens new window) ✔️
gov ✔️ On-chain proposals and voting.
mint (opens new window) ✔️ Creation of tokens native to the chain.
params (opens new window) ✔️ Globally available parameter store.
slashing (opens new window) ✔️ Validator punishment mechanisms.
staking ✔️ Proof-of-Stake layer for public blockchains.
tx (opens new window) ✔️
upgrade ✔️ Software upgrades handling and coordination.
vesting (opens new window) ✔️

# Inter-Blockchain Communcation (IBC)

The IBC module has its own repository, ibc-go (opens new window).