cosmos-sdk
AGENTS.md7.1k starsChanged 8 months agoApache-2.0View on GitHub
This file provides guidance for automated agents contributing to this repository. Each of the following directories has its own go.mod and must be tidied / tested independently: Running go test ./... from the repo root only tests the root module. Use make test so the run-tests target walks every submodule.
Trending
Quiet this year.about the whole repository
Who's talking about cosmos/cosmos-sdk
- golang/go“proposal: errors: add With(err, other error) error ”GitHub · Apr 28, 2022 · 104 reactions
- golang/go“proposal: x/tools/go/analysis/passes/appends: check for incorrect slice length initialization ”GitHub · Oct 14, 2024 · 18 reactions
- cosmos/gaia“The one true master IBC implementation tracking issue”GitHub · Nov 26, 2019 · 13 reactions
- lfdt-ibc/ibc“ICS003: Remove client and consensus state validation during the connection handshake”GitHub · Jul 1, 2024 · 12 reactions
- certusone/genki-4000“Test export to genesis.json upgrade of Genki 4000 to 4001”GitHub · Dec 23, 2018 · 12 reactions
The biggest 5 of 62 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 62
Talked about on GitHub, Stack Overflow, Hacker News and Bluesky (62 times).
On GitHub · 48
- Apr 28, 2022proposal: errors: add With(err, other error) error — golang/go104 reactions · 119 comments
- Oct 14, 2024proposal: x/tools/go/analysis/passes/appends: check for incorrect slice length initialization — golang/go18 reactions · 28 comments
- Nov 26, 2019The one true master IBC implementation tracking issue — cosmos/gaia13 reactions · 2 comments
- Jul 1, 2024ICS003: Remove client and consensus state validation during the connection handshake — lfdt-ibc/ibc12 reactions · 1 comment
- Dec 23, 2018Test export to genesis.json upgrade of Genki 4000 to 4001 — certusone/genki-400012 reactions · 1 comment
43 more on GitHub
- Dec 19, 2018Community Upgrade 1.1 — cosmos/game-of-stakes12 reactions · 23 comments
- Sep 20, 2023feat!: switch to using mainline cosmos sdk v0.47.5 — celestiaorg/celestia-app10 reactions · 2 comments
- Jun 17, 2020Proposal: Consider immediate execution — tendermint/tendermint10 reactions · 8 comments
- Feb 3, 2023feat: add metadata for IBC tokens — lfdt-ibc/ibc-go9 reactions · 6 comments
- Jun 22, 2023feat(callbacks): adr8 implementation — lfdt-ibc/ibc-go8 reactions · 1 comment
- Jan 25, 2021UX and Security Updates for Stargate release — cosmos/gaia8 reactions · 6 comments
- Jan 15, 2021Groom Tendermint Logs — tendermint/tendermint7 reactions · 21 comments
- Jul 5, 2024INIT: In-Place Testnet Creation — ignite/cli6 reactions · 4 comments
- Aug 31, 2023deps: update to SDK v0.50 — lfdt-ibc/ibc-go6 reactions · 1 comment
- Jul 13, 2022Incorrect code in staking module `CompleteUnbonding` can cause permanent loss or minting of funds. — cosmos/interchain-security6 reactions · 6 comments
- Mar 31, 2021indexer: only provide streaming of events — tendermint/tendermint6 reactions · 15 comments
- Nov 25, 2020Non-atomicity of operations — lfdt-ibc/ibc-go6 reactions · 4 comments
- Apr 29, 2020State sync release and followup — tendermint/tendermint6 reactions · 3 comments
- Sep 28, 2022Adding in a new Authorization Type for IBC Transfers in Authz — lfdt-ibc/ibc-go5 reactions · 15 comments
- Jun 22, 2021fix(kwallet): empty wallet key query — 99designs/keyring5 reactions · 1 comment
- May 18, 2021Manual Testing for v0.43 — regen-network/regen-ledgersays it tested it5 reactions · 8 comments
- Jun 24, 2020p2p: data race in NetAddress.String() memoization — tendermint/tendermint5 reactions · 2 comments
- Jun 30, 2019Implementation side Feedback — lfdt-ibc/ibc5 reactions · 19 comments
- Oct 17, 2018Interactions between BFT time & unbonding period — tendermint/tendermint5 reactions · 16 comments
- Apr 26, 2018READ THIS FIRST (project update) — cosmos/ethermint-archive5 reactions · 8 comments
- Sep 6, 2024deps: update to cosmos-sdk v0.52 (Olympus) — lfdt-ibc/ibc-go4 reactions · 4 comments
- May 22, 2024[FEAT] ICS20-V2 — lfdt-ibc/ibc-go4 reactions · 1 comment
- Apr 26, 2024tonic-build: Codegen generates a name collision after auto-capitalization is applied, resulting in cargo build errors — grpc/grpc-rust4 reactions · 1 comment
- Apr 9, 2024feat!: integrate cosmwasm — cosmos/gaia4 reactions · 7 comments
- Aug 13, 2023refactor(simapp): use app v2 for core sdk modules — lfdt-ibc/ibc-go4 reactions · 6 comments
- Apr 25, 2023feat(ica/host)!: migrate ICA host params to be self managed — lfdt-ibc/ibc-go4 reactions · 3 comments
- Mar 5, 2023bnbchaind crash after restart bnbchaind when syncing — bnb-chain/node4 reactions · 18 comments
- Sep 28, 2022docs: adding migration doc for ibc-go v6 — lfdt-ibc/ibc-go4 reactions · 1 comment
- Jul 20, 2021Implement ADR-036 — cosmos/cosmjs4 reactions · 11 comments
- Jun 9, 2021Proposal: Storage Overhaul — f-o-a-m/kepler4 reactions · 1 comment
- May 20, 2021Add liquidity module to gaia — cosmos/gaia4 reactions · 15 comments
- Jan 28, 2021Summary of Ledger Nano Transaction Signing — cosmos/gaia4 reactions · 4 comments
- May 19, 2020Add gas estimates to buildAndSign, add checks to log — cosmos/relayer4 reactions · 2 comments
- Dec 18, 2018Upgrade 1 — cosmos/game-of-stakes4 reactions · 4 comments
- May 31, 2018quick install script — tendermint/tendermint4 reactions
- Nov 11, 2025feat: support proxy with grpc-only mode — cosmos/evm3 reactions · 1 comment
- Jul 15, 2024deps: bump cosmos-sdk to v0.50.9 — lfdt-ibc/ibc-go3 reactions · 11 comments
- Jun 13, 2024feat(connect): introduce ignite connect — ignite/apps3 reactions · 9 comments
- Mar 27, 2024e2e: verify disabled ics27 host params — lfdt-ibc/ibc-go3 reactions · 1 comment
- Mar 4, 2024imp: adding 08-wasm build opts with libwasmvm linking disabled — lfdt-ibc/ibc-go3 reactions · 8 comments
- Jan 31, 2024feat: allow module safe queries in ICA — lfdt-ibc/ibc-go3 reactions · 6 comments
- Mar 14, 2023deps: bump SDK v0.47 — lfdt-ibc/ibc-go3 reactions · 1 comment
- Feb 1, 2023proposal: capability addition to ibc-go structure — lfdt-ibc/ibc-go3 reactions · 5 comments
On Stack Overflow · 10
- Mar 15, 2019Unable to use make in alpine image9 votes · 3 answers
- Jan 30, 2023signature verification failed; please verify account number and chain-id: unauthorized4 votes
- Dec 1, 2020How to convert exported Cosmos SDK private key to format that can be imported by Keplr or Metamask?4 votes
- Jan 18, 2021How can I make a batch send transaction?3 votes
- Jan 26, 2021Error in setting up genesis transactions -- what am I doing wrong?2 votes · 2 answers
5 more on Stack Overflow
- Jan 2, 2025Starting Cosmos SDK1 vote · 1 answer
- Jan 27, 2021Error in setting up genesis transactions -- what am I doing wrong?1 vote
- Jan 19, 2021How can I make a batch send transaction?1 vote
- Nov 13, 2021i just running the croeseid v0.8.1 testnet node(CRO),the node runs upto blockheight = 116426 then it shows the following below0 votes
- Jan 20, 2021Cosmos SDK Coins Does Not Allow Uppercase Symbol Coins0 votes · 1 answer
On Hacker News · 2
- Mar 11, 2021The Cosmos-SDK is a framework for building blockchain applications in Golang3 points
- Apr 16, 2018The Cosmos-SDK is a blockchain framework in Go1 point
On Bluesky · 2
- Jan 14, 20252. Cosmos SDK ⚒️ Think of it as a toy box filled with building blocks for creating appchains. It offers the tools needed to build unique… — @tonyler.bsky.social0 likes and reposts · 1 reply
- Jan 14, 20252. Cosmos SDK ⚒️ Think of it as a toy box filled with building blocks for creating appchains. It offers the tools needed to build unique… — @tonyler.bsky.social0 likes and reposts · 1 reply
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,439 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
The file
We split this AGENTS.md into the rules it gives an agent
6 rules. About 0 are common, 0 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Very specific: line 61
Protobuf changes: Run make proto-all (format, lint, generate).
- Very specific: line 62
Mocks: If you add or change interfaces that require mocks, run make mocks before pushing.
- Very specific: line 63
Lint fixes: Run make lint-fix to auto-fix lint issues.
- Very specific: line 64
Enterprise tests: When changing enterprise modules, also run make enterprise-all-test (or make enterprise-poa-test / make …
- Very specific: line 70
Add entries to CHANGELOG.md under the ## UNRELEASED section.
- Very specific: line 80
Follow the Conventional Commits specification.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Repository guidelines for coding agents
This file provides guidance for automated agents contributing to this repository.
Repository Overview
- This is the Cosmos SDK, a modular blockchain SDK for building application-specific blockchains.
- The project is written in Go. Key areas:
x/— Core SDK modules (auth, bank, staking, gov, distribution, consensus, etc.) and supplementary modules (authz, feegrant, epochs, etc.)baseapp/— Base application and ABCI handlingclient/— CLI and client utilitiesstore/— State storage (IAVL, multistore)crypto/— Key types and signingsimapp/— Demo application (simd) used for testing and as a referencecontrib/x/— Deprecated modules (circuit, crisis, nft); not actively maintained and not covered by the Bug Bounty programenterprise/— Enterprise modules (poa, group) with different licensing; seeenterprise/README.md. (x/groupmoved here fromcontrib/in v0.54.0.)
- Most unit tests live next to the code they test. The
tests/directory holds cross-cutting tests:tests/integration/(integration),tests/e2e/(e2e),tests/systemtests/(system),tests/fuzz/(fuzz). - Protobuf definitions live under
proto/. - Agents should not run
test-e2e,test-sim-*, ortest-systemby default — they are slow, often need Docker or pre-built binaries, and depend on environment specifics. Run them only when a change explicitly requires that level of coverage.
Submodules
Each of the following directories has its own go.mod and must be tidied / tested independently:
- Library submodules:
api,client/v2,collections,core,depinject,errors,log,math,store - App / test / tools:
simapp,tests,tests/systemtests,tools/cosmovisor(built viamake cosmovisor),tools/confix(built viamake confix),tools/systemtests - Enterprise:
enterprise/poa,enterprise/poa/simapp,enterprise/group,enterprise/group/simapp
Running go test ./... from the repo root only tests the root module. Use make test so the run-tests target walks every submodule.
Documentation
- API & tutorials: https://docs.cosmos.network/
- Architecture:
docs/architecture/— follow existing patterns when adding features - Module overview:
x/README.md— lists all modules and their purposes - Upgrade notes:
UPGRADING.md— required reading before introducing a breaking change; add a corresponding entry alongside the changelog note - Security:
SECURITY.md— report security-sensitive findings here, not in a normal PR
Scope
- IBC is maintained in a separate repo (ibc-go); do not add IBC logic to the Cosmos SDK.
- Deprecated modules in
contrib/x/(circuit, crisis, nft) — avoid adding new features; prefer corex/modules.
Agent guardrails
- State-machine and consensus code requires extra care. Changes that affect deterministic state must use the
State Machine Breakingchangelog stanza and usually warrant anUPGRADING.mdentry. - Do not hand-edit generated files.
*.pb.go,*.pb.gw.go, mocks undertestutil/, and similar generated output should be regenerated viamake proto-all/make mocks. - Do not edit
go.sum,go.work, orgo.work.summanually — usemake tidy-allto update dependencies across all modules. - Do not run
golangci-lintdirectly with custom paths — usemake lint, which invokes./scripts/go-lint-all.bash --timeout=15mto match CI. - Enterprise licensing — modules under
enterprise/use different licenses; do not copy code into other parts of the SDK without checking.
Development Workflow
Pre-push verification. From the repo root, run in order:
make tidy-all(only if dependencies changed)make buildmake lint(depends onmake lint-install; the first run will install the linter)make test(ormake test-unit)
Fix any failures locally before pushing.
- Protobuf changes. Run
make proto-all(format, lint, generate). Requires Docker and the proto-builder image. After proto changes, runmake buildandmake testto ensure nothing is broken. - Mocks. If you add or change interfaces that require mocks, run
make mocksbefore pushing. - Lint fixes. Run
make lint-fixto auto-fix lint issues. - Enterprise tests. When changing enterprise modules, also run
make enterprise-all-test(ormake enterprise-poa-test/make enterprise-group-test).
make all (tools build lint test vulncheck) is the full local check matching CI; use it before requesting review on a large change.
Changelog
- Add entries to
CHANGELOG.mdunder the## UNRELEASEDsection. - Format:
* (tag) [#PR-number](https://github.com/cosmos/cosmos-sdk/pull/PR-number) message- Example:
* (x/staking) [#12345](https://github.com/cosmos/cosmos-sdk/pull/12345) Fix validator power calculation
- Example:
- Tags indicate the affected area:
(x/bank),(store),(baseapp),(enterprise/poa), etc. - Stanzas (use the appropriate one):
Features,Improvements,Deprecated,Bug Fixes,Breaking Changes(top-level umbrella),Client Breaking,CLI Breaking,API Breaking,State Machine Breaking. - For breaking changes, also add an entry to
UPGRADING.md. - See the header of
CHANGELOG.mdfor full formatting rules.
Commit Messages
- Follow the Conventional Commits specification. Common types:
feat,fix,docs,test,deps,chore. - Include the proposed commit message in the pull request description when opening a PR.
Pull Request Workflow
Before requesting review:
- Pre-push verification passes (see Development Workflow)
- Changelog entry added under
## UNRELEASEDfor user-facing or notable changes UPGRADING.mdentry added for breaking changes- CI is green (build, lint, tests)
- PR is focused — split unrelated changes into separate PRs
Enterprise Modules
- Located in
enterprise/(e.g.enterprise/poa,enterprise/group). - Each has its own
go.modand Makefile. Usemake enterprise-<module>-<target>ormake enterprise-all-<target>. - Different licensing — review the LICENSE file in each enterprise module before use or copying code.
- Tests:
make enterprise-poa-testormake enterprise-group-test.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

