The IOTA Repository
You can find all the official crates and tools offered by IOTA in the IOTA monorepo. It contains all the source code used to build on and run the IOTA network. The following section will give a brief overview of the most important folders:
- apps Contains the source code for the main web applications
that
IOTA runs, for example, the
IOTA Wallet
. - crates: Contains all the Rust crates that are part of the IOTA system.
- dapps: Contains some examples of decentralized applications built on top of IOTA, such as Kiosk or Sponsored Transactions.
- dashboards: Currently empty.
- doc: Contains deprecated documentation related to Move and IOTA.
- docker: Contains the docker files needed to spin up a node, an indexer, a Full node, or other services.
- docs: Contains this documentation and the source for this site.
- examples: Contains examples of apps written for IOTA and smart contracts written in Move.
- external-crates: Contains the source code for the Move programming language.
- kiosk: Contains the source code of the
IOTA Kiosk
extensions and rules, as well as examples. - nre: Contains information about node and network reliability engineering.
- scripts: Contains a number of scripts that are used internally.
- sdk: Contains the source code for different tools and SDKs, such as the IOTA TypeScript SDK, Kiosk SDK, BCS, dApp kit, etc.
- iota-execution: Contains the source code responsible for abstracting access to the execution layer.
The following primary directories offer a good starting point for exploring the IOTA codebase:
- move - Move VM, compiler, and tools.
- typescript-sdk - the IOTA TypeScript SDK.
- wallet - Chrome extension wallet for IOTA.
- iota - the IOTA command line tool.
- iota-core - Core IOTA components.
- iota-execution - Execution Layer (programmable transactions, execution integration).
- iota-framework - Move system packages (0x1, 0x2, 0x3).
- iota-network - Networking interfaces.
- iota-node - Validator and Full node software.
- iota-protocol-config - On-chain system configuration and limits.
- iota-sdk - The IOTA Rust SDK.
- iota-types - IOTA object types, such as coins and gas.
Branch and Network Structure
The main branches in the IOTA repository correspond to its
networks (devnet
, testnet
, mainnet
) plus a develop
branch with the most
recent changes.
Devnet
The devnet
branch is the latest stable build of IOTA. Choose the devnet
branch if you want to build or test on
IOTA Devnet. If you encounter an issue or find a bug, it may already be fixed in the develop
branch. To
submit a PR, you should push commits to your fork of the develop
branch.
Testnet
The testnet
branch includes the code running on the IOTA Testnet network.
Mainnet
The mainnet
branch includes the code running on the IOTA Mainnet network.
Develop
The develop
branch includes the most recent changes and updates. Use the develop
branch if you want to contribute to
the
IOTA project or to experiment with cutting-edge functionality. The develop
branch might include unreleased changes and
experimental features, so use it at your own risk.# The IOTA Repository