{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Custodial vs Non-Custodial interaction","description":"Public TRP API for VASP-to-VASP Travel Rule data exchange.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"custodial-vs-non-custodial-interaction"},"children":["Custodial vs Non-Custodial interaction"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["TRP supports two beneficiary models, indicated by the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isSelfHosted"]}," flag"," ","on the applicant."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Custodial"},"children":["Custodial"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Non-Custodial (self-hosted)"},"children":["Non-Custodial (self-hosted)"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isSelfHosted"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Counterparty"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Another VASP"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["An individual / wallet owner"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Routing"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Travel Address → VASP"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Email confirmation (EMAIL flow)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["IVMS101 source"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Counterparty VASP"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Self-attestation form"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Wallet ownership proof"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["VASP attestation"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional signature challenge"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"custodial-flow"},"children":["Custodial flow"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Beneficiary VASP issues a Travel Address."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Originator initiates with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["travelAddress"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["TRP forwards an inquiry to the beneficiary VASP endpoint."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Beneficiary VASP replies with its wallet address via"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["inquiryResolution"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"non-custodial-self-hosted-flow"},"children":["Non-Custodial (self-hosted) flow"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Originator initiates with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["beneficiary.email"]}," (no Travel Address)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["TRP emails the beneficiary a self-attestation form."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Once the beneficiary confirms, TRP fires the same callback chain as the"," ","custodial flow."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can mix the two: a beneficiary VASP may declare the recipient as"," ","self-hosted when responding to an inquiry by setting the IVMS101"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customerIdentification"]}," accordingly. The"," ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/openapi/address/generatetraveladdress"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/travel-address/generate"]}]}," ","endpoint accepts ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isSelfHosted"]}," to record this hint at onboarding."]}]},"headings":[{"value":"Custodial vs Non-Custodial interaction","id":"custodial-vs-non-custodial-interaction","depth":1},{"value":"Custodial flow","id":"custodial-flow","depth":2},{"value":"Non-Custodial (self-hosted) flow","id":"non-custodial-self-hosted-flow","depth":2}],"frontmatter":{"title":"Custodial vs Non-Custodial interaction","seo":{"title":"Custodial vs Non-Custodial interaction"}},"lastModified":"2026-05-11T08:02:14.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/pages/custodial-vs-non-custodial","userData":{"isAuthenticated":false,"teams":["anonymous"]}}