Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.xentfi.com/llms.txt

Use this file to discover all available pages before exploring further.

Overview

flowchart LR
subgraph Source["Source Wallet (Compromised/Lost)"]
Assets[All Assets\nETH, USDC, USDT, etc.]
end

subgraph Recovery["Asset Recovery Process"]
Validate[Validate Ownership]
Transfer[Bulk Transfer]
Confirm[Confirmation]
end

subgraph Destination["Destination Wallet (Safe)"]
Safe[Designated Safe Wallet]
end

Assets --> Validate --> Transfer --> Confirm --> Safe

Why Asset Recovery?

🚨 Emergency Response

Quickly secure funds when a wallet is compromised or keys are lost

⚡ One-Click Recovery

Single operation to move all assets from source to destination wallet

🔒 Secure Transfer

All transfers are secure, audited, and require proper authentication

📊 Audit Trail

Complete record of recovery operations for compliance

🌐 Multi-Asset

Recover all supported assets across multiple blockchains

🎯 Precision Control

Recover specific assets or entire wallet contents

When to Use Asset Recovery

Emergency Scenarios

ScenarioActionPriority
Private key compromisedImmediate recovery to safe walletCritical
Team member departureRecover assets from their walletsHigh
Suspicious activityMove funds to secure locationCritical
Wallet sunsettingConsolidate before deactivationMedium
Security auditTemporary fund relocationLow

Recovery Triggers

flowchart TD
Trigger[Recovery Trigger] --> Type{Trigger Type}

| Type --> | Manual | Manual[Admin Initiated] |
| -------- | ------ | ----------------------- |

Manual --> Human[Human Review Required]
Auto --> Conditions{Conditions Met?}

| Conditions --> | Yes | Execute[Execute Recovery] |
| -------------- | --- | ------------------------- |

Human --> Execute
Execute --> Complete[Recovery Complete]

Prerequisites

Before performing asset recovery, ensure:
  • ✅ You have a destination wallet (safe wallet) configured
  • ✅ You have proper authentication (API key with recovery permissions)
  • ✅ The source wallet is accessible (even if compromised)
  • ✅ You understand which assets will be recovered
  • ✅ You have notified relevant stakeholders

Recovery Process

sequenceDiagram
participant Admin
participant API as XentFi API
participant Source as Source Wallet
participant Dest as Destination Wallet
participant Audit as Audit Log

Admin->>API: Initiate asset recovery
API->>API: Validate permissions
API->>Source: Check wallet ownership
Source-->>API: Ownership confirmed

API->>Source: Get all asset balances
Source-->>API: Return balances

API->>API: Calculate gas requirements

loop For Each Asset
API->>Source: Transfer asset
Source->>Dest: Send funds
Dest-->>API: Transfer confirmed
end

API->>Audit: Log recovery details
API-->>Admin: Recovery complete

Performing Asset Recovery

Recover All Assets

curl -X POST https://api.xentfi.com/v1/wallets/{walletId}/recover \
-H "apiKey: your-api-key" \
-H "orgId: your-org-id" \
-H "Content-Type: application/json" \
-d '{
"destinationWalletId": "safe-wallet-id",
"recoverAll": true
}'
{

"data": {
"recoveryId": "rec_123e4567-e89b-12d3-a456-426614174000",
"sourceWalletId": "source-wallet-id",
"destinationWalletId": "safe-wallet-id",
"status": "processing",
"assets": [
{
"symbol": "ETH",
"amount": "1.5",
"status": "completed",
"transactionHash": "0xabc123..."
},
{
"symbol": "USDC",
"amount": "5000",
"status": "completed",
"transactionHash": "0xdef456..."
},
{
"symbol": "USDT",
"amount": "3000",
"status": "pending",
"transactionHash": null
}
],
"startedAt": "2024-01-15T10:30:00.000Z"
}
}

Recover Specific Assets

curl -X POST https://api.xentfi.com/v1/wallets/{walletId}/recover \
-H "apiKey: your-api-key" \
-H "orgId: your-org-id" \
-H "Content-Type: application/json" \
-d '{
"destinationWalletId": "safe-wallet-id",
"assets": ["ETH", "USDC"],
"skipZeroBalances": true
}'

Dry Run Recovery (Simulation)

curl -X POST https://api.xentfi.com/v1/wallets/{walletId}/recover/dry-run \
-H "apiKey: your-api-key" \
-H "orgId: your-org-id" \
-H "Content-Type: application/json" \
-d '{
"destinationWalletId": "safe-wallet-id"
}'
{

"data": {
"recoverableAssets": [
{
"symbol": "ETH",
"amount": "1.5",
"estimatedGas": "0.002",
"estimatedValue": "5250"
},
{
"symbol": "USDC",
"amount": "5000",
"estimatedGas": "0.0005",
"estimatedValue": "5000"
}
],
"totalEstimatedGas": "0.0025",
"totalEstimatedValue": "10250"
}
}

Recovery Status

Status Tracking

StatusDescriptionNext Action
pendingRecovery initiated, waitingMonitor progress
processingTransfers in progressWait for completion
completedAll assets recoveredVerify destination
partialSome assets recoveredRetry failed assets
failedRecovery failedInvestigate and retry

Check Recovery Status

curl -X GET https://api.xentfi.com/v1/recovery/{recoveryId} \
-H "apiKey: your-api-key" \
-H "orgId: your-org-id"

Recovery Best Practices

  • Designate safe wallets - Configure dedicated safe wallets before emergencies
  • Test recovery process - Perform dry runs regularly
  • Document procedures - Create runbooks for recovery scenarios
  • Limit permissions - Restrict recovery to authorized personnel only
  • Audit regularly - Review recovery logs for suspicious activity
  • Notify stakeholders - Alert team when recovery is initiated

Security Considerations

RiskMitigation
Unauthorized recoveryMulti-signature approval for recovery
Wrong destination walletWallet address whitelisting
Partial recoveryAutomatic retry for failed transfers
Gas price spikesConfigurable gas limits
Network congestionQueue and retry mechanism

Recovery Configuration

Safe Wallet Setup

{
"safeWalletId": "safe-wallet-id",
"name": "Emergency Safe Wallet",
"blockchain": "eth-mainnet",
"address": "0xSafeWalletAddress...",
"isActive": true,
"requiresApproval": true,
"approvers": ["admin1@company.com", "admin2@company.com"]
}

Approval Workflow

stateDiagram-v2
[*] --> Requested: Admin requests recovery
Requested --> Approved: 2+ approvers approve
Requested --> Rejected: Any approver rejects
Approved --> Executed: Recovery executed
Rejected --> [*]
Executed --> [*]

Webhook Events

EventTriggerPayload contains
recovery.startedRecovery initiatedRecovery ID, source, destination
recovery.asset.completedAsset transferredAsset details, transaction hash
recovery.asset.failedTransfer failedAsset, error reason
recovery.completedAll assets recoveredSummary of transfers
recovery.failedRecovery failedError details

Troubleshooting

Solution: Ensure source wallet has enough native tokens (ETH, MATIC, etc.) for gas fees. Add gas funds if needed.
Possible causes:
  • Network congestion
  • Gas price too low
  • Destination wallet issues
Solution: Monitor transaction status and retry if needed.
Solution:
  • Check which assets failed
  • Verify destination supports those assets
  • Retry failed assets individually

Pricing

FeatureStarterProfessionalBusinessEnterprise
Asset recovery
Dry run simulation
Approval workflow
Priority execution
Recovery webhooks

Master Wallets

Source and destination wallet management

Security

Security best practices

Webhooks

Recovery event notifications