Skip to content

Latest commit

 

History

History
72 lines (48 loc) · 2.91 KB

File metadata and controls

72 lines (48 loc) · 2.91 KB

Key Management

How Keys Are Stored

TWAK generates and stores private keys locally on the host machine. Keys never leave the device — not to Trust Wallet servers, not to the AI model provider, not anywhere.

When the agent wallet is initialized, a BIP39 HD wallet is generated via Trust Wallet Core. The mnemonic is encrypted immediately with AES-256-GCM, using a key derived from the user's password via PBKDF2, and written to ~/.twak/wallet.json. The mnemonic is never stored in plaintext.

What's stored on disk (~/.twak/wallet.json):

Field Type Description
encryptedMnemonic hex string AES-256-GCM ciphertext of the mnemonic
iv hex string Random initialization vector
authTag hex string GCM authentication tag (detects tampering)
salt hex string Random PBKDF2 salt
createdAt ISO 8601 Wallet creation timestamp
chains string[] List of supported chain keys

No plaintext keys, no plaintext mnemonic, no password on disk.

What the Agent Can and Cannot Do

TWAK enforces a strict boundary between read-only queries and signing operations.

Without the wallet password, the agent can:

  • Query any address balance
  • Search tokens and fetch prices
  • Get swap quotes
  • Validate addresses and check token risk
  • View transaction history

The following operations require the wallet password:

  • Derive or reveal wallet addresses
  • Sign or send transactions
  • Execute swaps
  • Approve token spending (ERC-20)
  • Sign messages

The AI model never has direct access to the mnemonic or private keys. It interacts through TWAK's action layer, which gates all signing operations behind password authentication.

Password Resolution

When a signing operation is requested, TWAK tries each source in order and uses the first one available:

Source Notes
--password flag Checked first. Visible in shell history — avoid in production.
TWAK_WALLET_PASSWORD env var Suitable for CI/CD and containerized environments.
OS keychain macOS Keychain, Linux Secret Service. Most secure option.

If none are available, the operation fails with an authentication error.

Multi-Chain Key Derivation

A single wallet derives keys for 25+ supported chains using standard BIP-44 derivation paths. All key derivation and transaction signing is handled by Trust Wallet Core:

  • Ethereum and other EVM-compatible chains: shared address across all EVM networks
  • Bitcoin: Legacy, SegWit, and Taproot derivation paths
  • Solana: Ed25519 key derivation
  • Cosmos, TON, SUI, NEAR, Aptos, Tron: chain-specific derivation

Password Requirements

Wallet creation enforces password strength:

  • Minimum 8 characters
  • At least one uppercase letter, one lowercase letter, and one number

These can be bypassed with --skip-password-check for test environments. See CLI Reference for the full wallet create command.