Proxy-seller

Recuperar acesso

Atualizado:

Perdeu o token de acesso de um pedido? Comprove que você é o proprietário da carteira de pagamentos assinando uma mensagem única e obtenha todos os pedidos da carteira com novos tokens de acesso, os pagamentos ainda em andamento e o saldo.

Os tokens antigos continuam funcionando, a menos que você os revogue.

O fluxo

  1. Aceite um desafio

    POST /wallet/challenge

    Retorna uma mensagem de texto (EIP-4361) para sua carteira.

  2. Assine a mensagem

    personal_sign (EIP-191) de message exatamente como recebido. A assinatura não movimenta fundos.

  3. Recuperar

    POST /wallet/recover

    Retorna as ordens da carteira com novos tokens de acesso.

Aceite um desafio

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

Corpo da solicitação

Nome

Tipo

Descrição

endereço

String

Obrigatório. Endereço da carteira, 0x + 40 hex. Um endereço com letras maiúsculas e minúsculas deve ter uma soma de verificação EIP-55 válida

objetivo

String

recover (padrão) ou withdraw (Retirar saldo)

Um desafio é enviado a qualquer endereço: a resposta não indica se o endereço possui ordens.

Exemplo

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

Resposta

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

Um desafio tem duração de 5 minutos e pode ser usado uma vez. Carteiras de contratos inteligentes são compatíveis com o EIP-1271 quando contract_wallets é eip1271.

Recuperar

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

Corpo da solicitação

Nome

Tipo

Descrição

challenge_id

String

Obrigatório. ID de um desafio com purpose: recover

assinatura

String

Obrigatório. Assinatura de message, 0x hex: 65 bytes para uma carteira comum; mais para uma carteira de contrato inteligente

limite

Inteiro

Número de itens por página: 1–200, com 50 como padrão

offset

Inteiro

Deslocamento da página, a partir de 0

revoke_existing

Booleano

Revogue todos os tokens desta carteira emitidos antes da criação deste desafio

Cada página precisa de um novo desafio. Envie revoke_existing: true apenas na primeira página: em uma página posterior, isso revogaria os tokens que você acabou de receber nas páginas anteriores.

Exemplo

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

Resposta

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

Nome

Descrição

conta

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

pedidos

Pedidos da carteira, os mais recentes primeiro, com novos tokens. Um token não é emitido quando o período de acesso do pedido termina (90 dias após seu vencimento)

pending_payments

Pagamentos cujo resultado ainda não é conhecido ou que estão em análise: {nonce, network, status, operation_id, kind, order_id, payment_state, amount_atomic, status_changed_at}. Não pague por eles novamente

topups

Até 20 recargas mais recentes com novos tokens

retiradas

Até 20 solicitações de saque mais recentes da carteira, com as mais recentes em primeiro lugar: {id, status, amount_usd, address, network, created_at, tx_hash, sent_at, confirmed_at}. status: requested, approved, sent, done ou rejected (Retirar saldo)

paginação

{limit, offset, total}

aviso

Apenas para carteiras bloqueadas: os pedidos são listados sem tokens

401: Acesso não autorizado — a assinatura não é do endereço do desafio.

404: Não encontrado

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

O desafio é desconhecido, expirou, já foi usado ou emitido para withdraw. Pegue um novo.

On this page

Recuperar acesso | Proxy-seller