Transactions
The Wallet Transactions APIs allow merchants to enable end users to:
Receive crypto-assets through blockchain wallet addresses
Send crypto-assets to external blockchain addresses
Transfer crypto-assets internally to another user within the same merchant group
Submit Travel Rule counterparty information where required
All requests must be made from the merchant’s secure backend. API credentials must never be exposed in a browser or mobile application.
Available APIs
Receive Crypto
GET
/whitelabel/wallet/getWalletAddress
Retrieve an end user’s blockchain deposit address
Send Crypto
POST
/whitelabel/wallet/payout
Send crypto to an external blockchain address
Internal Transfer
POST
/whitelabel/wallet/internalTransfer
Transfer crypto to another user under the same merchant
Travel Rule
POST
/whitelabel/compliance/travelRule/addCounterparty
Submit beneficiary or counterparty information
Transaction Security Requirements
Wallet transaction requests are subject to additional authentication and security controls.
Read-Only Requests
The wallet-address endpoint requires:
API key authentication
HMAC-SHA256 signature
IP whitelisting
End-user resolution
Approved KYC
An active and unsuspended end-user account
Mutating Requests
The following endpoints are mutating requests:
These requests require:
API key authentication
HMAC-SHA256 signature
IP whitelisting
End-user resolution
Approved KYC
Replay protection
Email OTP
Authenticator-app TOTP
An active and unsuspended end-user account
The complete request body must be included when generating the HMAC signature.
End-User Identification
Each wallet request must identify the end user using one of the following fields:
endUserEmail
The end user’s registered email address
endUserId
The Tylt end-user ID
externalUserId
The merchant’s own unique user identifier
The recommended identifier is externalUserId.
Example:
A client-supplied merchantId is ignored or removed by Tylt to prevent cross-merchant access.
Transaction Authorization
Before submitting a payout or internal transfer, the merchant must request a transaction OTP.
Request Transaction OTP
The request must include one end-user identifier.
Example query:
The email OTP is sent directly to the end user’s registered email address.
The merchant’s interface must then collect:
The email OTP
The end user’s Authenticator-app TOTP
These values must be included in the signed transaction request:
The merchant cannot generate or replace the end user’s Authenticator code.
Replay Protection
All mutating transaction requests must include:
Replay-Protection Fields
timestamp
Number
Yes
Current epoch time in milliseconds
nonce
String
Yes
Unique value generated for the request
The timestamp must be within 120 seconds of Tylt’s server time.
A nonce must not be reused within the replay-protection window.
The HMAC signature must be calculated over the complete body, including:
End-user identifier
Transaction fields
timestampnonceemailCodegoogleAuthCode
Last updated