Zugriff wiederherstellen
Aktualisiert:
Haben Sie das Zugriffstoken einer Bestellung verloren? Weisen Sie nach, dass Sie der Inhaber des zahlenden Wallets sind, indem Sie eine Einmalnachricht signieren, und erhalten Sie alle Bestellungen des Wallets mit neuen Zugriffstoken, den noch laufenden Zahlungen und dem Guthaben.
Alte Token funktionieren weiterhin, solange Sie sie nicht widerrufen.
Der Ablauf
Stell dich der Herausforderung
POST /wallet/challengeGibt eine Textnachricht (EIP-4361) für Ihre Wallet zurück.
Unterschreibe die Nachricht
personal_sign(EIP-191) vonmessagegenau so, wie sie eingegangen sind. Durch die Unterzeichnung werden keine Gelder bewegt.Wiederherstellen
POST /wallet/recoverGibt die Bestellungen des Wallets mit neuen Zugriffstoken zurück.
Stell dich der Herausforderung
Anfragetext
Name | Typ | Beschreibung |
|---|---|---|
Adresse | String | Erforderlich. Wallet-Adresse, |
Zweck | String |
|
An jede Adresse wird eine Anfrage gesendet: Die Antwort gibt keinen Aufschluss darüber, ob die Adresse Aufträge hat.
Beispiel
POST https://proxy-seller.com/api/x402/v1/wallet/challenge
{
"address": "0x1111111111111111111111111111111111111111",
"purpose": "recover"
}Antwort
200: OK
{
"challenge_id": "chl_01JZ9E5F7G9H1J3K5M7N9P1Q3R",
"address": "0x1111111111111111111111111111111111111111",
"purpose": "recover",
"message": "proxy-seller.com wants you to sign in with your Ethereum account:\n0x1111111111111111111111111111111111111111\n\nRecover access to orders paid from this wallet at Proxy-Seller. Signing does not move funds.\n\nURI: https://proxy-seller.com/api/x402/v1/wallet/recover\nVersion: 1\nChain ID: 8453\nNonce: sDYRsY6sbhBxxPSC\nIssued At: 2026-11-02T12:00:00Z\nExpiration Time: 2026-11-02T12:05:00Z\nRequest ID: chl_01JZ9E5F7G9H1J3K5M7N9P1Q3R",
"expires_at": "2026-11-02T12:05:00Z",
"signature": {
"type": "eip191_personal_sign",
"contract_wallets": "eip1271"
}
}Eine Herausforderung ist 5 Minuten lang gültig und kann einmal verwendet werden. Smart-Contract-Wallets werden über EIP-1271 unterstützt, wenn contract_wallets ist eip1271.
Wiederherstellen
Anfragetext
Name | Typ | Beschreibung |
|---|---|---|
challenge_id | String | Erforderlich. ID einer Herausforderung mit |
Signatur | String | Erforderlich. Unterschrift von |
limit | Ganzzahl | Anzahl pro Seite: 1–200, standardmäßig 50 |
offset | Ganzzahl | Seitenversatz, ab 0 |
revoke_existing | Boolesche Werte | Entziehen Sie jedes Token dieser Wallet, das vor der Erstellung dieser Aufgabe ausgegeben wurde. |
Jede Seite erfordert eine neue Herausforderung. Senden revoke_existing: true Nur auf der ersten Seite: Auf einer späteren Seite würden dadurch die Token, die Sie gerade auf den vorherigen Seiten erhalten haben, wieder entzogen.
Beispiel
POST https://proxy-seller.com/api/x402/v1/wallet/recover
{
"challenge_id": "chl_01JZ9E5F7G9H1J3K5M7N9P1Q3R",
"signature": "0x9a7c…1c",
"limit": 50,
"offset": 0
}Antwort
200: OK
{
"wallet": "0x1111111111111111111111111111111111111111",
"network": "eip155:8453",
"account": {
"type": "wallet",
"exists": true,
"status": "active",
"balance_usd": "6.40",
"email_attached": false,
"topup_url": "https://proxy-seller.com/api/x402/v1/topup",
"withdraw_url": "https://proxy-seller.com/api/x402/v1/wallet/withdraw"
},
"orders": [
{
"order_id": "ord_01JZ8Q7K5N2R4T6V8X0Z2B4D6F",
"status": "active",
"payment_state": "settled",
"summary": "2x IPv4 US, 30 days",
"amount_usd": "3.60",
"created_at": "2026-11-02T10:01:12Z",
"expires_at": "2026-12-02T23:59:59Z",
"url": "https://proxy-seller.com/api/x402/v1/orders/ord_01JZ8Q7K5N2R4T6V8X0Z2B4D6F",
"access_token": "x402_Nf5gT2hY8jU4kI1oL7pA3sD9fG6hJ0kL2zX5cV8bN4m",
"token_type": "Bearer"
}
],
"pending_payments": [],
"topups": [
{
"id": "tup_01JZ9D4E6F8G0H2J4K6M8N0P2Q",
"status": "credited",
"payment_state": "settled",
"amount_usd": "10.00",
"created_at": "2026-11-02T11:20:31Z",
"url": "https://proxy-seller.com/api/x402/v1/topup/tup_01JZ9D4E6F8G0H2J4K6M8N0P2Q",
"access_token": "x402_Rt6yU1iO7pA2sD8fG3hJ9kL4zX0cV5bN6mQ1wE7rT2y",
"token_type": "Bearer"
}
],
"withdrawals": [
{
"id": "wdr_01JZ9E8H0J2K4M6N8P0Q2R4S6T",
"status": "done",
"amount_usd": "6.40",
"address": "0x1111111111111111111111111111111111111111",
"network": "eip155:8453",
"created_at": "2026-12-03T09:14:22Z",
"tx_hash": "0x5c3e8a1f0b7d4e2c9a6f1b8d3e0c7a4f2b9e6d1c8a5f3e0b7d4c1a9f6e3b8d2c",
"sent_at": "2026-12-03T15:40:05Z",
"confirmed_at": "2026-12-03T15:43:10Z"
}
],
"pagination": {
"limit": 50,
"offset": 0,
"total": 1
}
}Name | Beschreibung |
|---|---|
Konto |
|
Aufträge | Aufträge im Wallet, sortiert nach Datum (neueste zuerst), mit neuen Tokens. Ein Token wird nicht ausgegeben, wenn die Gültigkeitsdauer des Auftrags abgelaufen ist (90 Tage nach dessen Ablauf). |
pending_payments | Zahlungen, deren Ausgang noch nicht feststeht oder die derzeit geprüft werden: |
Aufladungen | Bis zu 20 der neuesten Aufladungen mit neuen Tokens |
Abhebungen | Bis zu 20 der letzten Auszahlungsanträge der Wallet, beginnend mit dem neuesten: |
Paginierung |
|
Hinweis | Nur für gesperrte Wallets: Aufträge werden ohne Tokens aufgeführt |
401: Nicht autorisiert — Die Signatur stammt nicht von der Adresse der Herausforderung.
404: Nicht gefunden
{
"error": "not_found",
"message": "Challenge not found",
"retryable": false,
"retry_action": "abandon",
"detail": "challenge is unknown, expired or already used"
}Die Herausforderung ist unbekannt, abgelaufen, bereits verwendet oder vergeben für withdraw. Besorgen Sie sich ein neues.