Unseen*

Unseen lets autonomous software pay for APIs, data and compute without publishing the strategy behind every payment.

Youragentcanbuywhatitneeds.Itshouldnothavetopublishwhy.

Every payment tells a story.

Who you pay. How often. What you are building.

The trail is public

Your wallet

0x91bd…04aa

Your agent

0x7a3f…c21e

Vendor

Signal feed

12:04:11 · signal
12:04:12 · order book
12:04:15 · open long

The whole story is on-chain.

Wallet, timing and counterparties line up in one public trail.

The private route

Four moves. One clean payment.

PoolYouPublic depositAgentUp to 0.10 per paymentUp to 5.00 per daySessionFresh address, no historyVendorReceives plain USDCViewing key: you read everything, nobody else can
  1. Fund one balance. Keep the reason for spending off the public trail.

  2. Give your agent a key that can spend within limits — and cannot escape them.

  3. When a paywall asks, Unseen opens a fresh route and settles the request in USDC.

  4. You keep the spending map. Everyone else sees an ordinary payment.

No new checkout for the vendor. No new mental model for the agent. Unseen changes the route underneath the payment, so the useful part stays simple and the sensitive part stays yours.

Make the payment. Break the link.*

Private route

The payment arrives. The trail stops with you.

UNSEEN / ON
POOLone balanceSESSIONfresh addressVENDORsees paymentNO WALLET TRAIL

* The chain still sees a payment. It just cannot see the relationship behind it.

One line for your agent.

Keep the integration tiny. Keep the controls yours.

  • Drop into any x402 paywall
  • Caps live outside the model
  • Works with MCP, SDK or your own runner
  • Pause everything from one control room
agent.tsWorking local alpha
import { Unseen } from "@unseen/agent";

const wallet = await Unseen.connect({
  key: process.env.UNSEEN_AGENT_KEY, // can spend, cannot withdraw
  limits: { perPayment: "0.10", perDay: "5.00" },
  allow: ["api.signals.example", "inference.example"],
});

// Drop-in fetch. Answers HTTP 402 from any x402 endpoint.
const res = await wallet.fetch("https://api.signals.example/v1/latest");
const signal = await res.json();

For machines that spend on your behalf.

Trading agents

Keep the signals, timing and strategy out of the public wallet.

Teams buying data

Buy what your stack needs without publishing your shopping list.

API vendors

Get paid by machines without learning the whole story behind every request.

Let your agents spend. Keep the keys.

The local alpha is ready. Connect an agent, set a ceiling and make its first real x402 payment. When the public alpha opens, the same control room will follow the full network.

Local alpha · available now

Connect an agent. Make its first private payment.

Open dashboard

* The chain can see that a payment happened. Unseen hides who paid whom. Nothing on this page is financial advice.