Agent wallet deep dive (per engineer)
Cosa viene effettivamente firmato, cosa viene conservato, quali sono i failure mode. Per utenti che vogliono verificare le claim di Botely prima di approvare l'agent.
Architettura
Il tuo wallet principale (MetaMask + hardware opzionale) detiene la chiave principale EVM. Il wizard Botely genera un keypair separato nel tuo browser (l'agent) e chiede al tuo wallet principale di firmare un'azione EIP-712 `approveAgent` che autorizza l'agent a firmare azioni di trading per il tuo account principale.
Dopo l'approvazione, il payload `approveAgent` firmato + la chiave privata cifrata dell'agent sono conservati server-side. Il runner del bot carica + decifra il bundle a ogni tick, firma azioni `place`/`cancel` di ordini per il tuo account, e le sottopone all'endpoint `/exchange` di Hyperliquid.
Il payload EIP-712 approveAgent
L'azione EIP-712 `approveAgent` è un messaggio typed-data strutturato con `agentAddress` (l'address EVM del nuovo agent), `agentName` (un'etichetta human-readable, impostata a "Botely"), `nonce` e `time`. È firmato dal tuo wallet principale e sottoposto a Hyperliquid.
Una volta accettato, i validatori Hyperliquid registrano il binding agent → account principale. Le azioni di trading successive firmate dall'agent sono validate contro questo binding e applicate al saldo del tuo account principale.
Path di firma server-side
A ogni tick (~30s) il runner di strategia: (a) carica la tua riga di config da Postgres incluso il bundle agent cifrato, (b) decifra AES-256-GCM il bundle usando la master key in memoria processo, (c) firma una nuova azione di ordine `place` o `cancel` con viem, (d) sottopone a Hyperliquid REST, (e) scarta il plaintext della chiave.
Il lifetime del plaintext è ~10ms dentro un frame di funzione Node.js. Nessun plaintext tocca il disco, nessun plaintext appare nei log, nessun plaintext viaggia in rete oltre al payload firmato.
Vettori d'attacco e mitigazioni
Esfiltrazione del solo bundle cifrato: inutile senza la master key.
Esfiltrazione del bundle + master key (es. compromissione completa del server): l'attaccante può firmare trade sul tuo account entro l'autorità trading-only di HL ed entro la whitelist mercati server-side Botely. Non può prelevare. Mitigazione: la revoca lato wallet invalida istantaneamente l'agent.
Insider malevolo Botely che modifica il runner per firmare su mercati non-whitelisted: rischio residuo, mitigato da code review + change management + audit logging. Comunicato onestamente nella Risk Disclosure §7A.4.
Phishing dell'utente a approvare un agent fasullo: rischio reale; il wizard mostra l'address dell'agent prima della firma — controlla sempre che l'address inizi con `0x` e combaci con quello mostrato dal wizard.