Vault Lifecycle

End-to-end flow of a Dedicated Client Vault β€” from a wallet's first access through to reading vault state β€” organized around the four things an integrator needs to know: how a wallet gets access, how a vault comes into existence, how it operates, and how to interact with it day-to-day. For step-by-step code, see the Integration Guide.

1. Wallet access β€” the Whitelisting contract

Before any wallet can deploy or operate a vault, it has to appear on Tesseract's on-chain Whitelisting contract with a non-expired entry.

To get there, the client completes the Compliance & Onboarding flow β€” KYC/KYB, then proof-of-ownership signatures for the wallets they want to use (one or more can be added). Once checks clear, Tesseract writes each wallet to the Whitelisting contract on-chain. From that moment the wallets work unattended until their entry expires β€” shortly before expiry, Tesseract emails the client with instructions to complete KYC renewal; once the renewal is cleared, the new expiration is written back to the whitelist on-chain.

For partner-led onboarding (custodian model), the partner and Tesseract agree on compliance responsibilities and the partner's users are provisioned through the Compliance API β€” see Scenario B. The end state is identical: each wallet carries an active on-chain whitelist entry.

There is one Whitelisting contract covering all assets. See Contract Addresses.

2. Vault creation β€” the Vault Deployer

A dedicated vault is created in a single transaction against a Vault Deployer. There's one deployer per supported asset (USDC, WETH, WBTC) β€” the caller invokes the deployer for the asset they want to hold, passing an initial deposit and acceptable fee bounds.

Most clients drive this through the Tesseract app at app.tesseract.fi β€” connect a whitelisted wallet, pick the asset, enter the deposit amount, and confirm. The app builds and submits the transaction on the client's behalf. Partners integrating directly from their own infrastructure call the deployer themselves β€” see the Integration Guide.

Either way, that one transaction:

  • Clones a fresh vault contract for the caller

  • Wires the caller as the owner with deposit and withdrawal rights

  • Configures management and performance fees

  • Pulls the initial deposit from the caller and mints shares in return

  • Emits a VaultDeployed event with the new vault's address

After the transaction, the vault is fully independent β€” the deployer has no further control over it. The client lands on the new vault with shares already in their wallet; there is no separate "first deposit" step.

3. Selecting a strategy

Strategy selection is off-chain and costs no gas β€” the client signs an EIP‑712 typed-data message from their wallet, and once submitted Tesseract picks the vault up and begins managing it. The same mechanism is used to switch strategies later as risk preferences change.

  • Retail. Pick a strategy from the list in app.tesseract.fi and sign the prompt that appears in the wallet β€” the app builds the message and submits the signature.

  • Integrators. Build and sign the EIP‑712 message yourself, then PUT /vaults/{vault}/strategy on the Public API. See Strategy Assignment for the schema and a worked example.

4. Operating the vault

Once a strategy is assigned, Tesseract Investment Oy executes the discretionary portfolio management mandate at the vault level β€” allocating into yield sources, rebalancing, and handling risk management on the client's behalf. Assets never leave the individual vault contract to enter a shared pool.

Day-to-day vault operations have two paths. Retail clients use app.tesseract.fi, which handles approvals, transaction construction, and fallback between instant and scheduled withdrawals automatically. Integrators call the vault and its WithdrawManager directly β€” see the Integration Guide for code-level walkthroughs.

Top-up. Add to an existing vault by depositing more of the underlying asset β€” shares are minted immediately, and Tesseract allocates the new capital on the next management cycle. Retail: use the "Deposit" action in the app. Integrators: approve the asset and call deposit on the vault β€” see Deposits.

Instant withdrawal. For amounts that fit within the vault's liquid balance, withdrawals are a single transaction and funds arrive in the same block. Retail: use the "Withdraw" action in the app. Integrators: call withdraw or redeem on the vault; if the amount exceeds instant capacity the call reverts and you fall back to the scheduled flow β€” see Instant Withdrawals.

Scheduled withdrawal. For larger amounts, withdrawal is a three-step flow spread over up to ~24 hours: request β†’ wait for Tesseract to release funds β†’ claim within the withdrawal window. Retail: the app walks you through all three steps. Integrators: call requestShares on the vault's WithdrawManager, poll for release, then call redeemFromRequest on the vault β€” see Scheduled Withdrawals.

Yield accrues to each vault's positions and compounds automatically into the share price β€” no manual claim, no separate rewards token. See Vault Shares for how shares, share price, and auto-compounding work.

5. Reading vault state

Every vault has a public page in the Tesseract app β€” for example, app.tesseract.fi/vault/0xe1c3a197…76a9 β€” showing balance, share price, performance, and transaction history. Clients use this as their primary dashboard.

Behind the same data, vault state is available two ways for integrators:

  • Directly on-chain. Share price, balance, asset, total assets β€” the vault is a standard ERC‑4626 contract. Any ERC‑4626 tooling works.

  • Via the Public API. Vault discovery, decoded transaction history, and performance time-series (APY/APR, TVL, share price over time).

For a partner integrating into their own stack, the Public API is the single canonical entry point for reporting. No periodic reconciliation is required β€” share price and positions are always derivable from on-chain state.

Components at a glance

Component
Purpose
Public surface

Whitelisting

KYC-gated access control

isWhitelisted, whitelistExpiration

Vault Deployer (per asset)

Creates dedicated vaults

deployVault, deployVaultWithPermit

Vault (ERC‑4626)

Holds client assets, mints/burns shares

Standard ERC‑4626 (deposit, redeem, withdraw, balanceOf, totalAssets, …)

WithdrawManager (per vault)

Scheduled-withdrawal requests for amounts exceeding instant liquidity

requestShares, together with the vault's redeemFromRequest

Public API

Vault discovery, transactions, performance, strategy assignment

api.vault.tesseract.fi

See Contract Methods for full signatures.

Last updated

Was this helpful?