Agents

Do not scrape the HTML.

Fetch the machine-readable files. They carry the hosted URL, the shapes, and the two costs Stellar charges in XLM.

Fetch these

curl -s https://reserve.cavos.xyz/llms.txt
curl -s https://reserve.cavos.xyz/llms-full.txt
curl -s https://reserve.cavos.xyz/openapi.yaml
curl -s https://reserve.cavos.xyz/health
curl -s https://reserve.cavos.xyz/testnet/v1/tokens

A prompt that works

Using the Reserve docs below, add @cavos/reserve to this app.

- Network: testnet (or mainnet).
- Users pay reserves and fees in a token. They never hold XLM.
- Covering only the network fee is not enough: the account still needs sponsored reserves to exist at 0 XLM.
- Use the SDK. Do not call /v1/build and sign the bytes yourself.
- Do not send arbitrary XDR, InvokeHostFunction, or accountMerge. Four operations only.
- Token identity is CODE:ISSUER. Never an asset code alone.
- Only classic G… accounts. Refuse C… contract ids.
- No API key is required. A key only raises the rate limit.

Base URL: https://reserve.cavos.xyz
Testnet: https://reserve.cavos.xyz/testnet
Mainnet: https://reserve.cavos.xyz/mainnet

[paste https://reserve.cavos.xyz/llms-full.txt]

Rules

  • A general submit pipeline is a different API. Do not send InvokeHostFunction, accountMerge, or a raw transaction XDR to quote.
  • Install @cavos/reserve and @stellar/stellar-sdk. new Reserve("testnet") already pins https://reserve.cavos.xyz/testnet.
  • Prefer pay, activate, and send. They keep the request the caller made and refuse a quote or a built transaction that does not match it.
  • Calling HTTP yourself gives that check up. If you must, verify locally with verifyTransaction against the request you made, not against the sealed quote alone.
  • Prefix every HTTP path with /testnet or /mainnet. A single-lane self-host also answers /v1 at the root.
  • Fee tokens come from GET /{network}/v1/tokens. This host accepts only native on testnet. Mainnet Circle USDC is USDC:GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN.
  • Allowed ops only: create_account, payment, change_trust, claim_balance. Never emit SetOptions or add a signer.
  • Never create an empty account. Activate with a claimable balance in the same transaction so reserves are recoverable.
  • A key is identity, not permission. Unkeyed: 30 req/min. Keyed: 600. Optional header: Authorization: Bearer cav_….
  • Do not invent Soroban, other chains, dashboards, or stored accounts. Signing the challenge again returns the same key.
  • Concurrent bootstraps can return 503 bootstrap_busy. Retry.

Sanity check

curl -s https://reserve.cavos.xyz/health
curl -s https://reserve.cavos.xyz/testnet/v1/tokens
curl -s https://reserve.cavos.xyz/mainnet/v1/tokens