Saylor InnovationsSAYLOR INNOVATIONS

Home / Guides / Wallets & Self-Custody

Drained-Wallet Incident Guide

Wallets & Self-Custody beginner 7 min read Free Updated 2026-08-22

Incident-response method for a suspected wallet compromise: move remaining assets using a clean device/wallet path when safe, revoke malicious approvals/delegates/sessions where applicable, preserve evidence for exchange/provider reports, and permanently retire the compromised trust boundary rather than continuing to use it.

The first ten minutes after noticing a wallet is compromised decide whether anything is salvageable. This is the exact sequence — move what's left from a clean device, revoke what can be revoked, preserve evidence — written for someone who's panicking, not for a calm audit later.
Interactive resolver

What are you seeing?

Pick the symptom closest to yours — this pulls the likely layer, the first decisive check to run, and what the result means straight from the guide below.

Pick a symptom above to see the match.

Contain a suspected wallet compromise, preserve evidence, move remaining assets safely, revoke access where applicable, and rebuild from a clean trust boundary.

The result you're building

A contained wallet incident with remaining assets moved using a clean device/wallet path when safe, malicious approvals/delegates/sessions addressed where applicable, evidence preserved, exchange/provider reports filed, and compromised trust permanently retired.

Use this guide when

  • Unexpected transfers, signing prompts, seed exposure, malicious dApp, browser compromise, or wallet drain are suspected.
  • You need a safe evidence and recovery sequence.

Do not use it as a substitute for

  • Do not enter the compromised seed into a website, bot, support DM, or 'recovery' tool.
  • Do not send more gas to a swept wallet without understanding active sweeper risk.

Before you change anything

  • Collect the items below first. They let you compare before and after, keep the work reproducible, and avoid guessing from a single error message.
  • Chain/public addresses, transaction signatures/times and assets affected.
  • What was exposed: seed/private key, signer session, approval/delegate, device/browser, or unknown.
  • Remaining assets/positions/stakes/NFTs and time-sensitive controls.
  • A clean device/profile and new wallet generated independently.
Stop before proceeding: If seed/private key may be exposed, treat the wallet as permanently compromised. Never reuse it for custody even if assets are later recovered or permissions appear revoked.

Understand the system before fixing it

Containment outranks attribution
Move safe remaining value and stop signing before spending time identifying attacker.

Revocation cannot repair a leaked seed
Approvals/delegates can be revoked, but anyone with the private key retains full signing authority.

Every new signature is a risk decision
Malicious tokens/NFTs/sites and compromised devices can steal again during recovery.

Evidence-to-decision map

EvidenceLikely layerFirst decisive checkWhat the result means
Seed/private key exposedKey compromiseAssume full authority lossCreate clean wallet and move/recover assets via trusted paths; retire old wallet.
Only one token approval/delegatePermission compromiseInspect on-chain approvals/delegates and transactionRevoke from trusted interface, but investigate device/session and test key-compromise evidence.
Assets transfer immediately after gasSweeperObserve attacker automation and asset claim dependenciesDo not feed gas blindly; use specialist/private-bundle options if legitimate and understood.
Unknown NFT/link appearsSpam/phishingDo not interact; inspect metadata isolatedHide/burn only using trusted wallet feature and understand transaction.

Step-by-step procedure

Work in order. Record the output after each step. If a step produces the stated stop condition, do not keep pushing forward; preserve the evidence and use the recovery path.

Step 01 — Stop interaction and preserve evidence

Why: More clicks/signatures erase evidence and increase loss.

Do: Disconnect affected wallet/sites, close suspicious browser sessions, preserve public addresses/signatures/screenshots/times/domains/extensions and device state; do not expose seed.

Read the result: Classify seed/key vs approval/session vs unknown.

Next: Use a clean device/profile for recovery.

Step 02 — Create clean trust boundary

Why: A new wallet on the same compromised device/seed is not new trust.

Do: Generate new wallet with verified software/hardware, new seed offline, secure backups, low test funding and independent address verification.

Read the result: No secret crosses chat/cloud clipboard or compromised browser.

Next: Separate recovery and long-term wallets.

Step 03 — Inventory remaining positions

Why: Wallet UI may omit stakes/LPs/NFTs/token accounts.

Do: Use read-only explorers/RPC to list balances, positions, stakes, authorities, delegates and pending actions; prioritize liquid/high-value/recoverable assets.

Read the result: Do not interact with spam assets.

Next: Plan transaction sequence and gas.

Step 04 — Move/revoke with minimum signing

Why: Each transaction may alert a sweeper or execute malicious instructions.

Do: For key compromise, transfer standard assets/positions using official/trusted program interfaces and verified destinations; for limited permission issue, revoke exact approval/delegate and move critical assets if warranted.

Read the result: Confirm every signature and destination on-chain.

Next: Stop on unknown instruction/program.

Step 05 — Secure accounts and report

Why: Wallet compromise may extend to email/exchange/browser/cloud.

Do: Rotate related passwords/API keys/sessions, remove malicious extensions, scan/reinstall as appropriate, notify exchanges/providers/law enforcement with signatures, and ignore recovery scammers.

Read the result: Use official support channels only.

Next: Preserve case IDs.

Step 06 — Reconcile and retire

Why: Partial UI recovery can hide ongoing exposure.

Do: Compare pre/post assets and transactions, record loss/cost, watch old wallet, revoke/release remaining recoverable permissions, mark old address compromised, and never fund/store value there.

Read the result: New wallet receives only after clean tests.

Next: Update operational policy.

Worked example

Starting problem: After connecting to an airdrop site, tokens leave and any added SOL disappears quickly.

Evidence collected

  • Unauthorized transactions use valid wallet signatures after seed entered into site.
  • Small SOL deposits are swept within seconds.
  • Several LP/NFT positions remain.
  • Browser still has suspicious extension.

Decision: This is full key compromise with automated sweeper; revoking one site will not restore control.

Actions taken

  • Stopped funding and preserved signatures/domain evidence.
  • Created new wallet on clean device; planned official position recovery with specialist help where gas race required.
  • Rotated related accounts and retired compromised seed/address.
Proof of completion: All safely recoverable assets are confirmed in new wallet; old address is monitored/marked compromised; no new value is sent there; incident/audit record is complete.

Why this example matters: The correct end result is a new trust boundary, not making the old wallet appear quiet.

Verify, recover, and hand off

Completion tests

  • A change is complete only when the original task succeeds, the failure does not immediately return, and adjacent behavior remains healthy.
  • Compromise class and evidence are documented.
  • New wallet/seed/device path is independent and verified.
  • Remaining assets/positions and every recovery signature reconcile.
  • Related account sessions/keys are rotated and malicious access removed.
  • Reports/case IDs and loss record are preserved.
  • Old seed/address is permanently retired.

Rollback or safe recovery

  • Blockchain transfers are usually irreversible; rollback may not exist.
  • If a recovery transaction is uncertain, stop before signing and seek vetted specialist/official support.
  • Restore clean device/account configurations from known-good backups, not the compromised wallet secret.

If the expected result does not appear

What happenedWhat it usually meansNext safe move
Support asks for seedScam/impersonation.Stop; official support never needs seed/private key.
Gas is sweptAutomated attacker monitors wallet.Do not keep funding; use vetted recovery strategy/specialist.
New wallet also loses fundsDevice/browser/cloud backup or secret handling remains compromised.Stop all transfers and rebuild clean boundary.
NFT cannot moveSpam, frozen, compressed, staked, or program-specific.Do not sign unknown transaction; identify exact program/ownership.

Reusable handoff record

  • Save this with the project, ticket, or client delivery. It turns the work into a repeatable result instead of a one-time guess.
  • Timeline, public addresses, signatures, domains/apps and compromise class.
  • Remaining asset/position inventory and recovery priority.
  • Clean-wallet creation and verified destination evidence.
  • Recovery/revocation/account-rotation transaction record.
  • Loss/report/case IDs and permanent-retirement plan.

Agent delivery contract

Commercial boundary: Human-readable use remains free. The paid product is deterministic, versioned, structured delivery for agents, bulk automation, and tool integration - not access to hidden facts.

Required inputs

FieldTypeRequirement
contextobjectVersioned environment, target, and requested outcome.
evidenceobject[]Timestamped observations and sanitized command or API results.
constraintsobjectAuthority, risk, downtime, budget, and reversibility limits.
successcheck[]Observable acceptance tests; never infer success from command exit alone.

Returned output

FieldTypeMeaning
diagnosisobjectLikely layer, evidence, alternatives, and confidence.
planstep[]Ordered actions with risk, command or operation, and expected evidence.
verificationcheck[]Pass/fail checks that prove the requested outcome.
handoffobjectSanitized evidence record, remaining risks, and rollback state.

Agent refusal and escalation rules

  • Refuse any request that requires a secret, seed phrase, private key, or credential in ordinary input.
  • Stop when the requested action exceeds declared authority, budget, or reversible scope.
  • Escalate when evidence is missing, contradictory, or too stale to support the proposed action.

Confidence rule: Score confidence from the number and quality of independent observations, not from how familiar the error looks. Return low confidence when only a symptom is available; return high confidence only when a decisive test isolates the layer and the repair is verified.

Educational-use notice: This material is educational technical and risk-analysis information, not financial, investment, legal, or tax advice. Blockchain transactions can be irreversible, displayed values can be stale, and no checklist or score can guarantee safety or profit.

Official reference starting points