curl
curl https://verification.didit.me/v3/travel-rule/widget/{token}/import requests
url = "https://verification.didit.me/v3/travel-rule/widget/{token}/"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://verification.didit.me/v3/travel-rule/widget/{token}/', 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}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/travel-rule/widget/{token}/"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://verification.didit.me/v3/travel-rule/widget/{token}/")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/travel-rule/widget/{token}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"vasp_name": "<string>",
"wallet_address": "<string>",
"chain": "<string>",
"chain_family": "EVM",
"holder_name": "<string>",
"allowed_methods": [
"MESSAGE_SIGNING"
],
"transfer_status": "<string>",
"callback_url": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"proofs": [
{
"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": ""
}
],
"max_attempts": 123,
"attempts_used": 123,
"attempts_remaining": 123,
"customization": {}
}Travel Rule
获取钱包所有权小组件上下文 API
Didit 提供的接口,通过 token 读取钱包所有权小组件会话的公开上下文信息,包括允许的证明方式、证明进度和完成状态。
GET
/
v3
/
travel-rule
/
widget
/
{token}
/
curl
curl https://verification.didit.me/v3/travel-rule/widget/{token}/import requests
url = "https://verification.didit.me/v3/travel-rule/widget/{token}/"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://verification.didit.me/v3/travel-rule/widget/{token}/', 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}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/travel-rule/widget/{token}/"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://verification.didit.me/v3/travel-rule/widget/{token}/")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/travel-rule/widget/{token}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"vasp_name": "<string>",
"wallet_address": "<string>",
"chain": "<string>",
"chain_family": "EVM",
"holder_name": "<string>",
"allowed_methods": [
"MESSAGE_SIGNING"
],
"transfer_status": "<string>",
"callback_url": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"proofs": [
{
"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": ""
}
],
"max_attempts": 123,
"attempts_used": 123,
"attempts_remaining": 123,
"customization": {}
}路径参数
生成 widget 会话时返回的不透明会话 token。
响应
小组件上下文和证明状态。
来自您 VASP 资料的法定名称,会在小部件中向客户展示。不存在资料时为空。
铸造会话所用的链,与您发送的一致。
链背后的密钥族:EVM(Ethereum、BNB Chain、Polygon、Arbitrum、Base、Optimism、Avalanche、Linea 及其他 EVM 链)、BTC、SOL 或 TRON。一个 EVM 密钥控制每条 EVM 链上的同一地址。当无法在链上验证签名时为 Null。
可用选项:
EVM, BTC, SOL, TRON, null 此会话可用的证明方式。MESSAGE_SIGNING 需要包含 chain_family 的链,SATOSHI_TEST 需要会话上存在 satoshi_deposit_address 且链的充值记录 Didit 可回读,SCREENSHOT 需要开启 allow_screenshot_proof 设置,SELF_DECLARATION 需要开启 allow_self_declaration 设置。
可用选项:
MESSAGE_SIGNING, SCREENSHOT, SATOSHI_TEST, SELF_DECLARATION 关联的 Travel Rule 转账的状态。会话创建时未包含 transaction_id 则为 Null。
组件完成后将客户返回到的位置。未设置时为空。
证明核验后为非空。
Show child attributes
Show child attributes
本次会话允许的已拒绝钱包证明。
截至目前已拒绝的证明。
为 0 时,启动另一个验证会返回 409,您需要生成一个新的小部件会话。
启用白标时该应用的白标定制信息(颜色、Logo、字体系列),组件将以与验证工作流相同的品牌标识进行渲染。否则为 null。
最后修改于 2026年11月7日