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.