Revocare una trading key esistente
Se sospetti un leak, hai perso il blocco .env, o vuoi solo ruotarla, la revoca è un processo in due step: marcare la riga DB come inattiva e (opzionalmente) broadcastare MsgRemoveAuthenticator on-chain.
Quando revocare
Sospetti che la API private key sia trapelata (es. bot host compromesso, laptop rubato, .env esposto in un repo pubblico).
Hai perso il blocco .env e devi generare una nuova key da mettere sul bot host.
Stai ruotando le chiavi come misura di igiene (buona pratica ogni qualche mese).
Step 1: revoca in Botely
Vai in /app/settings → card "Active trading key" → bottone Revoke. Conferma nel dialog. Questo setta la riga DB a active=false + revokedAt=now, e Botely non riconoscerà più questa key come autoritativa.
Importante: NON rimuove ancora l'authenticator on-chain. Il bot potrà ancora usare la key per firmare trade su dYdX — il file .env sul bot host è la vera source-of-truth di cosa viene usato.
Step 2: rimuovi le entry .env sul bot host
SSH nel bot host. Edita il .env (tipicamente /etc/botely-saas.env o ~/crypto-bot/.env) e rimuovi o commenta le tre righe DYDX_* (DYDX_OWNER_ADDRESS, DYDX_API_PRIVATE_KEY, DYDX_AUTHENTICATOR_ID).
Restart del bot: `pm2 restart crypto-bot`. Il dydxClient ora non ha più credenziali permissioned. Se DYDX_MNEMONIC è ancora nel .env, cade sulla firma mnemonic; altrimenti rifiuta di partire con errore chiaro.
Step 3 (opzionale, raccomandato): rimozione on-chain
Broadcasta MsgRemoveAuthenticator dal tuo owner wallet per eliminare davvero l'authenticator on-chain. Finché non lo fai, la trading key tecnicamente ha ancora autorità on-chain — solo nessun software la usa.
Phase 0 non ha ancora UI per questo. Usa il CLI dydxprotocold: `dydxprotocold tx accountplus remove-authenticator <id> --from <owner-keyname>`. O aspetta Phase 1.5 quando il bottone revoke in /app/settings broadcasterà anche questo.
Dopo la revoca
Rilancia il wizard trading-key per generare una nuova permissioned key. Incolla il nuovo blocco .env sul bot host. Restart. Il bot riprende il trading sotto la nuova key.
L'authenticator id vecchio resta on-chain (innocuo) finché non completi lo step 3.