Strategy Assignment | Tesseract Documentation

For the complete documentation index, see llms.txt. This page is also available as Markdown.

Strategy selection is off-chain metadata signed by the vault owner. There's no on-chain transaction and no gas cost — you sign an EIP‑712 typed-data message with the owner wallet and POST it to the Public API. Tesseract picks the vault up and starts managing it.

Strategy can be set and changed freely before the vault starts being actively managed. Once a vault is actively managed, changes may be restricted — if your change isn't accepted, contact Tesseract to arrange a managed transition.

Discover available strategies

The set of strategies and their IDs is in the Tesseract app and exposed via the Public API. Each strategy has a UUID and is tied to a specific underlying asset (a USDC strategy can only be assigned to a USDC vault).

Sign the message

The EIP‑712 schema is defined in the Reference → Public API page. Using viem:

import {createWalletClient, http} from 'viem'
import {mainnet} from 'viem/chains'

const walletClient = createWalletClient({
  chain: mainnet,
  account: /* your signer */, 
  transport: http(),
})

const timestamp = Math.floor(Date.now() / 1000)

const signature = await walletClient.signTypedData({
  domain: {
    name: 'Tesseract Public API',
    version: '1',
    chainId: 1,
  },
  types: {
    SetStrategy: [
      {name: 'vaultAddress', type: 'address'},
      {name: 'strategyId',   type: 'string'},
      {name: 'timestamp',    type: 'uint256'},
    ],
  },
  primaryType: 'SetStrategy',
  message: {
    vaultAddress: vault,
    strategyId: selectedStrategyId,
    timestamp: BigInt(timestamp),
  },
})

Submit to the Public API

const response = await fetch(
  `https://api.vault.tesseract.fi/public/vaults/${vault}/strategy`,
  {
    method: 'PUT',
    headers: {'content-type': 'application/json'},
    body: JSON.stringify({
      clientAddress: owner,
      strategyId: selectedStrategyId,
      signature,
      timestamp,
    }),
  },
)

if (!response.ok) {
  throw new Error(`Failed to assign strategy: ${response.status}`)
}

The API verifies:

After assignment

Once the signature is accepted, Tesseract's management process picks up the vault on its next cycle and begins allocating positions according to the selected strategy. You can see the assignment reflected in the vault's detail via GET /vaults/{vault} — see Reading Vault Data.

Changing strategy later

Re-sign and re-submit with a different strategyId — each submission replaces the previous assignment. Strategy changes may be restricted once the vault is actively managed; if your submission is rejected, contact Tesseract to arrange a managed transition.