
# Vault

Local state lives on the **agent's device** in a Tychi data directory.

**Default:** `~/.tyi`  
**Override:** `TYI_DATA_DIR=/custom/path`

## Files

| File | Purpose |
| --- | --- |
| `config/agent_seed.json` | Encrypted agent identity for Tychi auth |
| `vault.json` | Encrypted local EVM wallet |

## Password

The vault password decrypts agent identity and EVM key. Required for local signing.

## Wallet operations

- `client.wallets.create(password, label?)`
- `client.wallets.importPrivateKey(password, privateKey, label?)`
- `client.wallets.importMnemonic(password, mnemonic, label?)`
- `client.wallets.bindLocal(chainId, password)`

Advanced: `readVaultFile`, `unlockVault`, `getEvmWallet`, `unlockAndGetEvmWallet`

## Why bind?

Local wallet alone is not enough. Tychi must know which address is bound to the agent for runs, balances, and on-chain actions.

Usual sequence:

1. Create or import local wallet
2. Log in to Tychi
3. Bind wallet to the agent

## Single-wallet V1

One local wallet per agent for the first public release.