UPDATE · gateway 0.11.0 is live.
Buybacks are back, on Uniswap v4.
When UMBRA graduated from its launch curve to Uniswap v4, two things in the gateway paused by design: the automated buyback and paying in UMBRA. Both read their price from the curve, and the curve was gone. Today both read the v4 pool, and the first buyback on it is done.
What shipped:
• Price source: the ETH/UMBRA v4 pool, read straight from PoolManager storage, times the WETH/USDG pool for dollars. No oracle, no API.
• Buyback route: USDG → WETH (v3) → ETH → UMBRA through the Universal Router (V4_SWAP: swap exact in, settle all, take all) → 0x…dEaD.
• Exact quote: the output is found by simulation before sending, so the pool's hook fee (3% on output) and the price impact are inside the slippage floor. No surprises, no stuck runs.
• Pay in UMBRA is available again: same Permit2 rail, same fee share destroyed with burn() right after settlement, same holder tiers.
• The executor burns exactly what it bought. UMBRA received as payment stays in the fee wallet, like USDG does, and is subject to the same 50% policy.
First run on the new route, 2026-10-21:
• 0.2547 USDG → 0.00010375 ETH → 16,898.00 UMBRA bought on v4 → burned
• burn tx https://t.co/SRh1HgPPzB
• buy tx https://t.co/vCuP3bHPww
• dead address now 17,868,926 UMBRA, 1.787% of supply
Policy unchanged: 50% of fees buy and burn, 50% fund operations, executed inside the enclave, parameters in the measured compose (0.11.0: 1e00ef0d…). The ledger is the chain, readable at /revenue.
https://t.co/VySlQHAnez
CA 0x4d3ace48b1590bc4c5dd46f05237c133be564eb3
Settling first costs five seconds. Here is what it buys.
Streams and long answers on Umbra are paid before the first token. That puts an on-chain settlement in front of the model instead of behind it. We measured both paths on the production enclave today, same prompt, same model (DeepSeek V4 Flash, sealed):
Authorization path (upto, settle after the answer): 402 in 1.6 s, then generation and settlement, full answer at 7.4 s. 113 tokens, settled 0.000161 USDG.
Upfront path (exact, settle first, stream): 402 in 1.1 s, settlement confirmed and PAYMENT-RESPONSE header out at 7.0 s, first token right after, last of 42 chunks at 12.6 s, refund sent. 97 tokens, net 0.000139 USDG.
What the five seconds buy:
• tokens as they are produced, instead of after the whole answer is buffered and settled
• no clock on the signature: a 20-minute answer cannot outlive its authorization
• exact cost anyway: the unused ceiling comes back on-chain, net equals usage
Both paths spend about the same time on chain. The difference is where it sits. The gateway only picks upfront when it has to: 2,048 output tokens or more, a stream, or when you ask for it with x-umbra-flow: upfront. Short requests keep the fast path.
https://t.co/VySlQHAV47
What a dollar buys on Umbra.
The price is the model's list price plus a 4% fee, and nothing else. No subscription, no seat, no monthly minimum, no credits that expire. A wallet with one USDG in it is an account.
For one USDG, answers of about 500 tokens (300 in, 500 out):
• Gemma 4 31B, sealed: 3,497
• Claude Haiku 5.5: 3,434
• GLM 5.3 Flash, sealed: 3,259
• GPT-OSS 120B, sealed: 2,787
• DeepSeek V4 Flash, sealed: 1,214
• Qwen 3.8 27B, sealed: 734
• Llama 3.3 70B, sealed: 601
• Qwen 3.5 397B, sealed: 502
• Claude Sonnet 5.5: 172
• Kimi K3, sealed: 114
• Claude Opus 5.5: 86
• Claude Fable 5.1: 34
Cost of a month with zero requests: 0. Cost of a request that fails: 0. Hold 100k UMBRA and the fee drops to 2%; 1M, to 0%.
Sealed models run in GPU enclaves with public attestation. Standard models are served by Anthropic, which sees the prompt, and are labelled as such. Live prices at https://t.co/UGL17TvwSr.
Two numbers, two sources, both in the receipt.
The ceiling is computed before anything runs: input estimated from the prompt length (4 characters per token, plus 25%, plus a 16-token margin, pessimistic on purpose), output at your max_tokens, priced at the model's list price plus the fee. That is the most you can lose, and it is what you sign.
The usage is what the model runtime reported after it answered: input and output tokens as returned by the GPU enclave that ran the model, or by Anthropic for the standard tier. The gateway does not re-tokenize or estimate anything after the fact.
You pay the second one. A real request today, DeepSeek V4 Flash in the sealed tier:
• ceiling: 66-character prompt → 37 estimated input tokens, 200 max output, $0.44 / $1.32 per M, fee 2% → 0.000286 USDG
• usage: 18 input, 97 output → 0.000139 USDG
• on chain: 0.000286 settled upfront, 0.000147 refunded, net 0.000139, to the atomic unit
Both token counts, the fee rate, the authorized amount and the settled amount are in the signed receipt. Anyone can redo the arithmetic from the public price list.
https://t.co/VySlQHAnez
ow the holder discount is enforced without an account, a form or KYC: the wallet that pays is the proof.
1. Hint. Send x-umbra-payer: 0x… with the request. The 402 is priced at that wallet's tier, read with balanceOf on the UMBRA contract at that moment.
2. Pay. Your wallet signs the authorization. The signature names the payer and cannot be forged for another address.
3. Check. Before settling, the gateway reads the signing wallet's balance again. Tier matches: settle at that rate. Hinted a better tier than the paying wallet holds: 402 holder_discount_not_applicable, nothing charged, retry at your rate or without the hint.
Tiers: under 100k UMBRA, fee 4%. 100k and above, 2%. 1M and above, 0%.
The rate that was applied is in the response headers (x-umbra-fee-bps, x-umbra-holder-tier) and in the signed receipt (cost.fee_bps, cost.holder), so a discount is as auditable as a payment.
With "upto" the hint is optional: the settlement is computed at the paying wallet's own rate, whatever was quoted.
https://t.co/VySlQHAV47
A card on file can be charged again. An API key can be billed again. The thing you sign for an Umbra request can be used exactly once, for one amount, before one deadline. The chain enforces all three, not the gateway.
Inside the authorization (EIP-3009, USDG on eip155:4663):
• nonce: 32 random bytes. The token contract records it at settlement; a second use reverts.
• validBefore: now plus the authorization window, 2 to 15 minutes depending on the request size. After that the signature is dead, settled or not.
• value: the quoted ceiling. With "upto" the settlement can take less, never more.
• to: the gateway's receiving address, named in the 402. Nobody else can collect it.
So what the gateway cannot do with your signature: charge it twice (nonce used, revert), charge it tomorrow (validBefore passed, revert), charge more than the ceiling (value is in the signed hash), send it elsewhere (to is in the signed hash).
The same holds on the Permit2 path (upto, pay in UMBRA): nonce and deadline are part of the signed data.
No stored payment method. No "we'll bill you later". One signature, one request, one on-chain settlement you can look up.
https://t.co/VySlQHAnez
Pay-per-request only works if a failed request is free. Here is everything that can go wrong between your signature and the answer, and what each one costs you.
• Signature expired → 402 before the model runs. Cost: 0.
• Holder hint wrong (quoted at a tier your wallet does not hold) → 402 before settlement, retry at your rate. Cost: 0.
• Model error, authorization flow → 502, the middleware never settles. Cost: 0.
• Model error, upfront flow (long request or stream, ceiling already settled) → full ceiling refunded on-chain, tx in the body. Cost: 0.
• Error mid-stream, tokens already sent → error event, full ceiling refunded. Cost: 0.
• Settlement fails (balance moved, RPC down, reverted) → 402 with the reason, answer withheld. Cost: 0.
• Gateway crashes after your signature → the signature dies with its window, never settled. Cost: 0.
• Answer delivered → usage settled, the rest of the ceiling refunded or never taken. Cost: the tokens you received.
The rule: you are charged for exactly one thing, tokens that reached you. None of the cases above needs a support ticket. Each outcome is a status code, a settlement header or a refund transaction you can check.
https://t.co/VySlQHAnez
Burn tally after three days: 17,852,010 UMBRA out of circulation. 1.79% of supply, gone for good.
Twelve burns, three mechanisms, all on chain. Four new ones since the last tally, 3,177,306 UMBRA, after the market moved from the launch curve to Uniswap.
Team allocation, sent to the dead address (nine burns, 17,834,134.19 total):
• day 1–2: 5,337,573.54 · 4,459,739.29 · 2,107,418.06 · 2,128,001.84 · 624,095.89
• 745,225.51 · https://t.co/OImct8V1VQ
• 689,628.14 · https://t.co/1wWkjJ7GA4
• 629,732.59 · https://t.co/U57joYvN8K
• 1,112,719.33 · https://t.co/2pAvTWQIhW
Automated buyback, executed by the gateway inside its enclave with 50% of fee revenue:
• 17,875.28 · https://t.co/L7ktVbCv2d
Fees paid in UMBRA, destroyed with burn(), total supply reduced:
• 0.77 across two requests
Nothing minted, nothing coming back. Verify in two calls on the UMBRA contract: balanceOf(0x…dEaD) = 17,852,009.47 and totalSupply() = 999,999,999.23. Both only move one way.
https://t.co/VySlQHAnez
CA 0x4d3ace48b1590bc4c5dd46f05237c133be564eb3
Update: streaming is live. Paid before the first token, refunded after the last.
Both routes now stream, each in its native format: OpenAI chunks on /v1/chat/completions, Anthropic events on /v1/messages. Add stream: true, nothing else changes.
The problem to solve: x402 normally settles after the answer, from the full response. A stream has no "after" until the last token, so a signature could expire mid-answer, and the settlement header cannot follow a body that has already started.
Our answer, same as for long requests: settle the ceiling before the first token, inside the enclave, then refund the unused part on-chain after the last one. The final event carries the refund transaction, the token counts and the Ed25519 receipt naming the enclaves that answered. If the model fails mid-stream, the full ceiling is refunded.
First real stream on the production enclave today, DeepSeek V4 Flash in the sealed GPU tier:
• ceiling settled 0.000286 USDG, usage 0.000139 at the holder rate
• 42 chunks, 97 output tokens
• refunded 0.000147 USDG, tx 0xcfdfc40ee44a44ab59e1840e1a498356b87aa785675e7bf93b3daa9507d59cb6
• receipt signed, gateway tdx, model tdx+gpu, 0 bytes retained
node client/pay.js "…" --stream --network eip155:4663
Measured release 0.10.0: the compose that pins it is published, the enclave check on the site matches it.
https://t.co/VySlQHAnez
0x4d3ace48b1590bc4c5dd46f05237c133be564eb3
Privacy is not the premium option here. It is the cheaper one.
Live list prices from the gateway catalogue, per 1M tokens, same 4% fee on every model:
Sealed (runs inside a GPU enclave, nobody can read the prompt):
• GPT-OSS 120B: $0.15 in / $0.60 out
• Gemma 4 31B: $0.15 / $0.46
• DeepSeek V4 Flash, the default: $0.44 / $1.32
• Qwen 3.5 397B: $0.55 / $3.50
• Kimi K3: $3.00 / $15.00
Standard (runs at the provider, which sees the prompt):
• Claude Haiku 5.5: $0.10 / $0.50
• Claude Sonnet 5.5: $2.00 / $10.00
• Claude Opus 5.5: $4.00 / $20.00
Read it two ways. A sealed 120B model costs about what a standard frontier model's cheapest tier costs. A sealed 397B model costs a third of Opus. The enclave adds no line to the bill: the price is the provider's list price plus the same 4%, whichever tier you pick.
You choose privacy, or a specific lab model. You do not pay extra for the first.
Full catalogue, live: https://t.co/7o3VcH7uHg
CA: 0x4d3ace48b1590bc4c5dd46f05237c133be564eb3
We accept four assets. One of them lets us remove the middleman.
USDC on Base and Solana reach more wallets. UMBRA burns with every request. But USDG on our chain is the rail where the gateway verifies and settles the payment itself, inside the enclave. Four reasons it is the one we recommend:
1. Gasless by design. USDG supports EIP-3009 transferWithAuthorization: the payer signs, anyone can broadcast. So the gateway broadcasts and pays the gas. The payer never needs a native token.
2. No facilitator. No public x402 facilitator serves this chain, so we wrote one, in-process. It runs inside the enclave: the party that moves the money is the attested code, not a third service.
3. Metered. Permit2 is deployed there, so the upto scheme works: we settle the tokens actually produced, not the ceiling. On facilitator rails, only exact is offered.
4. A real dollar. Global Dollar is issued by Paxos, regulated, 1:1. Prices are quoted in USD and settled in a stablecoin with an accountable issuer. No oracle on the payment path.
The trade-off, said plainly: fewer wallets hold USDG today. That is why Base and Solana exist as rails. But when privacy is the point, the rail with no third party is the one to pick, and the receipt tells you which one you used.
https://t.co/VySlQHAV47
Update: your agent can now pay for its own inference. Umbra MCP server, live.
Five tools over stdio, for any MCP-capable agent (Claude Code, Cursor, your own):
• umbra_quote: the price for this prompt, before paying
• umbra_ask: pay, get the answer, the settlement and the signed receipt
• umbra_verify_receipt: Ed25519 check, locally and against the gateway's published key
• umbra_wallet: balances, holder tier, spend this hour, caps
• umbra_models: catalogue, tiers, list prices
Give the agent a wallet and a budget instead of an API key. It quotes, pays per request inside the caps you set, and hands back a receipt that names the enclaves that answered. If a request would break a cap, it is refused before anything is signed.
One command:
claude mcp add umbra -e EVM_PRIVATE_KEY=0x… -e CAP_PER_CALL=0.05 -e CAP_PER_HOUR=1 -- node umbra-api/mcp/server.mjs
First real call through it today, on the production enclave: answer in 4 s, settled 0.000100 USDG at the holder rate, receipt signed, gateway tdx, model tdx+gpu, tx 0xb6399abd3ebeb70b64761647bb7819fce3bd456efd963b411aae4e30d316d388.
What the agent never holds: an API key, gas, your prompts, or an unbounded bill.
This moves "Agent SDKs and MCP server" from the roadmap's After column to Shipped. The rule still stands: nothing moves until you can check it yourself.
https://t.co/VySlQHAV47
0x4d3ace48b1590bc4c5dd46f05237c133be564eb3
What the attestation proves, and what it does not.
"Runs in an enclave" is a strong claim. It deserves an exact boundary. Here is ours.
It proves, and you can verify it yourself:
• the gateway code running is the published release, byte for byte, and its config is the published compose
• the receipt key was generated inside that code and never left
• the host's memory is encrypted by the CPU: root on the machine cannot read prompts
• sealed models run in a separately attested GPU runtime with its own public report
It does not prove, so you still have to trust or check:
• that the published code has no bugs. Attestation proves identity, not correctness. Read the code.
• Intel's root of trust and the quote's signature chain: verified with Intel tooling, not by our page
• availability: we can stop the enclave. We cannot read it.
• the standard tier: Claude runs at the provider, which sees the prompt. The receipt says so.
• your side: your device, your wallet, and the payment itself, which is public
Why publish the limits: a privacy claim without its boundary is marketing. With it, it is a spec you can hold us to, and the receipt is the contract.
https://t.co/VySlQHAV47
Agreed, and it goes further than Solana. On Umbra the payer never holds gas on any rail: USDG on our chain is settled by the gateway’s own wallet, USDC on Base and Solana by PayAI’s. The only time a user ever needs native gas is the one-time Permit2 approval for the upto scheme, where you pay for the tokens actually produced instead of the ceiling, and even that is optional. A wallet with stablecoins is a complete client. For agents it is the whole point: a budget, not a gas tank to keep filled.
Pay Umbra from Solana with USDC only. No SOL, no account to open.
Two things people hit the first time they pay an x402 service on Solana, and how we handle both.
Fees. The 402 carries PayAI's address as the fee payer. You sign a USDC transfer, PayAI signs the transaction fee and submits it. A wallet holding USDC and zero SOL can pay Umbra. Agents never need to top up gas. The receipt says facilitation: "PayAI".
The gotcha. On Solana, USDC lands in the recipient's associated token account, and the x402 client does not create it. If it is missing, every payment fails at simulation, with an error that explains nothing. So the gateway checks the receiving account on chain and hides the Solana rail until it exists: you never see an offer that cannot settle. Published in the well-known as ready: true and the account address, re-checked every 10 minutes.
Settled today on devnet through PayAI's production facilitator (tx 2bT6gtPn…ZStT), mainnet rail live. Same enclaves, same receipt, a different rail.
https://t.co/VySlQHAV47
Hold it, Umbra gets cheaper. Use it, UMBRA gets scarcer.
Two mechanisms shipped this week. Each is simple on its own. Together they make a loop that runs on usage, not on announcements.
1. Hold. The protocol fee follows the paying wallet's balance: 100,000 UMBRA → 2% instead of 4%, 1,000,000 → 0%. Read on chain at payment, written in the receipt. No staking, no lockup.
2. Pay. Any request can be paid in UMBRA, and the fee share is destroyed with the token's burn() the moment the payment settles. Total supply goes down with every request.
3. Fees. Stablecoin fees are not idle either: monthly, half of them buy UMBRA on the market and burn it, executed by the gateway inside its enclave, on a rule you can read in the attestation.
The loop as it runs today: agents pay per request → fees land in USDG, USDC or UMBRA → UMBRA fees burned at once, stablecoin fees bought and burned monthly → holders pay less → more traffic settles in UMBRA → more burned. Supply: 1,000,000,000 → 999,999,999.23 and falling.
What is not in the loop: no yield, no payout, no promise. Holding makes the service cheaper. Using it removes tokens. Everything else is price, and price is not ours to promise.
https://t.co/VySlQHAnez
CA 0x4d3ace48b1590bc4c5dd46f05237c133be564eb3
New: hold UMBRA, pay less per request.
The protocol fee on Umbra now depends on how much UMBRA the paying wallet holds:
• under 100,000 UMBRA: 4%, the standard rate
• 100,000 and more: 2%
• 1,000,000 and more: 0%
No registration, no staking, no lockup. The gateway reads the balance on chain when you pay, and writes the tier and the rate into the signed receipt.
Honest by construction. Your client can announce the wallet that will pay to get the discounted quote; at payment, the gateway re-reads the balance of the wallet that actually signs. Announce a rich wallet and pay with another, and the request is refused before any charge. The tiers are literal in the attested compose: change them, and the enclave's hash changes.
Proof, same wallet, five minutes apart:
15:51, 97,720 UMBRA → tier none, fee 4%
15:56, 101,476 UMBRA after a small buy on the curve → tier 1, fee 2%
Both settled on chain, both receipts verifiable on the site.
With the UMBRA rail it compounds: pay in UMBRA as a tier-1 holder and 2% is burned instead of 4%; at tier 2, nothing is charged and nothing is burned. Hold Umbra, and Umbra gets cheaper. Use Umbra, and UMBRA gets scarcer.
https://t.co/VySlQHAnez
CA 0x4d3ace48b1590bc4c5dd46f05237c133be564eb3