For the complete documentation index, see [llms.txt](https://docs.tesseract.fi/llms.txt). This page is also available as [Markdown](https://docs.tesseract.fi/dedicated-client-vaults/reference/public-api.md).

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**](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](https://docs.tesseract.fi/dedicated-client-vaults/integration-guide/scenario-a/strategy-assignment).

### Versioning and changes

The API is versioned via its base URL. Breaking changes are announced in the [changelog](https://docs.tesseract.fi/dedicated-client-vaults/reference/public-api) and backwards-compatible additions are rolled out without notice — favour lenient parsing of response bodies.
