> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# वॉलेट स्वामित्व विजेट संदर्भ API प्राप्त करें

> Didit के इस API से token द्वारा वॉलेट-स्वामित्व विजेट सत्र का सार्वजनिक संदर्भ पढ़ें: अनुमत प्रमाण विधियाँ, प्रमाण प्रगति और पूर्णता स्थिति।

विजेट संदर्भ प्राप्त करने के लिए API प्रॉम्प्ट
प्रॉम्प्ट को क्लिपबोर्ड पर कॉपी करें

<pre>
  \`Read the public context of a wallet-ownership widget session - the same endpoint the hosted widget page itself is driven by. Poll it to track proof progress from your backend.

  Endpoint:
  GET [https://verification.didit.me/v3/travel-rule/widget/\{token}/](https://verification.didit.me/v3/travel-rule/widget/\{token}/)

  Authentication:
  None - the widget token in the URL path is the credential. Treat the token as a secret.

  What to read from the response:

  * completed\_at - non-null once a proof has been verified. This is the completion signal.
  * allowed\_methods - which proof methods this session offers (MESSAGE\_SIGNING, SATOSHI\_TEST, SCREENSHOT, SELF\_DECLARATION).
    MESSAGE\_SIGNING works with wallets installed in the customer's browser, discovered in the page (EIP-6963 / Wallet Standard).
    Pairing a mobile wallet app (for example by scanning a QR code) is not available in production today.
  * transfer\_status - the linked Travel Rule transfer's status, when the session was minted with a transaction\_id.
  * proofs\[] - per-proof progress. A SATOSHI\_TEST proof carries deposit\_address, expected\_amount, and its own expires\_at; a MESSAGE\_SIGNING proof carries the challenge string. A SATOSHI\_TEST proof can sit at status PENDING while its deposit is seen on-chain but unconfirmed - a background job completes it automatically once it confirms. Each proof also carries attempts and failure\_reason (why the last attempt fell short, or why the proof closed; empty when nothing failed). A REJECTED proof carries rejection\_reason, an English sentence for the end user.
  * max\_attempts, attempts\_used, attempts\_remaining - how many rejected proofs this session allows, has had and has left. When attempts\_remaining is 0, starting another proof answers 409: mint a new session.
  * chain\_family - EVM, BTC, SOL or TRON: the key family behind chain, so a client picks the right wallet. One EVM key holds the same address on every EVM chain.
  * wallet\_address, chain (as minted, for example "ETH"), holder\_name, vasp\_name, callback\_url, expires\_at.

  Failure modes:

  * 404 - unknown token.
  * 410 - the session expired without completing.

  Prefer travel\_rule.status.updated webhooks over polling when the session is linked to a transfer.

  Full guide: /transaction-monitoring/wallet-ownership-widget#detect-completion.\`
</pre>

यहाँ पेस्ट करें


## OpenAPI

````yaml hi/openapi-25.json GET /v3/travel-rule/widget/{token}/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: पहचान सत्यापन API। x-api-key हेडर के साथ प्रमाणीकृत करें।
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/widget/{token}/:
    get:
      tags:
        - Travel Rule
      summary: वॉलेट-स्वामित्व विजेट संदर्भ प्राप्त करें
      description: >-
        विजेट सत्र token-आधारित सार्वजनिक रीड endpoint - किसी API कुंजी की
        आवश्यकता नहीं है। विजेट संदर्भ के साथ-साथ प्रत्येक प्रमाण की स्थिति
        लौटाता है, ताकि आप पूर्णता का पता लगाने के लिए इसे पोल कर सकें; एक बार
        प्रमाण सत्यापित हो जाने पर completed_at नॉन-नल हो जाता है। एक
        SATOSHI_TEST प्रमाण status PENDING पर रह सकता है, जबकि उसका डिपॉज़िट
        ऑन-चेन देखा गया हो लेकिन अनकन्फ़र्म्ड हो - एक बैकग्राउंड जॉब स्वचालित
        रूप से इसे फिर से जांचता है और डिपॉज़िट कन्फ़र्म होने पर इसे पूरा करता
        है, इसलिए प्रतीक्षा करते समय किसी क्लाइंट कार्रवाई की आवश्यकता नहीं होती
        है। प्रत्येक प्रमाण में वे फ़ील्ड होते हैं जिनकी उसकी विधि को आवश्यकता
        होती है: SATOSHI_TEST के लिए deposit_address, expected_amount, और उसका
        अपना expires_at; MESSAGE_SIGNING के लिए challenge। जब सत्र किसी
        ट्रांसफ़र से जुड़ा हो, तो पोलिंग के बजाय travel_rule.status.updated
        webhook को प्राथमिकता दें।
      operationId: getTravelRuleWidgetContext
      parameters:
        - name: token
          in: path
          required: true
          description: विजेट सत्र बनाए जाने पर लौटाया गया अपारदर्शी सत्र token।
          schema:
            type: string
      responses:
        '200':
          description: विजेट संदर्भ और प्रमाण स्थितियां।
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleWidgetContext'
        '404':
          description: अज्ञात token।
        '410':
          description: सत्र पूरा हुए बिना समाप्त हो गया।
      security:
        - {}
      x-codeSamples:
        - lang: curl
          label: curl
          source: curl https://verification.didit.me/v3/travel-rule/widget/{token}/
components:
  schemas:
    TravelRuleWidgetContext:
      type: object
      properties:
        vasp_name:
          type: string
          description: >-
            आपकी VASP प्रोफ़ाइल से कानूनी नाम, जो विजेट में ग्राहक को दिखाया
            जाता है। जब कोई प्रोफ़ाइल मौजूद नहीं होती है तो खाली रहता है।
        wallet_address:
          type: string
        chain:
          type: string
          description: वह चेन जिसके साथ सत्र मिंट किया गया था, जैसा कि आपने भेजा था।
        chain_family:
          type: string
          nullable: true
          enum:
            - EVM
            - BTC
            - SOL
            - TRON
            - null
          description: >-
            चेन के लिए कुंजी फ़ैमिली: EVM (Ethereum, BNB Chain, Polygon,
            Arbitrum, Base, Optimism, Avalanche, Linea और अन्य EVM चेन), BTC,
            SOL या TRON। एक EVM कुंजी हर EVM चेन पर समान पते को नियंत्रित करती
            है। जब चेन पर किसी हस्ताक्षर को सत्यापित नहीं किया जा सकता, तो Null
            होता है।
        holder_name:
          type: string
        allowed_methods:
          type: array
          items:
            type: string
            enum:
              - MESSAGE_SIGNING
              - SCREENSHOT
              - SATOSHI_TEST
              - SELF_DECLARATION
          description: >-
            इस सत्र के लिए उपलब्ध प्रमाण विधियाँ। MESSAGE_SIGNING के लिए
            chain_family वाली चेन की आवश्यकता होती है, SATOSHI_TEST के लिए सत्र
            पर satoshi_deposit_address और ऐसी चेन की आवश्यकता होती है जिसके
            डिपॉज़िट Didit वापस पढ़ सके, SCREENSHOT के लिए
            allow_screenshot_proof सेटिंग आवश्यक है, और SELF_DECLARATION के लिए
            allow_self_declaration सेटिंग आवश्यक है।
        transfer_status:
          type: string
          nullable: true
          description: >-
            लिंक किए गए Travel Rule ट्रांसफर की स्थिति। Null जब सत्र
            transaction_id के बिना बनाया गया था।
        callback_url:
          type: string
          description: >-
            विजेट पूरा होने के बाद ग्राहक को कहाँ वापस भेजता है। सेट न होने पर
            खाली।
        expires_at:
          type: string
          format: date-time
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: प्रूफ़ सत्यापित होने के बाद गैर-शून्य (non-null)।
        proofs:
          type: array
          items:
            $ref: '#/components/schemas/TravelRuleWidgetProofSummary'
        max_attempts:
          type: integer
          description: इस सत्र द्वारा अनुमत अस्वीकृत वॉलेट प्रमाण।
        attempts_used:
          type: integer
          description: अब तक अस्वीकृत प्रमाण।
        attempts_remaining:
          type: integer
          description: >-
            0 होने पर, दूसरा प्रमाण शुरू करने पर 409 रिस्पॉन्स मिलता है और आप एक
            नया विजेट सत्र बनाते हैं।
        customization:
          type: object
          nullable: true
          description: >-
            व्हाइट लेबल सक्षम होने पर एप्लिकेशन का व्हाइट लेबल कस्टमाइज़ेशन
            (रंग, लोगो, फ़ॉन्ट फ़ैमिली) - विजेट सत्यापन वर्कफ़्लो के समान
            ब्रांडिंग के साथ रेंडर होता है। अन्यथा null।
    TravelRuleWidgetProofSummary:
      type: object
      properties:
        proof_id:
          type: string
          format: uuid
        method:
          type: string
          enum:
            - MESSAGE_SIGNING
            - SATOSHI_TEST
            - SCREENSHOT
            - SELF_DECLARATION
        status:
          type: string
          enum:
            - PENDING
            - VERIFIED
            - REJECTED
            - EXPIRED
          description: >-
            PENDING: अंतिम उपयोगकर्ता ने इस विधि को चुना है और प्रमाण पर अभी
            निर्णय नहीं हुआ है। एक विफल हस्ताक्षर या परीक्षण जमा जो अभी पढ़ने
            योग्य या पुष्ट नहीं है, वह failure_reason के साथ प्रमाण को PENDING
            रखता है, ताकि अंतिम उपयोगकर्ता फिर से प्रयास कर सके; सबमिट किए गए
            SATOSHI_TEST जमा की उसकी विंडो बंद होने तक स्वचालित रूप से पुनः जांच
            की जाती है, और सबमिट किया गया SCREENSHOT आपकी समीक्षा की प्रतीक्षा
            करता है। VERIFIED: स्वामित्व सिद्ध हो गया है। REJECTED: परीक्षण जमा
            वास्तव में गलत है (अन्य प्रेषक, जमा पते पर अपेक्षित राशि नहीं,
            चुनौती से पुराना, या ऐसा लेन-देन जिसने पहले ही किसी अन्य वॉलेट को
            सिद्ध कर दिया है) या आपके समीक्षक ने स्क्रीनशॉट अस्वीकार कर दिया है;
            failure_reason बताता है कि कौन सा कारण है। एक अस्वीकृत प्रमाण अंतिम
            होता है और सत्र के प्रयासों में से एक का उपयोग करता है। EXPIRED:
            प्रमाण पर अब निर्णय नहीं लिया जा सकता (इसकी विंडो बंद हो गई, अंतिम
            उपयोगकर्ता ने विधि बदल दी, विजेट सत्र समाप्त हो गया, या वॉलेट धारक
            बदल गया); failure_reason बताता है कि कौन सा कारण है।
        wallet_address:
          type: string
        chain:
          type: string
          description: >-
            उस एड्रेस बुक प्रविष्टि का कैनोनिकल चेन पहचानकर्ता जिसके लिए यह
            प्रमाण है, उदा. ETH, BTC, SOL, TRX।
        deposit_address:
          type: string
          nullable: true
          description: >-
            डिपॉज़िट पता जिस पर ग्राहक को Satoshi परीक्षण राशि भेजनी होगी। केवल
            SATOSHI_TEST प्रमाण पर मौजूद होता है।
        expected_amount:
          type: string
          nullable: true
          description: >-
            डिपॉज़िट की मूल मुद्रा में सटीक ऑन-चेन राशि, जिससे सातोशी परीक्षण
            डिपॉज़िट का मिलान होना चाहिए। केवल SATOSHI_TEST प्रमाण में मौजूद।
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            इस प्रमाण की अपनी Satoshi टेस्ट विंडो की समय-सीमा। केवल SATOSHI_TEST
            प्रमाण पर मौजूद होता है; जब SATOSHI_TEST की पेशकश की जाती है, तो
            विजेट सत्र का अपना expires_at इसे कवर करने के लिए बढ़ा दिया जाता है।
        challenge:
          type: string
          nullable: true
          description: >-
            Didit द्वारा जारी किया गया संदेश जिस पर ग्राहक अपने वॉलेट से
            हस्ताक्षर करता है। केवल MESSAGE_SIGNING प्रमाण पर मौजूद होता है।
        rejection_reason:
          type: string
          description: >-
            अंतिम उपयोगकर्ता के लिए अंग्रेज़ी वाक्य के रूप में, प्रमाण क्यों
            अस्वीकार किया गया। केवल तब मौजूद होता है जब `status`, REJECTED हो;
            जब आपके समीक्षक ने स्क्रीनशॉट अस्वीकार किया हो तो रिक्त (आपका नोट
            आपके पास ही रहता है)।
        created_at:
          type: string
          format: date-time
        attempts:
          type: integer
          description: >-
            इस प्रमाण के लिए साक्ष्य कितनी बार सबमिट किए गए (हस्ताक्षर, लेन-देन
            आईडी, अपलोड)।
        failure_reason:
          allOf:
            - $ref: '#/components/schemas/TravelRuleWalletProofFailureReason'
          description: >-
            पिछला प्रयास क्यों विफल रहा, या प्रमाण क्यों बंद हुआ। कुछ भी विफल न
            होने पर रिक्त।
    TravelRuleWalletProofFailureReason:
      type: string
      enum:
        - ''
        - SIGNATURE_INVALID
        - SIGNATURE_UNSUPPORTED_SCHEME
        - DEPOSIT_NOT_FOUND
        - DEPOSIT_UNCONFIRMED
        - DEPOSIT_LOOKUP_FAILED
        - DEPOSIT_MISMATCH
        - DEPOSIT_STALE
        - TXID_REUSED
        - CHAIN_UNSUPPORTED
        - WINDOW_EXPIRED
        - OWNERSHIP_CHANGED
        - METHOD_SWITCHED
        - REVIEW_REJECTED
        - ABANDONED
      description: >-
        वॉलेट-स्वामित्व प्रमाण, या उसका अंतिम प्रयास, VERIFIED से कम क्यों रह
        गया। कुछ भी विफल न होने पर खाली। PENDING प्रमाण में यह हो सकता है: अंतिम
        प्रयास विफल रहा और अंतिम उपयोगकर्ता पुनः प्रयास कर सकता है।
        DEPOSIT_MISMATCH, DEPOSIT_STALE, TXID_REUSED और REVIEW_REJECTED प्रमाण
        को REJECTED के रूप में बंद कर देते हैं। SIGNATURE_INVALID: हस्ताक्षर
        वॉलेट और चैलेंज से मेल नहीं खाता है। SIGNATURE_UNSUPPORTED_SCHEME: वॉलेट
        ने ऐसे प्रारूप में हस्ताक्षर किए हैं जिसे Didit सत्यापित नहीं करता है।
        DEPOSIT_NOT_FOUND, DEPOSIT_UNCONFIRMED, DEPOSIT_LOOKUP_FAILED: परीक्षण
        डिपॉज़िट पठनीय नहीं है या अभी तक कन्फ़र्म नहीं हुआ है; टेस्ट विंडो बंद
        होने तक Didit इसकी जाँच करता रहता है। DEPOSIT_MISMATCH: लेन-देन वॉलेट से
        डिपॉज़िट पते पर अपेक्षित राशि नहीं भेजता है। DEPOSIT_STALE: लेन-देन
        चैलेंज से पहले का है। TXID_REUSED: लेन-देन ने पहले ही किसी अन्य वॉलेट को
        साबित कर दिया है। CHAIN_UNSUPPORTED: यह विधि इस चेन पर उपलब्ध नहीं है।
        WINDOW_EXPIRED: टेस्ट विंडो बंद हो गई। OWNERSHIP_CHANGED: विजेट सत्र
        मिंट होने के बाद वॉलेट धारक बदल गया, या वॉलेट आपकी पता पुस्तिका से हटा
        दिया गया। METHOD_SWITCHED: अंतिम उपयोगकर्ता ने इसे पूरा करने से पहले कोई
        अन्य विधि चुनी। REVIEW_REJECTED: आपके समीक्षक ने स्क्रीनशॉट को अस्वीकार
        कर दिया। ABANDONED: अंतिम उपयोगकर्ता के समाप्त करने से पहले विजेट सत्र
        समाप्त हो गया।

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.