prerequisites.md
For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to page URLs; this page is 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.