index

Software

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

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

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.

SDKs

There are a wide variety of Bantu SDKs, which means you can interact with the network in your language of choice. The Javascript, Java, and Go SDKs are maintained by the Bantu Development Foundation; the rest are maintained by dedicated community developers. They're all open source, so if you have a question, suggestion, or contribution to make, you can file a Github issue or pull request in the relevant SDK repository. You can also get in touch with SDK maintainers by joining the Bantu Forum.

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.

Javascript

Java

Go

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 txnbuild.

Python

C# .NET

Ruby

iOS

Scala

Qt/C++

Flutter

Tools

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.

Dashboard

The dashboard shows the current status of the public network and the test network.

Reference Implementations

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.