README

Cosmos SDK

banner

version CircleCI codecov Go Report Card license LoC API Reference riot.im

The Cosmos-SDK is a framework for building blockchain applications in Golang. It is being used to build Gaia, the first implementation of the Cosmos Hub.

WARNING: The SDK has mostly stabilized, but we are still making some breaking changes.

Note: Requires Go 1.13+

Quick Start

To learn how the SDK works from a high-level perspective, go to the SDK Intro.

If you want to get started quickly and learn how to build on top of the SDK, please follow the SDK Application Tutorial. You can also fork the tutorial's repository to get started building your own Cosmos SDK application.

For more, please go to the Cosmos SDK Docs.

Cosmos Hub Mainnet

The Cosmos Hub application, gaia, has moved to its own repository. Go there to join the Cosmos Hub mainnet and more.

Scaffolding

If you are starting a new app or a new module we provide a scaffolding tool to help you get started and speed up development. If you have any questions or find a bug, feel free to open an issue in the repo.

Disambiguation

This Cosmos-SDK project is not related to the React-Cosmos project (yet). Many thanks to Evan Coury and Ovidiu (@skidding) for this Github organization name. As per our agreement, this disambiguation notice will stay here.

Expand ▾ Collapse ▴

Directories

Path Synopsis
baseapp
client
client/context
client/debug
client/flags
client/input
client/keys
client/lcd
client/lcd/statik Package statik contains static assets.
client/rpc
codec
crypto
crypto/keys
crypto/keys/hd Package hd provides basic functionality Hierarchical Deterministic Wallets.
crypto/keys/keyerror
crypto/keys/mintkey
server
server/config
server/mock nolint
simapp
simapp/helpers
simapp/params Package params defines the simulation parameters in the simapp.
store
store/cache
store/cachekv
store/cachemulti
store/dbadapter
store/gaskv
store/iavl
store/list
store/prefix
store/queue
store/rootmulti
store/tracekv
store/transient
store/types
tests
tests/mocks Package mocks is a generated GoMock package.
types
types/errors Package errors implements custom error interfaces for cosmos-sdk.
types/module Package module contains application module patterns and associated "manager" functionality.
types/rest Package rest provides HTTP types and primitives for REST requests validation and responses handling.
version Package version is a convenience utility that provides SDK consumers with a ready-to-use version command that produces apps versioning information based on flags passed at compile time.
x/auth nolint autogenerated code using github.com/rigelrozanski/multitool aliases generated for the following subdirectories: ALIASGEN: github.com/cosmos/cosmos-sdk/x/auth/ante ALIASGEN: github.com/cosmos/cosmos-sdk/x/auth/keeper ALIASGEN: github.com/cosmos/cosmos-sdk/x/auth/types
x/auth/ante
x/auth/client/cli
x/auth/client/rest
x/auth/client/utils
x/auth/exported
x/auth/keeper
x/auth/legacy/v0_34 DONTCOVER nolint
x/auth/legacy/v0_36 DONTCOVER nolint DONTCOVER nolint
x/auth/legacy/v0_38
x/auth/legacy/v0_39
x/auth/simulation
x/auth/types nolint noalias
x/auth/vesting nolint autogenerated code using github.com/rigelrozanski/multitool aliases generated for the following subdirectories: ALIASGEN: github.com/cosmos/cosmos-sdk/x/auth/vesting/types/
x/auth/vesting/exported
x/auth/vesting/types nolint noalias
x/bank
x/bank/client/cli
x/bank/client/rest
x/bank/internal/keeper
x/bank/internal/types
x/bank/simulation
x/crisis
x/crisis/client/cli nolint
x/crisis/internal/keeper
x/crisis/internal/types
x/distribution Package distribution implements a Cosmos SDK module, that provides an implementation of the F1 fee distribution algorithm.
x/distribution/client
x/distribution/client/cli nolint
x/distribution/client/common
x/distribution/client/rest
x/distribution/keeper
x/distribution/legacy/v0_34 DONTCOVER nolint
x/distribution/legacy/v0_36 DONTCOVER nolint
x/distribution/legacy/v0_38
x/distribution/simulation
x/distribution/types nolint
x/evidence Package evidence implements a Cosmos SDK module, per ADR 009, that allows for the submission and handling of arbitrary evidence of misbehavior.
x/evidence/client
x/evidence/client/cli
x/evidence/client/rest
x/evidence/exported
x/evidence/internal/keeper
x/evidence/internal/types DONTCOVER Common testing types and utility functions and methods to be used in unit and integration testing of the evidence module.
x/genaccounts Package genaccounts is now deprecated.
x/genaccounts/legacy/v0_34 DONTCOVER nolint
x/genaccounts/legacy/v0_36 DONTCOVER nolint DONTCOVER nolint
x/genutil nolint autogenerated code using github.com/rigelrozanski/multitool aliases generated for the following subdirectories: ALIASGEN: github.com/cosmos/cosmos-sdk/x/genutil/types Package genutil contains a variety of genesis utility functionality for usage within a blockchain application.
x/genutil/client/cli
x/genutil/client/rest
x/genutil/legacy/v0_36
x/genutil/legacy/v0_38
x/genutil/legacy/v0_39
x/genutil/types
x/gov nolint DONTCOVER
x/gov/client
x/gov/client/cli
x/gov/client/rest
x/gov/client/utils
x/gov/keeper nolint
x/gov/legacy/v0_34 DONTCOVER nolint
x/gov/legacy/v0_36 DONTCOVER nolint
x/gov/simulation
x/gov/types
x/mint
x/mint/client/cli
x/mint/client/rest
x/mint/internal/keeper
x/mint/internal/types
x/mint/simulation
x/mock Package mock provides utility methods to ease writing tests.
x/params Package params provides a namespaced module parameter store.
x/params/client
x/params/client/cli
x/params/client/rest
x/params/client/utils
x/params/simulation
x/params/subspace To prevent namespace collision between consumer modules, we define a type Subspace.
x/params/types
x/simulation Package simulation implements a full fledged Cosmos SDK application used for executing simulation test suites.
x/slashing
x/slashing/client/cli
x/slashing/client/rest
x/slashing/internal/keeper nolint nolint:deadcode,unused DONTCOVER noalias
x/slashing/internal/types noalias noalias DONTCOVER
x/slashing/simulation
x/staking
x/staking/client/cli
x/staking/client/rest
x/staking/exported
x/staking/keeper
x/staking/legacy/v0_34 DONTCOVER nolint
x/staking/legacy/v0_36 DONTCOVER nolint DONTCOVER nolint
x/staking/legacy/v0_38 DONTCOVER nolint DONTCOVER nolint
x/staking/simulation
x/staking/types
x/supply nolint autogenerated code using github.com/rigelrozanski/multitool aliases generated for the following subdirectories: ALIASGEN: github.com/cosmos/cosmos-sdk/x/supply/internal/keeper ALIASGEN: github.com/cosmos/cosmos-sdk/x/supply/internal/types
x/supply/client/cli
x/supply/client/rest
x/supply/exported
x/supply/internal/keeper
x/supply/internal/types
x/supply/legacy/v0_36 DONTCOVER nolint
x/supply/simulation
x/upgrade Package upgrade provides a Cosmos SDK module that can be used for smoothly upgrading a live Cosmos chain to a new software version.
x/upgrade/client
x/upgrade/client/cli
x/upgrade/client/rest
x/upgrade/internal/keeper
x/upgrade/internal/types
MODULE cosmovisor