> ## 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가 아직 보유하지 않은 멤버십 대기 상황을 안내합니다.

[Travel Rule](https://docs.didit.me/ko/transaction-monitoring/travel-rule.md) 교환은 하나의 레일을 통해 거래 상대방 VASP에 도달합니다. 어떤 멤버십도 필요 없는 레일은 세 가지입니다. Didit 고객 두 곳 사이의 `INTERNAL`, 공개 Travel Rule 프로토콜(`TRP`), 그리고 `EMAIL`입니다. 네 가지 네트워크 레일(`GTR`, `TRUST`, `VERIFYVASP`, `SYGNA`)은 발신 측에서 해당 네트워크의 멤버십이 필요합니다.

이 페이지는 각 레일이 현재 무엇을 하는지 설명합니다. 따라서 경로에 의존하기 전에 어떤 경로로 거래 상대방에 도달할 수 있는지 미리 확인할 수 있습니다.

> [!WARNING]
>
> **Didit은 아직 어떤 Travel Rule 네트워크에도 실제 활성 멤버십을 보유하고 있지 않습니다.** 네트워크 레일은 오늘날 콘솔 **Marketplace**에서 직접 연결한 멤버십이 있을 때만 작동합니다. Didit 자체 멤버십을 통해서는 GTR, TRUST, VerifyVASP 또는 Sygna Bridge의 거래 상대방에게 아무것도 전달되지 않으며, Didit 자체 멤버십을 통해 실제로 거래 상대방에게 전달되기 시작하는 날 이 페이지가 변경됩니다.

## 한눈에 보는 상태

| 레일 | 필요 사항 | 거래 상대방에게 전송 | 거래 상대방으로부터 수신 |
| - | - | - | - |
| `INTERNAL` | 없음 | 작동 | 작동 |
| `TRP` | 없음 | 거래 상대방이 즉시 응답할 때 작동 | 아직 제공되지 않음 |
| `EMAIL` | 컴플라이언스 주소 | 작동 | 수신 채널이 아님 |
| `GTR` | 자체 멤버십 | 구현됨, 실제 네트워크에서 아직 검증되지 않음 | 아직 활성화되지 않음 |
| `VERIFYVASP` | 자체 멤버십 | 구현됨, 실제 네트워크에서 아직 검증되지 않음 | 아직 활성화되지 않음 |
| `SYGNA` | 자체 멤버십 | 구현됨, 실제 네트워크에서 아직 검증되지 않음 | 아직 활성화되지 않음 |
| `TRUST` | 자체 멤버십 | 전송만 가능하며 완료되지 않음 | 제공되지 않음 |
| CODE, TRISA, Notabene, Veriscope | - | 연동되지 않음 | 연동되지 않음 |

"작동"은 Didit이 교환을 보내고 응답을 읽는다는 뜻입니다. "구현됨, 실제 네트워크에서 아직 검증되지 않음"은 Didit이 교환을 보내고 네트워크의 응답을 읽지만, 아직 실제 네트워크를 통해 완료된 교환이 없다는 뜻입니다. 두 표현 중 어느 것도 특정 거래 상대방에 도달할 수 있다는 뜻은 결코 아닙니다. 이는 거래 상대방에 따라 달라지며, 각 VASP의 [디렉터리](https://docs.didit.me/ko/transaction-monitoring/travel-rule.md#디렉터리) `routes`가 현재 애플리케이션이 해당 VASP에 사용할 수 있는 레일을 알려 줍니다.

`EMAIL`은 발신 요청만 전달합니다. 거래 상대방이 요청에 응답하는 곳은 응답 페이지이며, 어떤 VASP도 이메일로 송금을 보낼 수 없습니다.

GTR, VerifyVASP, Sygna Bridge 또는 TRUST에 의존하기 전에 자체 멤버십을 연결하고, 잘 아는 거래 상대방과 첫 번째 교환을 실행하십시오.

## 멤버십이 필요 없는 레일

### INTERNAL

두 VASP 모두 Didit에서 실행되므로, 교환은 외부 호출 없이 플랫폼 내에서 정산됩니다. 수신자는 실제 Didit 고객이어야 하며, 해당 고객은 Travel Rule이 켜져 있고 서명된 메시지 또는 테스트 입금으로 대상 지갑의 통제권을 증명해야 합니다. 자체 선언한 지갑, 스크린샷만 있는 지갑, 또는 검증되지 않은 지갑은 아무것도 받지 못합니다. [전송 보내기](https://docs.didit.me/ko/transaction-monitoring/travel-rule.md#전송하기)를 참조하십시오.

### TRP

Didit은 Travel Rule Protocol을 기본으로 지원합니다. 전송은 거래 상대방의 Travel Address가 포함되어 있거나, 수신 지갑의 주소록 항목에 Travel Address가 저장되어 있거나, 디렉터리에서 거래 상대방이 디렉터리가 검증한 TRP 엔드포인트를 사용하는 것으로 확인될 때 `TRP`를 통해 이루어집니다.

단일 호출로 끝나지 않는 모든 TRP 교환에는 Travel Address가 가리키는 Didit의 공개 TRP 호스트가 필요합니다:

* **발신.** 요청에 즉시 응답하는 거래 상대방은 응답에서 전송을 완료하거나 거부합니다. 나중에 응답하는 거래 상대방은 답변을 Didit의 TRP 호스트에 게시하므로, 호스트가 활성화되기 전에는 해당 교환을 완료할 수 없습니다. 전송은 대기하다가 마감 시점에 만료됩니다. Didit은 요청을 한 번만 보내며 재시도하지 않습니다. 거래 상대방의 TRP 호스트에 도달할 수 없거나 요청을 거부하면, 전송은 즉시 `COUNTERPARTY_VASP_NOT_REACHABLE`이 되며, `action: "resend"`로 재시도할 수 있습니다.
* **수신.** 다른 VASP는 해당 호스트에서 귀하의 Travel Address로 연결합니다. 따라서 호스트가 활성화되기 전에는 어떤 거래 상대방도 TRP 요청을 보낼 수 없습니다.

Didit의 공개 TRP 호스트는 아직 이 엔드포인트를 제공하지 않습니다. [Travel Rule 상호 운용성](https://docs.didit.me/ko/transaction-monitoring/travel-rule-interoperability.md)에는 호스트가 활성화된 후 거래 상대방이 호출할 엔드포인트가 문서화되어 있습니다.

### EMAIL

어떤 프로토콜로도 거래 상대방에 도달할 수 없을 때, Didit은 컴플라이언스 주소로 일회용 링크를 이메일로 보냅니다. 이 링크는 수신자가 수락하거나 거부할 수 있는 호스팅 페이지로 연결됩니다. 거래 상대방 측에는 계정이나 연동이 필요하지 않습니다. [이메일 수신](https://docs.didit.me/ko/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 암호화 개인 키(hex)는 선택 사항입니다 | 없음. TRUST는 Didit이 읽을 수 있는 내용을 보내지 않으므로, 전달된 전송은 기한이 만료되어 처리될 때까지 대기합니다 |

GTR, TRUST, VerifyVASP는 상호 TLS를 사용하는 멤버십 또는 비공개 CA를 사용하는 멤버십을 위해 선택 사항인 상호 TLS 클라이언트 인증서, 클라이언트 키, CA 번들(PEM)도 받을 수 있습니다.

* Didit은 백그라운드에서 전송하며, 응답하지 않거나 일시적인 오류로 응답하는 네트워크를 재시도합니다(시간 내 응답 없음, 연결 실패, HTTP `408`, `429`, `5xx`). 30초 후에 재시도하고, 그다음 2분, 10분, 30분, 60분 후에 재시도합니다. 여섯 번째 시도까지 실패하면 전송은 `COUNTERPARTY_VASP_NOT_REACHABLE`이 됩니다. 그 밖의 `4xx` 응답과 같은 거부나 리디렉션은 재시도하지 않으며, 전송은 즉시 `COUNTERPARTY_VASP_NOT_REACHABLE`이 됩니다.
* 응답이 도착하지 않은 전송은 `confirmation_timeout_hours`가 지날 때까지 `AWAITING_COUNTERPARTY` 상태로 대기하며, 이후 만료되어 설정한 `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/`는 `gtr`, `trust`, `verifyvasp`, `sygna` 키로 구분된 `networks`를 반환합니다. 각 항목은 현재 귀사의 애플리케이션에서 해당 네트워크가 무엇을 할 수 있는지 나타냅니다.

| `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`으로 표시되며(샌드박스 애플리케이션이면 `sandbox_application`과 함께 `unavailable`), TRUST와 VerifyVASP는 샌드박스에서도 `own_membership_only`와 함께 `unavailable`로 표시됩니다.

샌드박스 애플리케이션은 귀사의 멤버십이 연결되어 `own_membership`으로 표시되더라도 네트워크를 통해 절대 전송되지 않습니다. 해당 전송은 [Didit 테스트 VASP](https://docs.didit.me/ko/transaction-monitoring/travel-rule-sandbox.md)로 보내집니다.

`connected`는 저장된 멤버십이 로컬 검증을 통과했다는 뜻이며, 교환이 성공했다는 의미가 아닙니다. 첫 라이브 교환에서 네트워크에 대해 멤버십이 검증됩니다.

## 네트워크가 라이브 상태가 될 때 달라지는 점

이 페이지, `networks` 상태, 그리고 모든 디렉터리 경로가 함께 변경됩니다. 연동에서 바뀌는 것은 없습니다. 애플리케이션에 네트워크 멤버십이 생기는 즉시 전송이 해당 네트워크를 통해 라우팅되기 시작하며, 이때 경로 순서는 [Didit이 교환을 라우팅하는 방식](https://docs.didit.me/ko/transaction-monitoring/travel-rule-interoperability.md#디뎃이-거래를-라우팅하는-방식)에 설명된 대로 따릅니다.

Didit이 아직 연결하지 않는 네트워크를 요청하려면 **Marketplace**의 **액세스 요청** 타일을 사용하십시오. 각 요청에는 상태(**열림**, **연락됨**, **진행 중**, **라이브** 또는 **거부됨**)와 Didit이 남긴 최신 메모가 표시됩니다. Didit이 상태나 메모를 변경하면, 요청을 한 팀원이 아직 귀사의 조직에 속해 있는 동안 해당 팀원에게 이메일을 보냅니다. API 키로 만든 요청은 이메일을 받지 않으므로 **Marketplace**에서 진행 상황을 확인하십시오.

## 다음 단계

> [card] [Travel Rule](https://docs.didit.me/ko/transaction-monitoring/travel-rule.md)
>
> 교환 수명 주기, 설정, 경로 및 /v3/ API를 다룹니다.

> [card] [샌드박스에서 테스트](https://docs.didit.me/ko/transaction-monitoring/travel-rule-sandbox.md)
>
> 라이브 전환 전에 Didit 테스트 VASP를 대상으로 모든 결과를 테스트해 보십시오.

> [card] [상호 운용성](https://docs.didit.me/ko/transaction-monitoring/travel-rule-interoperability.md)
>
> 상대방 VASP가 귀사에 접근할 때 사용하는 엔드포인트를 다룹니다.

> [card] [디렉터리](https://docs.didit.me/ko/transaction-monitoring/travel-rule.md#디렉터리)
>
> VASP를 찾고 귀사의 애플리케이션이 사용할 수 있는 경로를 확인합니다.


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