# Start Here: Nibiru Dev Docs

Summary on all developer tooling for protocol and smart contract development on Nibiru.

# Networks of Nibiru

Nibiru is as a distributed, peer-to-peer network. In order to engage with this network, whether to read information from the blockchain or to broadcast transactions, one must interface through the endpoints of full nodes that are connected of the network. Please see our Networks of Nibiru page for detailed configuration info regarding Nibiru Chain's mainnet and permanent testnet(s).

# Nibiru Language Clients

Both the TypeScript SDK (@nibiruchain/nibijs on npm) and Python SDK provide comprehensive clients for interacting with the Nibiru blockchain and broadcasting transactions programmatically. Each client enables you to:

  1. Create accounts or restore them from mnemnoncis and private keys
  2. Query balances, events, and the state of the chain
  3. Sign and broadcast transactions

You can send multi-message transactions with both NibiJS and nibiru.py but not the nibid CLI.

# NibiJS — Nibiru TypeScript SDK

NibiJS is particularly useful for building web applications in frameworks like Vue and React, and interacting with wallet extensions like Keplr and MetaMask.

# Nibiru Rust SDK

The Nibiru Rust standard library is published as nibiru-std on crates.io (opens new window). This package includes all of the protobuf types for compatibility with the Nibiru blockchain in addition to convenient traits and functions make smart contract development on Nibiru much easier.

The nibiru-std crate is implemented in the NibiruChain/cw-nibiru GitHub repository (opens new window), which is a mono-repo including many production smart contracts and useful packages. Many contracts in this repo are used in production, and some are included for educational purposes.

# Nibiru Command-Line Interface (CLI)

The nibid binary is needed for running nodes and sending IBC transfers without using a wallet extension.

# Nibiru Python SDK

# Modules of the Nibiru Blockchain

See the Module Reference for comprehensive documentation.

Nibiru's Cosmos-SDK modules define the core logic for Nibi-Perps, Nibi-Swap, and the decentralized oracle network. Nibiru's modules are defined in the /x subfolder of the protocol's Golang code (e.g. the perp module is defined in the x/perp folder).

# Other Tools

# Nibiru Discord Server

If you would like to connect with the developer community and ask questions related to software development on Nibiru, join the Nibiru Discord server (opens new window). Once you've joined the server: