Open source, for teams building on Stellar

For Stellar apps that need their own rules.

Caravel runs your app as a lane: an appchain with its own block time, fees, members, limits and validators, declared in one file. Your users' money stays on Stellar, in the token you choose.

lane.tomlTemplate: Perps, live on testnet

[node]block_time_ms = 500     # a block every half second[[perps.markets]]maker_fee_bps = 0       # no maker feesimf_bps = 1000          # up to 10x leverage[perps.oracle]keys = ["GCRD…H37Q"]    # its own price feed[env.testnet]token = "circle-usdc"   # settles in Circle's USDC

Deposits, withdrawals and exits stay on Stellar, in the lane's settlement contract.

Live: Caravel Perps, lane #1Running in containers on testnet
Height419,000+
Block time500 ms
Checkpoints6,700+
Last blocklive

Declare it. Plan it.
Apply it.

  1. Declare

    One lane.toml holds the lane's rules and every place it runs: your laptop, your servers, testnet.

  2. Plan

    caravel plan lists every step on Stellar and on your hosts before anything is sent, down to the settlement contract's address.

  3. Apply

    caravel apply deploys the contract, starts the sequencer, validators and relayer, and the lane starts checkpointing to Stellar. Run it again and nothing changes.

Stellar steps3/3
Host steps4/4
Checkpoints2
Your host Stellar Checkpoint Testnet replay

Every rule is a line.
Every change gets a plan.

Change a rule and run plan. Some changes are a restart, some a signer rotation on Stellar, and some the contract won't allow. Pick one to see what plan says.

# lane.toml  [[env.e2e.validators]]- name = "3"- key = "validator-3"+ name = "4"+ key = "validator-4"

$ caravel apply lane.toml --env e2e

Lane caravel-payments-local-0 · env e2e · network testnet
  signers: 2 of 3 at epoch 2

  1. ~writesequencer.toml
  2. ~writevalidator-4.toml
  3. +startvalidator-4
  4. ~rotatesigners, epoch 1 → 2 (admin_rotate_signers: a testnet-only admin power)
  5. ~restartsequencer
  6. +startrelayer
  7. -stopvalidator-3

epoch 2: checkpoints 6 and 7 accepted, signed by validators 1, 2 and 4

From a testnet run on 2026-09-30 (docs/RESULTS.md). Coral steps run on your host, teal ones on Stellar.

Run a lane in five minutes.

Install the CLI and caravel apply brings up a lane on a local Stellar network, its nodes in containers. Deposit, transfer, withdraw, then take it down. The same file deploys to your servers.

You need Docker. The installer brings the rest, for Linux and macOS.

# install the latest release, into ~/.caravel
curl -fsSL https://caravel-tau.vercel.app/install.sh | bash
# it adds caravel to your PATH

# a lane on this machine
caravel init payments my-lane && cd my-lane
caravel plan
caravel apply

# on your servers: add [env.testnet] with
# host = { provider = "ssh", runtime = "docker" }
caravel plan --env testnet
caravel apply --env testnet
caravel status --env testnet