Go to file
riordanp 2a409c7327
Reduce log noise (#31)
2024-11-04 12:44:41 +00:00
.github Release executor 1.0.0 (#11) 2024-10-04 13:30:10 +01:00
bin Reduce log noise (#31) 2024-11-04 12:44:41 +00:00
brand Autobahn: initial public repository commit 2024-09-25 20:12:39 +02:00
lib Changes to activate all raydium pools on production (#15) 2024-11-04 13:25:37 +01:00
programs Improving performance of smoke tests (#29) 2024-10-29 11:47:28 +02:00
scripts Autobahn: initial public repository commit 2024-09-25 20:12:39 +02:00
.dockerignore Add missing file from initial import 2024-09-26 17:24:49 +02:00
.gitignore Add missing file from initial import 2024-09-26 17:24:49 +02:00
Anchor.toml Release executor 1.0.0 (#11) 2024-10-04 13:30:10 +01:00
Cargo.lock Changes to activate all raydium pools on production (#15) 2024-11-04 13:25:37 +01:00
Cargo.toml Adding quic geyser source and making it work with all raydium pools (#5) 2024-10-01 10:15:23 +02:00
CreatingAnAdapter.MD Autobahn: initial public repository commit 2024-09-25 20:12:39 +02:00
LICENSE.md Autobahn: initial public repository commit 2024-09-25 20:12:39 +02:00
README.md Autobahn: initial public repository commit 2024-09-25 20:12:39 +02:00
SECURITY.md Release executor 1.0.0 (#11) 2024-10-04 13:30:10 +01:00
Testing.md Autobahn: initial public repository commit 2024-09-25 20:12:39 +02:00
fly-comparer.toml Autobahn: initial public repository commit 2024-09-25 20:12:39 +02:00
fly-indexer.toml Autobahn: initial public repository commit 2024-09-25 20:12:39 +02:00
fly-randbot.toml Autobahn: initial public repository commit 2024-09-25 20:12:39 +02:00
fly.toml Changes to activate all raydium pools on production (#15) 2024-11-04 13:25:37 +01:00
justfile Autobahn: initial public repository commit 2024-09-25 20:12:39 +02:00
rust-toolchain.toml Autobahn: initial public repository commit 2024-09-25 20:12:39 +02:00

README.md

Fill.city Autobahn

logo

Autobahn is the open source aggregator for swaps on Solana. This public good protocol enables developers to contribute their own DEX adapters. Take back control: access to orderflow from routers on Solana should not be centralized.

The graph search is optimized for reliability of trade execution. Reliability is preferred over marginal price to improve user experience. Full test coverage through daily verification of all routed pools ensures correctness.

A hosted version is available. Reach out to partnerships@mango.markets to get an access token. Self-hosting requires custom validator patches to enable low-latency account subscriptions.

Using the router (as a client)

Basically it is the same API as Jupiter: https://autobahn.mngo.cloud/<TOKEN>/

quote (GET)

Supported parameters:

  • inputMint
  • outputMint
  • amount
  • slippageBps
  • maxAccounts
  • onlyDirectRoutes

swap & swap-instructions (POST)

Supported parameters:

  • userPublicKey
  • wrapAndUnwrapSol
  • autoCreateOutAta
  • quoteResponse

Running the router

See example configuration file example-config.toml to create your own setup

Run like this:

RUST_LOG=info router my_config.toml

Creating a new DEX Adapter

Adding new DEX adapter is welcome, you can do a pull-request, it will be appreciated !

See CreatingAnAdapter.MD file for details.

Integration testing

It's possible to dump data from mainnet, and then use that in tests:

  • To assert quoting is correct (same result as simulated swap)
  • To check router path finding perfomance

See Testing.MD file for details.

There's a script for daily smoke tests:

RPC_HTTP_URL=... ./scripts/smoke-test.sh

Tokio-Console

Build router with feature tokio-console and RUSTFLAGS="--cfg tokio_unstable" like this:

RUSTFLAGS="--cfg tokio_unstable" cargo build --bin router --release --features tokio-console

And use the tokio-console crate to display running tasks

License

Autobahn is published under GNU Affero General Public License v3.0. In case you are interested in an alternative license please reach out to partnerships@mango.markets