# 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**](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:**

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

**Types:**

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

**Message:**

```json
{
  "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](/dedicated-client-vaults/integration-guide/scenario-a/strategy-assignment.md).

### Versioning and changes

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tesseract.fi/dedicated-client-vaults/reference/public-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
