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

Prerequisites: KYC & Whitelisting

Before any wallet can deploy or operate a vault, it must be on Tesseract's on-chain Whitelisting contract with a non-expired entry. The steps are fixed:

1. Complete KYC / KYB

Go to compliance.tesseract.fi and complete the onboarding flow. For a company, this is a KYB (verification of the legal entity, beneficial owners, and directors); for an individual, it's a standard KYC. Full details of what's required are in Compliance & Onboarding.

2. Register the wallet you'll use

During onboarding you're asked to provide the wallet address(es) you'll use for vault operations and to sign a wallet-ownership message from each. Tesseract runs an AML screen on each wallet.

3. Wallet gets whitelisted on-chain

Once KYC/KYB clears and the wallet passes AML screening, Tesseract writes the wallet to the Whitelisting contract with a KYC-expiration timestamp. From that moment the wallet can deploy and operate vaults.

You can check the whitelist state on-chain at any time:

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

const client = createPublicClient({chain: mainnet, transport: http()})

const whitelistingAddress = '0x25f1a2Ce5b681592E4196616f72aa27593EB5df8'
const whitelistingAbi = [
  {
    type: 'function', stateMutability: 'view',
    name: 'isWhitelisted',
    inputs: [{name: 'account', type: 'address'}],
    outputs: [{type: 'bool'}],
  },
  {
    type: 'function', stateMutability: 'view',
    name: 'whitelistExpiration',
    inputs: [{name: 'account', type: 'address'}],
    outputs: [{type: 'uint256'}],
  },
] as const

const isWhitelisted = await client.readContract({
  address: whitelistingAddress,
  abi: whitelistingAbi,
  functionName: 'isWhitelisted',
  args: [myWallet],
})

4. KYC renewal

Whitelist entries expire. Renewal typically requires going through the KYC flow again — Tesseract will email you shortly before your expiration date with instructions for what's needed. Once the renewal is cleared, the new expiration is written back to the on-chain whitelist. Until the wallet is re-whitelisted after expiry, new on-chain operations (deploy, deposit, withdraw, strategy change) revert for that wallet. Read whitelistExpiration directly from the Whitelisting contract if you want an independent view of remaining validity.

Using multiple wallets

A single client may have several whitelisted wallets (hot, cold, multisig, custodial). Each must be registered and whitelisted individually. Note that a vault is tied to the wallet that created it — operational rights on a given vault stay with that wallet.


Once your wallet is whitelisted, continue to Deploying a Vault.

Last updated

Was this helpful?