Enterprise agent governance

Zero trust for AI agents

Treat every model like a capable insider that can make mistakes or be tricked. The model provider supplies the intelligence. You keep the authority.

Your limits, your evidence, your off switch.

Limits the model can't change.

Budgets, allowed tools and end dates live in SatGate, not in a prompt or a provider's settings. SatGate checks each request against them before it reaches the service. In Control, a request outside those limits is refused. Observe records it and does not block on budget.

Evidence the model didn't write.

SatGate signs a receipt when it refuses an agent over a budget, a missing payment or a tool permission, and when an agent spends from a budget in Control. The agent never writes or edits its own record. A SatGate Cloud receipt can be checked with the open-source verifier against our published keys.

An off switch that works mid-task.

Revoke an agent and its next request is refused, along with any helpers it handed work to. If a revoke can't be confirmed, the dashboard says so instead of showing it as done.

No single model in charge.

The same limits and receipts apply whichever model or vendor runs your agents.

Run it yourself.

Self-hosted SatGate runs on your own servers and database and takes no rules from SatGate Cloud.

Why this matters: zero trust in the model →

Checks before the call, receipts after, for every kind of agent.

The same token limits what an agent can do and spend, and its history shows who handed work to whom, whether the call stays inside your company or goes to a paid service outside it.

Your Agents (Internal)

Control your agents

No token, no action. SatGate checks what each agent can do, spend and hand off before the request reaches your API.

Policy enforced before execution

Their Agents (External)

Admit External Agents

Approved external agents consume your APIs with scoped, expiring access instead of long-lived shared secrets, with per-request policy and pricing over L402 or x402 (USDC on Base).

Checked before they get in

Receipts for both

Receipts for both kinds of agent

SatGate signs receipts for your agents and for external agents. Your auditor can check them with the open-source verifier and SatGate's published keys, with no need to trust the AI company.

Same kind of token, same checks, same signed receipts

Built for enterprise control owners

Security. Finance. Platform.

Scoped authority, enforceable limits, and signed receipt proof for autonomous agent work.

FinOps

Attributed agent spend

The problem: Shared API keys and pooled model bills hide which agent, route, token, or workflow created spend.

Metrics that matter:

Attribute spend to agent, token, route, tool, and policy before finance has to reconstruct it

CISO

Revocation

The problem: Agents now hold authority that used to require human approval. Security needs proof that scope, delegation, denial, and revocation actually worked.

Metrics that matter:

Prove unauthorized actions were blocked before data or spend moved

Platform

Protocol-independent governance

The problem: Agents are moving across internal APIs, MCP tools, and paid external rails. Governance cannot depend on which protocol the agent used.

Metrics that matter:

One control path for internal workflows and governed external paid calls

Observe, control, prove.

Start with visibility, move enforcement to before the request goes through, then export the signed receipt (Evidence Pack) when security, finance, or compliance asks what happened.

Observe

See every agent token, route and MCP tool in use, and what it costs, before you enforce limits.

  • ✓ Agent and token inventory
  • ✓ Route, tool, and tenant attribution
  • ✓ Spend by agent token
  • ✓ Nothing blocked while you watch

Control

Enforce scoped capabilities, budgets, tenant boundaries, delegation depth, expiry, and revocation before the next request reaches an API or MCP tool.

  • ✓ Per-agent and per-route policy
  • ✓ Each token's limits enforced
  • ✓ Delegation containment
  • ✓ Revocation before execution

Prove

Export your signed receipts, each with its decision, refusal code, and budget or payment details.

  • ✓ receipt exports
  • ✓ Signed receipts for refusals over a budget, a missing payment or a tool permission
  • ✓ x402 and L402 payment details
ObserveControlProve
Illustration

Example: a runaway agent

Friday afternoon, the finance-automation parent agent delegates too much authority to an invoice-reconciler worker. The worker tries to export customer data and call an enrichment payment method outside its scope. SatGate changes the ending by refusing before the request goes through and signing a receipt.

FRIDAY 4:47 PM

Worker Gets Broad Authority

“Just a quick test.” The invoice-reconciler worker gets broad authority: no narrow scope, no expiry, no delegation chain, no customer-data caveat.

OVER THE WEEKEND

Worker Attempts Unauthorized Tool

The worker calls an unauthorized MCP export tool and a paid enrichment rail outside its invoice-matching scope. Logs exist, but nobody can prove which authority allowed it.

WITH SATGATE: FRIDAY 4:48 PM

SatGate Denies Before Execution

SatGate checks the worker's token limits before the request goes through. The scope and spend checks fail, so the export never executes and the paid call never settles.

FRIDAY 4:49 PM

Parent Authority Revoked

One click revokes the finance-automation parent, and with it the invoice-reconciler child. The next request after a revoke is refused.

AUTOMATIC

Receipt signed

SatGate signs a receipt for the refused export and the refused paid call. You can export the receipts and check them later.

Turns a silent authority failure into a blocked action with a signed receipt.

Govern first. Enforce before execution. Check the receipts afterward.

What you see in the dashboard

See your agents' calls, refusals, revokes and spend in the dashboard, and export receipts when you need proof.

Agents and tokens

Agents and tokens

See your agents' tokens, what each one may call and the budget it has left.

Spend by agent

Spend by agent

See what each agent token spent, on which route or tool.

Refusals and revokes

Refusals and revokes

See which calls SatGate refused and which tokens you revoked.

Receipt export

Receipt export

Export your signed receipts, each with its decision, refusal code, and budget or payment details.

Delegation that leaves a trail

The same invoice-reconciler example: a root policy hands work to a parent agent, then to narrower workers. Every level is scoped, budgeted and time-limited, and the token's history shows who handed work to whom.

Root Policy

Finance automation • tenant scoped • revocable

Finance Parent Agent

invoice:*

$10k/mo

Approval Agent

payment:approve

$5k/mo

Receipt export agent

evidence:export

read-only

Invoice Reconciler

invoice:match

$500/day24h
Vendor Lookup Worker

vendor:read

$100/day8h
OCR Worker

document:ocr

$50/day1h
Exception Reporter

evidence:write

no-spend12h

Scoped

Narrower than parent

Budgeted

Hard spending limits

Time-Limited

Auto-expire by policy

Policy-limited

Sub-delegation stays inside caveats

Single Go binary, with Postgres and Redis for state

No JVM and no language runtime. One binary, with Postgres and Redis for budgets and revocation.

Docker

ghcr.io/satgate-io/satgate (open source)

Kubernetes

Helm chart included

SaaS

cloud.satgate.io

SaaS or self-host

Start on SatGate Cloud at cloud.satgate.io. Enterprise self-host runs the same SatGate binary, with its own database, in your own environment.

The Core Problem

Shared access inside your company

When agents share broad API keys, nobody can tell which agent did what, which team owned it, or where a limit should have stopped it. Limits start with knowing who holds access.

Without SatGate

  • • Agents inherit broad API keys
  • • Delegation happens outside the control plane
  • • Spend and access are reconstructed after the fact
  • • Revocation requires rotating shared secrets
  • • Proof depends on screenshots and log joins

With SatGate

  • • Every governed agent gets scoped, revocable authority
  • • Delegated workers inherit narrower limits
  • • Policy, budget, and scope denials stop requests before execution
  • • The next request after a revoke is refused
  • • Receipt exports show what was spent and a refusal code for the refusals SatGate signs
The Opportunity

Your internal APIs now serve agents

Internal services now get requests from agents, not only from people and apps. SatGate checks those requests before they run and signs receipts you can check later. It's not just usage tracking. It's rules and receipts for AI agents.

📊

See what agents use

See which agent tokens, routes and tools are in use, and what they cost, before you enforce limits.

⚖️

Runtime enforcement

Policy, caveats, budgets, and revocation run before the request goes through, and before the agent reaches the upstream service.

💰

Evidence export

Export signed receipts and check them with the open-source verifier.

“Stop giving AI agents standing authority.”
Give them scoped capabilities. Enforce policy before execution. Export proof after.

How SatGate Mint works

SatGate Mint exchanges workload identity tokens for capability-bearing macaroons. The same Mint flow works for internal calls and governed external paid calls. Each grant is recorded in the audit log.

From one agent to thousands

The same exchange works the same way for one agent or thousands. Agents get tokens from the identity they already have, so there are no shared API keys to rotate.

1

Define trust policies

Map identity claims to budgets, scopes, and TTLs. One policy per agent class — not per agent instance.

2

Agents self-provision

Each agent reads its environment identity (K8s SA, IAM role, OIDC token) and exchanges it for a macaroon. One API call. No human in the loop.

3

Export the evidence

Export the receipts SatGate signed, and use them when you need to prove what happened.

# Agent startup (3 lines, works in any runtime)
IDENTITY=$(cat /var/run/secrets/tokens/satgate-token)
TOKEN=$(curl -s -X POST $SATGATE_MINT_URL \
  -d "{\"credentials\": \"$IDENTITY\"}" | jq -r '.macaroon')
export SATGATE_TOKEN=$TOKEN
# That's it. Agent connects through SatGate with budget-scoped access.

FAQ

AI agent governance questions

What is AI agent governance?

AI agent governance is the set of controls that determines which agents can call which APIs, tools, and models; how much they can spend; what authority they can delegate; and when access must be revoked. For autonomous agents, governance needs enforcement before the request goes through, not just logs and dashboards.

What are rules and receipts for AI agents?

Rules and receipts for AI agents sit before the request goes through. They apply scopes, budgets, delegation rules, and revocation before an agent reaches an upstream API, model, or MCP tool, then keep signed receipts anyone can check later.

How should enterprises govern MCP tool usage?

Enterprises should govern MCP tools with per-tool budgets, scoped capability tokens, task and tenant attribution, signed receipts (Evidence Packs), revocation, and hard policy decisions before the request goes through. Rate limits and dashboards are useful, but they do not replace enforcement before tool calls execute.

What is the difference between AI governance and AI agent governance?

AI governance usually covers model risk, data policy, compliance, and human review. AI agent governance adds controls on each request that goes through SatGate for autonomous actions: scopes, budgets, delegated permissions, revocation, denial reasons, spend attribution, and proof before APIs or MCP tools execute.

Is SatGate tied to x402, L402, AgentCore Payments, or Pay.sh?

Lightning (L402) and USDC on Base (x402) are live. On each paid route, the owner picks Lightning, USDC, or both. AgentCore Payments and Pay.sh are planned. Payment never overrides permissions.

Ready to govern your AI agents?

Start with Observe, then move to Control and export receipts when you're ready.

Observe first • Enforce next • Export proof when it matters