index
Last updated
Was this helpful?
Last updated
Was this helpful?
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 .
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 below, and interacting with a public Expansion instance. To find out more about how to interact with Expansion, check out the 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 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 section of the docs.
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 .
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 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 Go SDK is split up into a few separate packages, all of which you can find in . 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
.
txnbuild
txnbuild
Expansionclient
Expansionclient
The Bantu Development Foundation maintains reference implementations of some to jumpstart the process of building infrastructure on top of Bantu in a way that maximizes interoperability among ecosystem participants.
is an extendable Django app that makes it easy for anchors to . Using Polaris, you can run a web server supporting any combination of SEP-1, 6, 10, 12, and 24.
The makes it easy for anchors to test their deposit and withdrawal flows by implementing the client side of a Bantu SEP24 interactive flow.
The is a Go implementation of the federation protocol described in . It's designed to be dropped into your existing infrastructure.