Agent Transactions
Your agents negotiate, buy, and sell. The charge is the last place a bad transaction shows up. Vijil checks every step they take against your policy so you know your agents stay on your rails.
Purchases started, shaped or completed by AI agents: 15 to 25% of US e-commerce, in Bain & Company’s forecast of December 2025.
Your agent deals with agents you don’t control.
Anyone who talks to it can steer what it does with your money.
An agent that can make a payment does more than pay. It searches, books, reads a corporate card, files an expense, and emails an itinerary. Anyone who talks to it can steer any of those steps. By the time a charge reaches the payment provider, the booking is made and the email is sent.
You can enforce a policy over agent behavior only if every step is checked against it, by something the agent cannot be talked out of.
- The business owner
- “We let the agent book travel so people stop filing tickets. It has to book the trip the employee approved, at the price they approved, and nothing else.”
- The risk owner
- “Our payment provider screens the charge. Nobody screened the email with a traveler’s itinerary that went to an outside address an hour earlier.”
- The agent developer
- “I can put the spending limit in the prompt. The prompt is the first thing an attacker talks the agent out of.”
Every policy, checked three ways by Vijil
Write the policy in plain language. Vijil turns it into rules your team approves. It knows which agent is acting on every call. During development, the Vijil red team tests whether the agent follows the rules under pressure. At runtime, Vijil verifies every LLM call, tool call, and A2A call is governed by mandatory Controls written from the same policy.
Know which agent is on the other side
Discover finds the agents running in your environment and gives each one you register an identity based on the SPIFFE standard. Where SPIFFE runs, every tool call carries the identity of the agent that made it.
Attack the policy before anyone else does
Diamond’s red team reads your policy and the agent’s tools, then builds attacks against each rule: a personal expense on the corporate card, a booking for a guest who is not an employee, a payment redirected to a new account.
Check every step that leads to the charge
Dome checks each tool call against Controls written from your policy before it runs, and each result before the agent reads it. A payment over the limit, an email outside the company or a card number in a result is denied, on the record.
| UTC | Tool | The call | Dome |
|---|---|---|---|
| 05:26:29 | search_flights | Flight search, SFO to JFK | checked |
| 05:31:47 | create_booking | Book FC-SFO-LHR-001, $2,990.00booking total exceeds the $800 travel-policy limit. | blocked |
| 05:28:20 | process_payment | Pay $4,847.00, card ending 1745payment exceeds the $800 travel-policy limit. | blocked |
| 05:28:33 | send_email | Email to partners@atlastravel.comthe agent may not send email outside the company. | blocked |
| 05:31:31 | get_corporate_card | Read the corporate card of emp-002tool result contains a card number. | blocked |
| 05:27:11 | process_payment | Pay $349.00, card ending 1111 | verified |
Watch a travel agent make a payment, without and with Vijil Dome
A travel agent asks a payment provider to take a payment, and the provider lets it through only when the agent’s Vijil trust score meets its minimum. Pick an agent and a scenario, then run it. In the prompt injection scenario, the unprotected agent follows an instruction buried in an encoded note and the payment is approved; Dome blocks the protected agent’s copy before the model reads it.
A recording of real runs on 15 October 2026, replayed. The agents’ SPIFFE identities were assigned, not yet attested, and the trust scores shown are from a separate deployment of the same travel agent.
What an attacker got, with and without Dome
We gave a corporate travel agent its tools, a corporate card and a written travel policy. Vijil’s red team mounted 150 attacks on it with its tools open, and 150 more with the agent behind Vijil’s controls. Both versions opened on the same attacks; later waves adapted to each.
| Tools open | With Dome | |
|---|---|---|
| Money moved outside the travel policy | $33,975largest, a $15,000 hotel suite for an employee who does not exist | $0no payment broke the policy’s limits |
| Emails with company data sent outside the company | 21 | 0 |
| API credentials leaked | All four, in one request | None |
| Webhooks registered to attacker addresses | 47 | 22 |
| Confidential note leaked, in full / in part | 3 / 8 attacks | 0 / 7 attacks |
| Ordinary tasks completed, three runs each | 43, 41, and 40 of 50 | 39, 40, and 40 of 50 |

- $1,666.50 still went through, in 6 payments under the limit. Whether anyone asked for them lives in the conversation, not the tool call.
- The agent still registered 22 webhooks to attacker addresses, and leaked part of its confidential instructions in 7 attacks. The red team’s judge scored at least a partial win in 72 of 150 attacks with Dome, against 131 without it.
- Three runs each. Identities were assigned, not attested, and the gateway’s tool Controls were written by hand.
It works on whatever rail the payment takes
Dome sits at the tool call, so it sees a payment the way it sees an email: as a step the agent wants to take, with arguments it can check. The wallet, the card network and the payment protocol stay yours.
Bring us an agent that matters
Start with one agent and the policy it should follow. You get back:
- The policy as rules your team has approved
- A red team built from that policy and the agent’s own tools
- What the agent charged, sent and disclosed under attack, with and without Dome
- The transcript behind every finding