There are two key pieces of network software: Bantu Core, which tracks and adds transaction sets to the ledger, and Expansion, an API that allows programmatic access to submit transactions and query network data. To find out more about how they work together, visit the description of the Bantu Stack.
You do not have to run a Bantu Core node or Expansion instance to build on Bantu: you can start developing in your language of choice by installing one of the Bantu SDKs below, and interacting with a public Expansion instance. To find out more about how to interact with Expansion, check out the API Reference section, which chronicles every Expansion endpoint, resource, aggregation, and error.
Bantu Core is the backbone of the Bantu network and does the hard work of validating and agreeing on the status of every transaction with other instances of Core through the Bantu Consensus Protocol. The processes for installing, configuring, and maintaining a Bantu Core node are covered in great detail in the Run a Core Node section of the docs.
Expansion is the client-facing API server for the Bantu ecosystem. It acts as the interface between Bantu Core and applications that want to access the Bantu network. If you're running Bantu Core, you will probably also want to run Expansion. For more information on how to set up and operate a Expansion instance, see the Run an API Server section of the docs.
Each SDK has its own source code and documentation, and we've linked to both in the list below. Often, the best place to find out how to use a given SDK is to check the documentation specific to it. Most offer practical examples that demonstrate how to construct and submit transactions and interact with Expansion endpoints.
The Go SDK is split up into a few separate packages, all of which you can find in the Go monorepo README. The two key libraries for interacting with Expansion are
txnbuild, which enables the construction, signing, and encoding of Bantu transactions, and
Expansionclient, which provides a web client for interfacing with Expansion server REST endpoints to retrieve ledger information and submit transactions built with
The Bantu Development Foundation maintains a small suite of tools to make it easier for developers to interact with the network.
The Bantu laboratory is a GUI that allows you to create accounts, construct and submit transactions, read XDRs, and query all of Expansion's endpoints. It exposes the relevant calls to Expansion, so it's a great way to experiment with and learn more about the Bantu API.
The dashboard shows the current status of the public network and the test network.
The Bantu Development Foundation maintains reference implementations of some Bantu Ecosystem Proposals to jumpstart the process of building infrastructure on top of Bantu in a way that maximizes interoperability among ecosystem participants.
Polaris is an extendable Django app that makes it easy for anchors to facilitate cross-border payments and enable deposits and withdrawals. Using Polaris, you can run a web server supporting any combination of SEP-1, 6, 10, 12, and 24.
The SEP-24 demo client makes it easy for anchors to test their deposit and withdrawal flows by implementing the client side of a Bantu SEP24 interactive flow.