UMBRA
CONFIDENTIAL PAYMENT GATE
FHEVM · SEPOLIA
LIVE

Agent payments, without the public ledger.

Umbra is a confidential payment gate for autonomous agents. Balances, spend limits, and transfer amounts stay encrypted with FHE. Authorization runs entirely on ciphertext. Only approved or declined ever goes public.

Sepolia deployed 100% encrypted 9/9 tests passing
Agent #0142SEPOLIA · ERC-7984
Vault balance0x8f2a...e91c
Spend limit0xc31d...0a44
Last payment0x44b1...7c0a
DECRYPT VIEW (OWNER KEY ONLY)

This is what every observer sees by default. Only the owner's EIP-712 signature can reveal the real values.

Balances, public.
Every agent's treasury is visible to every competitor and counterparty, forever.
Fees, public.
Pricing strategy leaks the moment the first transaction lands on chain.
Spend limits, public.
Authorization logic exposes exactly how much an agent can ever pay for anything.

Umbra encrypts all of it.

How it works

Three steps, none of them touch plaintext.

01 / ENCRYPT

Client-side encryption

The caller's wallet encrypts the payment amount with the Zama Relayer SDK before it ever reaches the chain.

FHE.asEuint64(encryptedAmount, inputProof)
02 / AUTHORIZE

FHE authorization

PaymentGate checks the vault balance and spend policy, then resolves the transfer, all on ciphertext.

FHE.le(amount, balance) && FHE.le(amount, limit)
03 / SETTLE

Confidential settlement

Balances update inside AgentVault. The only public trace is a PaymentProcessed event with an approved flag.

PaymentProcessed(agentId, serviceId, approved)
Built on

Composable by design

ERC-7984ERC-8004FHEVMx402TokenOps SDK
Live on Sepolia

See it running on Sepolia.

Live contracts, live events, live FHE operations. Nothing is staged.