public api.md

Public API

The Tesseract Public API is the reporting and vault-state surface for integrators. It exposes vault discovery, transaction history, and performance data, and accepts the EIP‑712 signed request that assigns a strategy to a freshly deployed vault.

Base URL

https://api.vault.tesseract.fi

Interactive reference

Full request / response schemas, parameters, and live "try it" UI are published as Swagger:

🔗 https://api.vault.tesseract.fi/public/docs

Schemas are the source of truth — this page is a navigational summary, not a replacement.

What you'll find there

Purpose Endpoint family
List vaults for one or more client wallet addresses POST /vaults/query/by-client-addresses
Get a single vault's detail (asset, shares, fees, status) GET /vaults/{vault}
List transactions for a vault (deposits, withdrawals, rebalances) GET /vaults/{vault}/transactions
Assign a strategy to a deployed vault (EIP‑712 signed) PUT /vaults/{vault}/strategy
Performance time-series (APY/APR, TVL, share price) GET /vaults/{vault}/performance

Authentication is not required for read endpoints — vault addresses themselves act as the key. The strategy-assignment endpoint validates an EIP‑712 signature against the vault's owner; see below for the schema.

Performance snapshots. The performance endpoint exposes hourly snapshots — share price and TVL are simulated against current on-chain state and refreshed each hour, so they reflect yield accrued between vault transactions (unlike a bare on-chain read, which only updates when the vault is touched).

Strategy assignment (EIP‑712)

Strategy selection is off-chain metadata signed by the vault owner and submitted to PUT /vaults/{vault}/strategy. There is no on-chain transaction and no gas cost for the signer.

Domain:

{
  "name": "Tesseract Public API",
  "version": "1",
  "chainId": 1
}

Types:

{
  "SetStrategy": [
    { "name": "vaultAddress", "type": "address" },
    { "name": "strategyId",   "type": "string"  },
    { "name": "timestamp",    "type": "uint256" }
  ]
}

Message:

{
  "vaultAddress": "0x...",
  "strategyId":   "<uuid>",
  "timestamp":    1716000000
}

timestamp is Unix seconds and must be recent (signatures expire after a short window — send within a few minutes of signing). Strategy changes may be restricted once a vault is actively managed; if your submission is rejected, contact Tesseract to arrange a managed transition.

A viem example — and the full REST call — is shown in the Integration Guide.

Versioning and changes

The API is versioned via its base URL. Breaking changes are announced in the changelog and backwards-compatible additions are rolled out without notice — favour lenient parsing of response bodies.