curl -X POST https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/ \
-H 'Content-Type: application/json' \
-d '{"method": "MESSAGE_SIGNING"}'import requests
url = "https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/"
payload = {
"wallet_address": "<string>",
"chain": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({wallet_address: '<string>', chain: '<string>'})
};
fetch('https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'wallet_address' => '<string>',
'chain' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/"
payload := strings.NewReader("{\n \"wallet_address\": \"<string>\",\n \"chain\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/")
.header("Content-Type", "application/json")
.body("{\n \"wallet_address\": \"<string>\",\n \"chain\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"wallet_address\": \"<string>\",\n \"chain\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"proof_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"method": "MESSAGE_SIGNING",
"status": "PENDING",
"wallet_address": "<string>",
"chain": "<string>",
"deposit_address": "<string>",
"expected_amount": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"challenge": "<string>",
"rejection_reason": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"attempts": 123,
"failure_reason": ""
}{
"proof_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"method": "MESSAGE_SIGNING",
"status": "PENDING",
"wallet_address": "<string>",
"chain": "<string>",
"deposit_address": "<string>",
"expected_amount": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"challenge": "<string>",
"rejection_reason": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"attempts": 123,
"failure_reason": ""
}{
"detail": "<string>",
"code": "",
"status": "PENDING",
"proof_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"method": "MESSAGE_SIGNING",
"max_attempts": 123,
"attempts_used": 123,
"attempts_remaining": 123
}{
"detail": "<string>",
"code": "",
"status": "PENDING",
"proof_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"method": "MESSAGE_SIGNING",
"max_attempts": 123,
"attempts_used": 123,
"attempts_remaining": 123
}वॉलेट स्वामित्व प्रमाण API शुरू करें - Travel Rule विजेट
Didit: विजेट सेशन टोकन से वॉलेट स्वामित्व प्रमाण शुरू करें। मैसेज साइनिंग, Satoshi test, स्क्रीनशॉट या स्व-घोषणा; तरीका दोबारा चुनने पर फिर शुरू।
curl -X POST https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/ \
-H 'Content-Type: application/json' \
-d '{"method": "MESSAGE_SIGNING"}'import requests
url = "https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/"
payload = {
"wallet_address": "<string>",
"chain": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({wallet_address: '<string>', chain: '<string>'})
};
fetch('https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'wallet_address' => '<string>',
'chain' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/"
payload := strings.NewReader("{\n \"wallet_address\": \"<string>\",\n \"chain\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/")
.header("Content-Type", "application/json")
.body("{\n \"wallet_address\": \"<string>\",\n \"chain\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/travel-rule/widget/{token}/proofs/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"wallet_address\": \"<string>\",\n \"chain\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"proof_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"method": "MESSAGE_SIGNING",
"status": "PENDING",
"wallet_address": "<string>",
"chain": "<string>",
"deposit_address": "<string>",
"expected_amount": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"challenge": "<string>",
"rejection_reason": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"attempts": 123,
"failure_reason": ""
}{
"proof_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"method": "MESSAGE_SIGNING",
"status": "PENDING",
"wallet_address": "<string>",
"chain": "<string>",
"deposit_address": "<string>",
"expected_amount": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"challenge": "<string>",
"rejection_reason": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"attempts": 123,
"failure_reason": ""
}{
"detail": "<string>",
"code": "",
"status": "PENDING",
"proof_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"method": "MESSAGE_SIGNING",
"max_attempts": 123,
"attempts_used": 123,
"attempts_remaining": 123
}{
"detail": "<string>",
"code": "",
"status": "PENDING",
"proof_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"method": "MESSAGE_SIGNING",
"max_attempts": 123,
"attempts_used": 123,
"attempts_remaining": 123
}पथ पैरामीटर
विजेट सत्र बनाए जाने पर लौटाया गया अपारदर्शी सत्र token।
बॉडी
अंतिम उपयोगकर्ता द्वारा चुनी गई प्रमाण विधि। यह संदर्भ के allowed_methods में से एक होनी चाहिए।
MESSAGE_SIGNING, SATOSHI_TEST, SCREENSHOT, SELF_DECLARATION सत्र के wallet_address पर डिफ़ॉल्ट होता है। सत्र के ट्रांसफ़र से लिंक होने पर ट्रांसफ़र के वॉलेट से मेल खाना चाहिए।
128सत्र की चेन पर डिफ़ॉल्ट होता है।
32प्रतिक्रिया
इस विधि के लिए पहले से खुला प्रमाण, पुनः शुरू किया गया।
MESSAGE_SIGNING, SATOSHI_TEST, SCREENSHOT, SELF_DECLARATION PENDING: अंतिम उपयोगकर्ता ने इस विधि को चुना है और प्रमाण पर अभी निर्णय नहीं हुआ है। एक विफल हस्ताक्षर या परीक्षण जमा जो अभी पढ़ने योग्य या पुष्ट नहीं है, वह failure_reason के साथ प्रमाण को PENDING रखता है, ताकि अंतिम उपयोगकर्ता फिर से प्रयास कर सके; सबमिट किए गए SATOSHI_TEST जमा की उसकी विंडो बंद होने तक स्वचालित रूप से पुनः जांच की जाती है, और सबमिट किया गया SCREENSHOT आपकी समीक्षा की प्रतीक्षा करता है। VERIFIED: स्वामित्व सिद्ध हो गया है। REJECTED: परीक्षण जमा वास्तव में गलत है (अन्य प्रेषक, जमा पते पर अपेक्षित राशि नहीं, चुनौती से पुराना, या ऐसा लेन-देन जिसने पहले ही किसी अन्य वॉलेट को सिद्ध कर दिया है) या आपके समीक्षक ने स्क्रीनशॉट अस्वीकार कर दिया है; failure_reason बताता है कि कौन सा कारण है। एक अस्वीकृत प्रमाण अंतिम होता है और सत्र के प्रयासों में से एक का उपयोग करता है। EXPIRED: प्रमाण पर अब निर्णय नहीं लिया जा सकता (इसकी विंडो बंद हो गई, अंतिम उपयोगकर्ता ने विधि बदल दी, विजेट सत्र समाप्त हो गया, या वॉलेट धारक बदल गया); failure_reason बताता है कि कौन सा कारण है।
PENDING, VERIFIED, REJECTED, EXPIRED उस एड्रेस बुक प्रविष्टि का कैनोनिकल चेन पहचानकर्ता जिसके लिए यह प्रमाण है, उदा. ETH, BTC, SOL, TRX।
डिपॉज़िट पता जिस पर ग्राहक को Satoshi परीक्षण राशि भेजनी होगी। केवल SATOSHI_TEST प्रमाण पर मौजूद होता है।
डिपॉज़िट की मूल मुद्रा में सटीक ऑन-चेन राशि, जिससे सातोशी परीक्षण डिपॉज़िट का मिलान होना चाहिए। केवल SATOSHI_TEST प्रमाण में मौजूद।
इस प्रमाण की अपनी Satoshi टेस्ट विंडो की समय-सीमा। केवल SATOSHI_TEST प्रमाण पर मौजूद होता है; जब SATOSHI_TEST की पेशकश की जाती है, तो विजेट सत्र का अपना expires_at इसे कवर करने के लिए बढ़ा दिया जाता है।
Didit द्वारा जारी किया गया संदेश जिस पर ग्राहक अपने वॉलेट से हस्ताक्षर करता है। केवल MESSAGE_SIGNING प्रमाण पर मौजूद होता है।
अंतिम उपयोगकर्ता के लिए अंग्रेज़ी वाक्य के रूप में, प्रमाण क्यों अस्वीकार किया गया। केवल तब मौजूद होता है जब status, REJECTED हो; जब आपके समीक्षक ने स्क्रीनशॉट अस्वीकार किया हो तो रिक्त (आपका नोट आपके पास ही रहता है)।
इस प्रमाण के लिए साक्ष्य कितनी बार सबमिट किए गए (हस्ताक्षर, लेन-देन आईडी, अपलोड)।
पिछला प्रयास क्यों विफल रहा, या प्रमाण क्यों बंद हुआ। कुछ भी विफल न होने पर रिक्त।
, 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