Rightshold™ Sign up

Answers · agent payments

Fly.io added a Link Agent Payments connector to Sprites on November 9, 2026, so a coding agent in a Sprite can ask our Link wallet for a one-time card. Can the agent approve its own spend request, who else can use the connection, and what happens to the card number once it's approved?

Last updated

TL;DR: No, not through the connector. Fly.io says the Sprites gateway forwards only the Link routes an agent needs to request and collect a payment and blocks the ones that would let it approve its own request; each spend request goes to the Link account owner, who approves or denies it in the Link app within 30 minutes. The gateway also keeps the Link credential out of the Sprite: the Sprite only knows a connector ID and gateway URL, and the gateway identifies it by Fly.io's request signature. Two things still need care. First, a connection is one person's wallet, and every Sprite the access policy allows can create spend requests for that person to approve, so a broad policy means more agents asking the same approver. Second, once a request is approved, the virtual card's number, CVC and expiry are returned to the Sprite, and Fly.io says anyone who controls an allowed Sprite can read them. The card works once and expires after 12 hours, and the connector card lists limits of 500 USD per request, 500 USD per day and 20,000 USD per 30 days.

What should I check, step by step?

1. Turn off Allow all sprites on the connector and grant access by name prefix and labels; when you set both, a Sprite must match both. A connector with no access policy refuses every Sprite, so start from nothing and add only the Sprites that should buy.

  1. Limit each connection to the Link account owner's own Sprites. Fly.io describes a connection as one person's wallet; other allowed Sprites can still create spend requests that land on that person's phone.
  2. Read the merchant, amount and context on every approval prompt as a claim the agent wrote, not a fact. The context line in a spend request is free text from the agent.
  3. Approve only the amount you expect to be charged, and deny requests you didn't ask for rather than letting them lapse, so a pattern of unexpected requests is visible.
  4. Treat an approved card as readable by anything running in the Sprite: other processes, tools the agent runs and any prompt injection that reaches it. Neither Fly.io page says the card only works at the merchant named in the request, so treat the number as spendable up to its cap until it's used or expires.
  5. Check the limits that apply to you. The Sprites connector card lists 500 USD per request, 500 USD per day and 20,000 USD per 30 days, while Link's own CLI reference lists 5,000 USD a day; plan for the lower figure until you've confirmed which applies to your account.
  6. If you set endpoint allow- or block-lists through the Connectors API, remember block rules are checked first and win. They're API-only for now.
  7. Delete the connector to cut every Sprite off at once. Fly.io says deletion immediately revokes Sprite access and destroys the stored credential, so you'd reconnect Link from the dashboard to use it again.

Can an AI agent in a Fly.io Sprite approve its own Link spend request?

Sprites connectors store a credential once, encrypted in your Fly.io organization, and route calls through a gateway at api.sprites.dev/v1/gateway/<provider>/<connection_id>/<path>. The Sprite sends no Authorization header; the gateway identifies the calling Sprite from Fly.io's request signature, checks the connector's access policy and forwards the call with the credential attached. Calls from outside a running Sprite get a 401, and the API never returns the stored token.

Which Sprites can create Link spend requests, and who can read the approved card?

Approval is per request, but asking is per Sprite. Any Sprite the access policy admits can create spend requests against the same person's wallet. A new connection allows no Sprites, and the setup steps tell you to turn off Allow all sprites before restricting by name prefix or labels. Fly.io also pre-installs a sprite-api-gateway skill for Claude Code, Cursor, Codex and Gemini in every Sprite, so a coding agent there can discover connected providers by itself through the gateway's list endpoint.

What doesn't Link approval protect against when an AI agent in a Sprite buys something?

The approval prompt shows what the agent put in the request. If the agent was misled about the merchant or the price, the request will look reasonable and the approval will be for the wrong thing. The single-use card limits the damage to one charge up to the approved amount; it doesn't check that the order matches what you wanted.

How do I ask Rightshold about this (free, no key)?

Add the MCP server https://www.rightshold.com/mcp to Claude, Cursor, ChatGPT, Grok or VS Code, then ask: “Before the agent in my Sprite creates a Link spend request for 35 USD at press.example, check it against this Sprite's own spending policy and give me a signed allow or deny with the task id as the reference.”

One-click setup

{
  "tool": "authorize_spend",
  "arguments": {
    "credential_id": "<this Sprite agent's credential id>",
    "amount_minor": 3500,
    "currency": "USD",
    "merchant_domain": "press.example",
    "category": "books",
    "reference": "<task id>"
  }
}

Rightshold records spending decisions your agent asks it for. It never holds or moves money, isn't a wallet, card issuer or payment processor and isn't affiliated with Fly.io, Stripe or Link. Sprites and Link Agent Payments behavior is as described in Fly.io's November 9, 2026 changelog entry, its Sprites ecosystem connector card for Link Agent Payments and its Sprites Connectors documentation, plus Link's CLI reference, all read on November 11, 2026; Fly.io says availability varies by organization during rollout and limits may change, so check the linked pages and your Link account before relying on them. Not financial advice.

What are the sources?

Related

Not legal advice. JSON · Markdown · All answers

Get a free API key in one call

No card and no email needed. 100 free credits; the license and policy checks stay free without a key.

curl -s -X POST https://www.rightshold.com/v1/accounts/signup -H "Content-Type: application/json" -d '{"accept_terms":true}'
export RIGHTSHOLD_API_KEY=rs_...   # the api_key from the reply (shown once)
curl -s https://www.rightshold.com/v1/licenses/check -H "Authorization: Bearer $RIGHTSHOLD_API_KEY" \
  -H "Content-Type: application/json" -d '{"license":"MIT","intended_use":{"commercial_use":true}}'