> ## 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.

# Travel Rule 网络与接入状态

> Didit 说明各 Travel Rule 通道和网络目前覆盖的范围、您这一侧需要准备的内容，以及仍需等待 Didit 尚未获得的成员资格才能接入的部分。

A [Travel Rule](https://docs.didit.me/zh/transaction-monitoring/travel-rule.md) 交换通过一条通道到达交易对手 VASP。有三条通道无需任何人的成员资格：两个 Didit 客户之间的 `INTERNAL`、开放的 Travel Rule Protocol（`TRP`），以及 `EMAIL`。四条网络通道（`GTR`、`TRUST`、`VERIFYVASP`、`SYGNA`）需要发送方持有该网络的成员资格。

本页说明每条通道目前的功能，以便您在依赖某条路由之前，了解交易对手可以通过哪些通道触达。

> [!WARNING]
>
> **Didit 目前尚未持有任何 Travel Rule 网络的有效成员资格。** 网络通道目前仅在您于控制台 **Marketplace** 中自行连接成员资格后才可使用。无论是通过 GTR、TRUST、VerifyVASP 还是 Sygna Bridge，都无法凭借 Didit 自身的成员资格触达交易对手。当 Didit 自身的成员资格可以实际用于触达交易对手时，本页内容将随之更新。

## 状态概览

| 通道 | 所需条件 | 向交易对手发送 | 从交易对手接收 |
| - | - | - | - |
| `INTERNAL` | 无需任何条件 | 可用 | 可用 |
| `TRP` | 无需任何条件 | 交易对手即时响应时可用 | 暂不可用 |
| `EMAIL` | 合规邮箱 | 可用 | 不作为接收通道 |
| `GTR` | 您自己的成员资格 | 已实现，尚未经实际验证 | 尚未开通 |
| `VERIFYVASP` | 您自己的成员资格 | 已实现，尚未经实际验证 | 尚未开通 |
| `SYGNA` | 您自己的成员资格 | 已实现，尚未经实际验证 | 尚未开通 |
| `TRUST` | 您自己的成员资格 | 仅发送，从不完成 | 不可用 |
| CODE、TRISA、Notabene、Veriscope | - | 未集成 | 未集成 |

“可用”指 Didit 发起交换并读取回复。“已实现，尚未经实际验证”指 Didit 会发起交换并读取网络的回复，但目前尚无通过该网络完成的交换在实际网络上完成过。两者都不代表某个特定交易对手一定可以触达：这取决于交易对手本身，各 VASP 在[目录](https://docs.didit.me/zh/transaction-monitoring/travel-rule.md#目录)中的 `routes` 会说明您的应用当前可为其使用哪些通道。

`EMAIL` 仅用于承载您发出的请求：交易对手通过响应页面回复其中之一，且任何 VASP 都无法通过邮件向您发送转账。

在依赖 GTR、VerifyVASP、Sygna Bridge 或 TRUST 之前，请先连接您的成员资格，并与您熟悉的一个交易对手完成首次交换测试。

## 无需成员资格的通道

### INTERNAL

两个 VASP 都运行在 Didit 上，因此交换在平台内部完成，无需向外部发起调用。接收方必须是正式使用中的 Didit 客户，已启用 Travel Rule，并已通过签名消息或测试充值证明其对目标钱包的控制权。仅自行声明、仅截图或未经验证的钱包无法接收任何内容。请参阅[发送转账](https://docs.didit.me/zh/transaction-monitoring/travel-rule.md#发送转账)。

### TRP

Didit 原生支持 Travel Rule Protocol。当转账携带交易对手的 Travel Address、目标钱包的地址簿条目中存有 Travel Address，或交易对手在目录中解析到经目录验证的 TRP 端点时，转账将通过 `TRP` 发送。

凡无法在单次调用中完成的 TRP 交换，都需要 Didit 的公共 TRP 主机，Travel Address 指向的正是该主机：

* **发送。** 若交易对手即时回复您的询问，则会在其响应中完成或拒绝转账。若交易对手稍后回复，则其答复需发布到 Didit 的 TRP 主机，因此在该主机上线之前，此类交换无法完成；转账将一直等待，直至到达截止时间而过期。Didit 只发送一次询问，不会重试：当交易对手的 TRP 主机无法访问或拒绝该询问时，转账将立即变为 `COUNTERPARTY_VASP_NOT_REACHABLE`，您可以使用 `action: "resend"` 重试。
* **接收。** 其他 VASP 通过 Didit 主机上您的 Travel Address 与您联系，因此在该主机上线之前，任何交易对手都无法向您发送 TRP 询问。

Didit 的公共 TRP 主机目前尚未提供这些端点。[Travel Rule 互操作性](https://docs.didit.me/zh/transaction-monitoring/travel-rule-interoperability.md)文档说明了主机上线后交易对手将调用的端点。

### EMAIL

当没有任何协议可以到达交易对手时，Didit 会向其合规邮箱发送一次性链接，指向托管页面，由对方在该页面接受或拒绝。对方无需账户或集成。请参阅[邮件领取](https://docs.didit.me/zh/transaction-monitoring/travel-rule.md#针对无法触达的交易对手的邮件领取)。

## 网络通道

### 使用您自己的会员资格

在控制台的 **Marketplace**（Travel Rule 网络分类）中连接您自己的会员资格。您的转账将以您自己的网络身份传输，且已连接的会员资格始终优先于 Didit 的会员资格。

| 网络 | Marketplace 要求提供的内容 | 对方的响应如何到达 Didit |
| - | - | - |
| `GTR` | API 基础 URL、GTR VASP 代码、访问密钥、秘密密钥，以及在 GTR 门户中注册了公钥的 ed25519 私钥（base64 格式） | 在 GTR 对请求的响应中，或在转账等待期间每 5 分钟轮询一次请求状态 |
| `VERIFYVASP` | 您自己的 VerifyVASP Enclave 的 URL、您的 VerifyVASP ID，以及您的 Enclave 提供给 Didit 的令牌 | 每 5 分钟轮询一次验证状态 |
| `SYGNA` | Sygna VASP 代码、API 密钥和签名私钥。API 基础 URL 为可选项：留空则使用生产环境的 Sygna Bridge | 每 5 分钟轮询一次转账状态。Sygna 的权限回调指向 Didit 的公共 TRP 主机，该主机尚未上线，因此目前只能通过轮询将结果传回 Didit |
| `TRUST` | 基础 URL、TRUST 成员 ID 和 API 密钥。X25519 加密私钥（十六进制）为可选项 | 从不：TRUST 不会返回 Didit 可读取的任何内容，因此，已投递的转账会一直等待，直到截止时间到期后才过期 |

GTR、TRUST 和 VerifyVASP 还可以选择提供双向 TLS 客户端证书、客户端密钥和 CA 证书包（PEM 格式），适用于使用双向 TLS 或私有 CA 的会员资格。

* Didit 在后台发送转账，并会重试未响应或返回临时故障的网络（未及时响应、连接失败，或 HTTP `408`、`429` 或 `5xx`）：依次间隔 30 秒、2 分钟、10 分钟、30 分钟和 60 分钟。第六次尝试失败后，转账变为 `COUNTERPARTY_VASP_NOT_REACHABLE`。拒绝性响应（例如其他 `4xx` 响应或重定向）不会重试：转账会立即变为 `COUNTERPARTY_VASP_NOT_REACHABLE`。
* 始终未收到响应的转账会保持在 `AWAITING_COUNTERPARTY` 状态，直到超过 `confirmation_timeout_hours`，随后过期并执行您的 `timeout_outcome`。
* 通过 GTR、VerifyVASP 或 Sygna Bridge 接收其他 VASP 发送给您的转账的功能尚未开启：Didit 按网络逐个开启，在此之前这些网络无法向您投递转账。
* 当会员资格的参与方代码是 Didit 在该网络上的代码，或是另一应用已占用的代码时，保存会员资格会返回 `400`。
* 网络请求只会将您的凭证发送至该网络自己的主机，且从不跟随重定向。TRUST 数据包发送给收款人时，不包含您的 API 密钥、成员 ID 或客户端证书。

### 通过 Didit 的会员资格

一旦 Didit 持有某网络的会员资格，没有会员资格的客户即可以该网络参与方的身份，借助 Didit 的会员资格接入该网络，参与方代码由网络分配。发出的消息中使用的是您的代码，而不是 Didit 的代码。此方式仅适用于 GTR 和 Sygna Bridge。TRUST 逐个 VASP 接纳成员，VerifyVASP Enclave 只服务一个 VASP，因此这两个网络只能通过您自己的会员资格接入。

加入分为三步：填写 Didit 的网络尽职调查问卷，等待 Didit 批准，然后请求接入网络。Didit 会为您向网络注册，网络分配代码后，您的参与方即生效。

此流程尚未开放。在开放之前，保存或提交问卷，以及请求网络，都会返回 `403`，并带有 `code: travel_rule_platform_networks_disabled`；`GET /v3/travel-rule/networks/` 会返回 `platform_networks_enabled: false`。

## 查看应用的状态

`GET /v3/travel-rule/settings/` 和 `GET /v3/travel-rule/networks/` 会返回 `networks`，其键为 `gtr`、`trust`、`verifyvasp` 和 `sygna`。每一项说明该网络目前能为您的应用做什么：

| `state` | `reason` | 含义 |
| - | - | - |
| `own_membership` | `own_membership_connected` | 您已连接自己的成员身份。在生产环境的应用中，由该网络为您发送。 |
| `live_through_didit` | `participant_active` | Didit 的成员身份会将您的应用作为自身的活跃参与方接入。 |
| `off` | `platform_network_switched_off` | 您已在 `disabled_networks` 中关闭该网络。 |
| `didit_onboarding` | `didit_membership_not_live` | Didit 在该网络上的成员身份尚未上线。 |
| `questionnaire_needed` | `questionnaire_not_submitted`, `questionnaire_changes_requested` | Didit 的网络问卷尚未提交，或 Didit 要求修改。 |
| `questionnaire_in_review` | `questionnaire_submitted` | Didit 正在审核您的问卷。 |
| `request_access` | `participant_not_requested` | 您的问卷已通过：请申请该网络。 |
| `request_sent` | `questionnaire_pending`, `submitted_to_network` | 您的申请正在等待 Didit 为您注册，或等待该网络完成入驻。 |
| `unavailable` | `own_membership_only`, `sandbox_application`, `questionnaire_rejected`, `participant_suspended`, `participant_rejected` | 该网络无法为您的应用发送任何交易：TRUST 和 VerifyVASP 仅通过您自己的成员身份接入；Didit 从不为沙盒应用在网络上注册；Didit 拒绝了您的问卷；或该网络暂停或拒绝了您的参与方。 |
| `error` | `provisioning_failed`, `participant_key_missing`, `participant_key_unresolved` | 该网络拒绝了您的注册，或您的参与方所需的密钥缺失。重新申请该网络即可重试。 |

`mode` 将状态归纳为 `own`、`didit`、`off` 或 `unavailable`。系统依次检查您自己的成员身份、`disabled_networks`，然后是 Didit 的成员身份。目前，一旦您连接了自己的成员身份，该网络即显示 `own_membership`。否则，GTR 和 Sygna Bridge 显示 `didit_onboarding`（沙盒应用则显示 `unavailable`，原因为 `sandbox_application`），TRUST 和 VerifyVASP 显示 `unavailable`，原因为 `own_membership_only`，沙盒中同样如此。

沙盒应用从不通过任何网络发送，即使您已连接自己的成员身份且状态显示为 `own_membership`：其转账会发往 [Didit Test VASP](https://docs.didit.me/zh/transaction-monitoring/travel-rule-sandbox.md)。

`connected` 表示您保存的成员身份已通过本地校验，并不代表一次交换已经成功。首次真实交换会向该网络验证此成员身份。

## 网络上线后会有哪些变化

本页、`networks` 状态以及所有目录路由会同时变化。您的集成不需要任何改动：只要您的应用在某个网络上拥有成员身份，转账便会按照 [Didit 如何路由一次交换](https://docs.didit.me/zh/transaction-monitoring/travel-rule-interoperability.md#didit-如何路由交易)中所述的通道顺序，开始经由该网络路由。

要申请 Didit 尚未接入的网络，请在 **Marketplace** 中使用该网络的 **申请访问** 卡片。每项申请都会显示其状态（**开放**、**已联系**、**进行中**、**已上线** 或 **已拒绝**）以及 Didit 的最新备注。当 Didit 更改状态或备注时，会向提交该申请的团队成员发送邮件，前提是其仍在您的组织中。通过 API 密钥提交的申请不会收到邮件，因此请在 **Marketplace** 中跟进。

## 后续步骤

> [card] [Travel Rule](https://docs.didit.me/zh/transaction-monitoring/travel-rule.md)
>
> 交换生命周期、设置、通道以及 /v3/ API。

> [card] [在沙盒中测试](https://docs.didit.me/zh/transaction-monitoring/travel-rule-sandbox.md)
>
> 在上线前，针对 Didit Test VASP 测试每一种结果。

> [card] [互操作性](https://docs.didit.me/zh/transaction-monitoring/travel-rule-interoperability.md)
>
> 交易对手 VASP 用来与您通信的端点。

> [card] [目录](https://docs.didit.me/zh/transaction-monitoring/travel-rule.md#目录)
>
> 查找 VASP，以及您的应用可用于该 VASP 的路由。


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