Skip to content
Tessera

For developers & AI agents

Tessera isn't only an agent that protects positions — it's a risk layer other apps and autonomous agents can read before they act. A public, read-only Risk API and an MCP server, both live, both backed by real on-chain data + the same regime engine the agent runs. No keys, no writes.

Public Risk API

CORS-open, read-only, always-on. Real on-chain reads.

Market risk — regime + protection bands

GET /api/risk
{
  "regime": "open",
  "regimeLabel": "market open",
  "aiActsBelowHf": 1.10,
  "restoresTowardHf": 1.40,
  "assets": [
    { "symbol": "tAAPL", "priceUsd": 200, "stale": false }, …
  ]
}

Position risk — any borrower address

GET /api/risk/0xBd49…dc25
{
  "exists": true,
  "healthFactor": 4.15,
  "safetyScore": 100,
  "debtUsdc": 250.39,
  "atRisk": false,
  "dropToAiActPct": 74,
  "verdict": "Healthy: collateral would have to fall
              ~74% before the AI steps in."
}

MCP server — for AI agents

Two tools — tessera_market_risk and tessera_position_risk — so Claude, Cursor, or any agent can consult Tessera before acting.

Connect (any MCP client)

{
  "mcpServers": {
    "tessera": {
      "command": "node",
      "args": ["/abs/path/to/mcp/server.mjs"],
      "env": { "TESSERA_API_BASE": "https://tessera-web-delta.vercel.app" }
    }
  }
}

Claude Code: claude mcp add tessera -- node /abs/mcp/server.mjs

Run the live demo (an external agent consulting Tessera)

$ cd mcp && npm install && node demo-agent.mjs

🔌  Connected to Tessera MCP. Tools: tessera_market_risk, tessera_position_risk
🌐  Market regime: market open. The AI acts below HF 1.1.
🔎  Consulting risk for 0xBd4956F8…
    Health factor: 4.15   Safety score: 100/100   Debt: $250.39
🧠  Decision:
    APPROVE — safety score 100, 74% cushion before the AI steps in.
    ↳ live on-chain risk, served by Tessera, consumed over MCP.

Source: mcp/server.mjs + mcp/demo-agent.mjs — a real MCP client → server → live API roundtrip.

Also live on Robinhood Chain — with the full safety stack

Tokenized equities' native home. An Arbitrum Orbit L2 whose larger code-size limit fits the complete vault — including the permissionless backstop + dual-oracle guard that don't fit Sepolia's 24KB.

Robinhood Chain testnet (chain 46630)
Vault (full backstop)  0xf10acf61b480c24102b303ebafb97d9392d693f2
USDC                   0x753b9aC945Feb9dD0C5DD1861B8905e8E03B41dD
Oracle                 0x65e6926BCD4EC600d4175019f20abAE07F95316D
tAAPL / tTSLA / tSPY   0xFD0d…E8e8 / 0xd7fC…C0be / 0x2A1f…6A0e
explorer.testnet.chain.robinhood.com

Some addresses match a Sepolia contract — that's expected, not a copy-paste error: an identical deployer + nonce produces the same CREATE address on each chain.

The backstop is proven, not just deployed. A non-agent address liquidated a stale-heartbeat position on-chain (health factor 0.94 → 1.20), running the same close-factor + post-HF-improvement guards as an agent liquidation — verify the liquidation ↗. The same agent + UI are chain-agnostic; the vault redeploys to any Orbit chain.

This is the agentic thesis: every external agent that reads Tessera's risk signal is a node in a network that trusts our risk engine. Lending is the first customer; the risk layer is the product.