Public TRP API for VASP-to-VASP Travel Rule data exchange.
Public TRP API for VASP-to-VASP Travel Rule data exchange.
This section describes the public endpoints of the Travel Rule Protocol (TRP) Registry API. These endpoints allow third-party systems and Virtual Asset Service Providers (VASPs) to discover, identify and register participants in the TRP network.
The API follows REST conventions and returns responses in JSON format. All requests should be made over HTTPS.
The TRP API enables VASPs to:
TRP follows global compliance standards (FATF, IVMS101) and ensures secure, encrypted communication between VASPs.
Every integration follows one simple flow:
Before calling any protected endpoint, your system must generate a JWT access token using your API Key. This ensures:
The access token is short-lived (TTL ≈ 1 hour) for security reasons. Pass it as Authorization: Bearer <jwt> on every protected endpoint.
https://trp.travel-rule.com/
http://localhost:3000/
Creates (or upserts) a beneficiary applicant on your VASP and returns a routable Travel Address that other VASPs can use to deliver IVMS101 beneficiary data back to you.
The Travel Address encodes:
domain,publicId,/transfers/inquiry/{beneficiaryPublicId},t=i query (inquiry routing hint).If an applicant with the same externalId or (firstName,lastName,walletAddress) tuple already exists, it is reused — Travel Addresses are stable per beneficiary.
Beneficiary wallet address. Must contain at least one hex character (validator enforces /[a-fA-F0-9]/).
https://trp.travel-rule.com/travel-address/generate
http://localhost:3000/travel-address/generate
curl -i -X POST \
https://trp.travel-rule.com/travel-address/generate \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"personType": "natural",
"firstName": "Alice",
"lastName": "Liddell"
}'{ "status": true, "data": { "travelAddress": "ta1qexamplebeneficiaryvasp1ahjk23" } }
https://trp.travel-rule.com/travel-address/decode
http://localhost:3000/travel-address/decode
curl -i -X POST \
https://trp.travel-rule.com/travel-address/decode \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"travelAddress": "ta1qexamplebeneficiaryvasp1ahjk23"
}'{ "status": true, "data": { "parsedUrl": "example.com/transfers/inquiry/0193abc4-1234-7890-abcd-ef1234567890?t=i" } }
High-level Travel Rule transfer operations from the originator VASP perspective. Transfers can flow two ways depending on what was provided at initiation:
OPEN_VASP — beneficiary VASP is reachable via Travel Address.EMAIL — beneficiary VASP is unknown; we send an email so the recipient can self-attest.