Proxy-seller

Récupérer l'accès

Updated:

Vous avez perdu le jeton d'accès d'une commande ? Prouvez que vous êtes bien le titulaire du portefeuille utilisé pour le paiement en signant un message à usage unique, et récupérez toutes les commandes associées à ce portefeuille avec de nouveaux jetons d'accès, les paiements encore en cours et le solde.

Les anciens jetons continuent de fonctionner tant que vous ne les révoquez pas.

Le déroulement

  1. Relevez le défi

    POST /wallet/challenge

    Renvoie un message texte (EIP-4361) pour votre portefeuille.

  2. Signez le message

    personal_sign (EIP-191) de message exactement tel qu'il a été reçu. La signature n'entraîne aucun transfert de fonds.

  3. Récupérer

    POST /wallet/recover

    Renvoie les commandes du portefeuille avec de nouveaux jetons d'accès.

Relevez le défi

POSThttps://proxy-seller.com/api/x402/v1/wallet/challenge

Corps de la requête

Nom

Type

Description

adresse

Chaîne de caractères

Obligatoire. Adresse de portefeuille, 0x + 40 hex. Une adresse en majuscules et minuscules doit comporter une somme de contrôle EIP-55 valide

objectif

Chaîne de caractères

recover (par défaut) ou withdraw (Retirer le solde)

Une requête est envoyée à n'importe quelle adresse : la réponse n'indique pas si l'adresse a des commandes.

Exemple

POST https://proxy-seller.com/api/x402/v1/wallet/challenge
{
    "address": "0x1111111111111111111111111111111111111111",
    "purpose": "recover"
}

Réponse

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"
    }
}

Un défi a une durée de vie de 5 minutes et ne peut être utilisé qu'une seule fois. Les portefeuilles de contrats intelligents sont pris en charge via l'EIP-1271 lorsque contract_wallets est eip1271.

Récupérer

POSThttps://proxy-seller.com/api/x402/v1/wallet/recover

Corps de la requête

Nom

Type

Description

challenge_id

Chaîne de caractères

Obligatoire. Identifiant d'un défi avec purpose: recover

signature

Chaîne de caractères

Obligatoire. Signature de message, 0x hex : 65 octets pour un portefeuille classique, davantage pour un portefeuille basé sur un smart contract

limite

Nombre entier

Nombre d'entrées par page : 1 à 200, 50 par défaut

offset

Nombre entier

Décalage de page, à partir de 0

revoke_existing

Booléen

Révoquez tous les jetons de ce portefeuille émis avant la création de ce défi.

Chaque page doit présenter un nouveau défi. Envoyer revoke_existing: true Uniquement sur la première page : sur une page suivante, cela annulerait les jetons que vous venez de recevoir sur les pages précédentes.

Exemple

POST https://proxy-seller.com/api/x402/v1/wallet/recover
{
    "challenge_id": "chl_01JZ9E5F7G9H1J3K5M7N9P1Q3R",
    "signature": "0x9a7c…1c",
    "limit": 50,
    "offset": 0
}

Réponse

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
    }
}

Nom

Description

compte

exists, status (active ou blocked), balance_usd, topup_url, withdraw_url

commandes

Commandes du portefeuille, les plus récentes en premier, avec de nouveaux jetons. Aucun jeton n'est émis lorsque la période d'accès à la commande est terminée (90 jours après son expiration).

pending_payments

Paiements dont l'issue n'est pas encore connue ou qui sont en cours d'examen : {nonce, network, status, operation_id, kind, order_id, payment_state, amount_atomic, status_changed_at}. Ne les payez pas une deuxième fois

recharges

Jusqu’à 20 derniers recharges avec de nouveaux jetons

retraits

Jusqu'à 20 dernières demandes de retrait du portefeuille, les plus récentes en premier : {id, status, amount_usd, address, network, created_at, tx_hash, sent_at, confirmed_at}. status: requested, approved, sent, done ou rejected (Retirer le solde)

pagination

{limit, offset, total}

Remarque

Uniquement pour un portefeuille bloqué : les commandes sont répertoriées sans jetons

401 : Accès non autorisé — la signature ne provient pas de l'adresse du défi.

404 : Page introuvable

{
    "error": "not_found",
    "message": "Challenge not found",
    "retryable": false,
    "retry_action": "abandon",
    "detail": "challenge is unknown, expired or already used"
}

Le défi est inconnu, a expiré, a déjà été utilisé ou a été attribué pour withdraw. En choisir un autre.

On this page