Skip to main content

Overview

Run a settlement agent on your own infrastructure, connect it to Atum’s network, and start potentially earning fees by fulfilling settlements. This guide covers a testnet deployment; the same flow applies to mainnet with production credentials and RPC endpoints.
Celo and Tron are used here as an example. Atum supports many additional EVM networks, plus Solana, with more chains on the way — see Supported mainnets.
You operate your own settler agent. You deploy, configure, and run it under your own infrastructure, credentials, keys, liquidity, pricing, and compliance controls. Atum provides the agent software and protocol interfaces; it does not run the agent for you or control your funds.
1

Authenticate and pull the image

Sign in to the container registry and pull the settler agent.
2

Set up and configure

Run a setup script, then set your credentials and connection details.
3

Fund your wallets

Provide gas tokens and liquidity on each chain so the agent can transact.
4

Run the agent

Start the agent and confirm it connects to the gateway.

Prerequisites

Docker Engine installed and running on your host.
A PostgreSQL 17 database — managed (AWS RDS, GCP Cloud SQL) or self-hosted. Atum does not host databases for operators; you provision, maintain, and back up your own.
A Temporal instance — managed or self-hosted — used for workflow orchestration. Atum does not host this for you.
An EVM wallet (Celo Sepolia) and/or a Tron wallet (Tron Shasta), each funded with testnet gas — see Fund your settler wallets.
GATEWAY_ADDR is the Settler Gateway gRPC host (host:port), not the Payment Gateway HTTPS URL on Endpoints. Atum provisions the address and allowlists your organization and wallets. Email support@atum.xyz for access.

1. Authenticate to the container registry

The settler agent image is hosted on GitHub Container Registry. Authenticate before pulling.
1

Create a GitHub personal access token

GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic). Generate a token with the read:packages scope and copy it.
2

Log in to the registry

3

Verify access

2. Set up the agent

Choose a setup approach. Each script pulls the image and generates configuration templates and a .env file.
Usually used for: development, testing, quick start.
This pulls the image, creates configuration directories and templates, and generates a .env file. Then edit .env and start:
Uses Docker Compose with a local PostgreSQL container for quick testing.

3. Configure

After setup, edit .env with the essential variables:
GATEWAY_ADDR is the Settler Gateway gRPC address Atum gives you. Do not paste a Payment Gateway URL from Endpoints.
Add .env to .gitignore and never commit it. Private keys control your liquidity.
For the full environment-variable reference, RPC configuration, and production settings, see Configuration. For production, use paid RPC providers rather than public endpoints, and consider using an MPC key management provider like Turnkey instead of plain text private key configurations.

4. Fund your settler wallets

Settler wallets need gas tokens to execute on-chain transactions. For faucets and asset details, see Settlement testnets.
Without gas tokens, the agent connects to the gateway but fails when submitting transactions.

5. Run the agent

Confirm the agent is healthy:

Success criteria

Your agent is integrated when:
  • docker pull succeeds against ghcr.io/atum-labs/settler-agent
  • ./test-setup.sh passes (image, database, config, env)
  • The agent starts and curl http://localhost:8080/health returns healthy
  • Logs show the agent connecting to the gateway and subscribing to payment requests
Next, run an end-to-end settlement — see Test a settlement flow.

Troubleshooting

Check logs: docker logs settler-agent. Common causes: missing environment variables, invalid configuration syntax, or expired Docker authentication.
Verify DATABASE_URL format (postgresql://user:password@host:port/database), that the database is reachable from the container, that credentials are correct, and that PostgreSQL is version 17.
Verify GATEWAY_ADDR (the Settler Gateway gRPC host:port Atum provided) and network connectivity. Email support@atum.xyz if the session handshake is refused — the gateway allowlists organization and wallets.
Ensure wallets hold sufficient testnet gas, private keys are in the correct format (Celo with 0x, Tron without 0x), and RPC endpoints are responsive.
Celo private keys include the 0x prefix (e.g. 0xabc123…); Tron private keys omit it (e.g. abc123…).

Next steps