Proxy-seller

접근 권한 복구

Updated:

주문의 액세스 토큰을 분실하셨나요? 일회성 메시지에 서명하여 결제용 지갑의 소유자임을 증명하면, 새로운 액세스 토큰이 부여된 해당 지갑의 모든 주문 내역과 진행 중인 결제 내역, 잔액을 확인할 수 있습니다.

기존 토큰은 취소하지 않는 한 계속 사용할 수 있습니다.

작업 흐름

  1. 도전 과제 받기

    POST /wallet/challenge

    지갑에 대한 텍스트 메시지(EIP-4361)를 반환합니다.

  2. 메시지에 서명하세요

    personal_sign (EIP-191)의 message 받은 그대로입니다. 서명만으로는 자금이 이체되지 않습니다.

  3. 복구

    POST /wallet/recover

    새로운 액세스 토큰이 포함된 지갑의 주문을 반환합니다.

도전 과제 받기

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

요청 본문

이름

유형

설명

주소

문구

필수. 지갑 주소, 0x + 40 16진수. 대소문자가 혼합된 주소는 유효한 EIP-55 체크섬을 가져야 합니다.

목적

문구

recover (기본값) 또는 withdraw (잔액 인출)

어떤 주소에든 도전이 발령됩니다: 응답을 통해 해당 주소에 명령이 있는지 여부는 알 수 없습니다.

예시

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

답변

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

챌린지는 5분 동안 유효하며 한 번만 사용할 수 있습니다. EIP-1271을 통해 스마트 계약 지갑이 지원되며, contract_wallets is eip1271.

복구

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

요청 본문

이름

유형

설명

challenge_id

문구

필수. 챌린지의 ID는 purpose: recover

서명

문구

필수. 서명: message, 0x 16진수: 일반 지갑의 경우 65바이트, 스마트 계약 지갑의 경우 더 길어집니다.

limit

정수

페이지당 항목 수: 1~200개, 기본값은 50개

오프셋

정수

페이지 오프셋, 0부터

revoke_existing

부울

이 챌린지가 생성되기 전에 이 지갑에서 발행된 모든 토큰을 취소하십시오.

모든 페이지에는 새로운 과제가 필요합니다. 보내주세요 revoke_existing: true 첫 번째 페이지에서만 해당됩니다: 이후 페이지에서는 이전 페이지에서 방금 획득한 토큰이 취소됩니다.

예시

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

답변

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

이름

설명

계정

exists, status (active 또는 blocked), balance_usd, topup_url, withdraw_url

주문

지갑 주문 내역은 최신 순으로 표시되며, 새로운 토큰이 포함됩니다. 주문의 접근 기간이 만료된 경우(만료일로부터 90일 후)에는 토큰이 발행되지 않습니다.

pending_payments

결제 결과가 아직 확정되지 않았거나 검토 중인 결제: {nonce, network, status, operation_id, kind, order_id, payment_state, amount_atomic, status_changed_at}. 해당 항목에 대해 다시 비용을 지불하지 마십시오

topups

최신 토큰을 포함한 최대 20건의 충전 내역

인출

지갑의 최근 인출 요청 20건(가장 최근 건부터 순서대로): {id, status, amount_usd, address, network, created_at, tx_hash, sent_at, confirmed_at}. status: requested, approved, sent, done 또는 rejected (잔액 인출)

페이지 나누기

{limit, offset, total}

참고

차단된 지갑 전용: 주문 목록에 토큰이 표시되지 않습니다.

401: 접근 권한 없음 — 이 서명은 챌린지 주소가 아닙니다.

404: 찾을 수 없음

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

이 과제는 알 수 없거나, 만료되었거나, 이미 사용되었거나, 다음을 위해 발급된 것입니다. withdraw. 새 것을 구하세요.

On this page