Skip to main content
Deep links allow to seamlessly direct users from a dApp back to a meaningful location within a TON wallet and invoke corresponding actions. Issue wallet invoices using deep links. See transaction link formats for popular explorers.

TON Connect invoices

tc://<TON_CONNECT_LINK_BODY>
Best for dApps that require multiple transactions within a session or a persistent wallet connection. Advantages
  • Permanent communication channel with the wallet.
  • Users only scan a QR code once.
  • Can track transaction confirmation via the returned BoC.
  • Ready-made SDKs and UI kits for various platforms.
Disadvantages
  • If only one payment is needed, users must connect the wallet and confirm the transaction.
  • More complex integration than a ton:// link.
Explore TON Connect.
The TON link ton:// is less preferred in the ecosystem, but may be useful for simple and tiny one-time payment flow.
ton://<LINK-BODY>
Advantages
  • Easy integration.
  • No need to connect a wallet.
Disadvantages
  • Users must scan a new QR code for each payment.
  • Cannot track if the user signed the transaction.
  • No information about the user’s address.
  • Requires workarounds for platforms where links are not clickable (e.g., Telegram Desktop bots).
The ton:// scheme is part of the broader TON blockchain standard, enabling interoperability across different TON-based wallets and services.

Example workflows

  • Quick payments: Integrate payment requests directly from your website, allowing users to complete transactions with a single tap using ton:// transfer links.
  • In-app transactions: Use deep links to facilitate seamless transfers between users within your application.
  • Link to specific transfers: Provide support or history review by linking directly to specific transactions or transfers.

TON transfer

Opens the pre-filled Send screen and prompts the user to enter the missing data.
Transfer scheme
ton://transfer/<ADDRESS>?amount=<AMOUNT>&text=<TEXT>
ParameterDescriptionRequired
<ADDRESS>The recipient’s TON address.required
<AMOUNT>The amount of TON to send, in nanotons.optional
<TEXT>A URL-encoded UTF-8 text message to attach to the transfer.optional

TON transfer to address

scheme
ton://transfer/<ADDRESS>
example
ton://transfer/UQDYzZmfsrGzhObKJUw4gzdeIxEai3jAFbiGKGwxvxHinf4K

TON transfer with amount

scheme
ton://transfer/<ADDRESS>?amount=<AMOUNT>
example
ton://transfer/UQDYzZmfsrGzhObKJUw4gzdeIxEai3jAFbiGKGwxvxHinf4K?amount=5000000

TON transfer with text comment

scheme
ton://transfer/<ADDRESS>?text=<TEXT>
example
ton://transfer/UQDYzZmfsrGzhObKJUw4gzdeIxEai3jAFbiGKGwxvxHinf4K?text=hello

TON Transfer with amount and text comment

scheme
ton://transfer/<ADDRESS>?amount=<AMOUNT>&text=<TEXT>
example
ton://transfer/UQDYzZmfsrGzhObKJUw4gzdeIxEai3jAFbiGKGwxvxHinf4K?amount=5000000&text=hello

Transfer with expiry timestamp

Opens the Send screen with an expiry timestamp for the transaction.
Scheme with timestamp
ton://transfer/<ADDRESS>?amount=<AMOUNT>&text=<TEXT>&exp=<EXPIRY_TIMESTAMP>
ParameterDescriptionRequired
<ADDRESS>The recipient’s TON address.required
<AMOUNT>The amount of TON to send, in nanotons.optional
<TEXT>A URL-encoded UTF-8 text message to attach to the transfer.optional
<EXPIRY_TIMESTAMP>Expiry timestamp in seconds since the Unix epoch.optional
The exp parameter, like other parameters, must be included when constructing the message to ensure the blockchain rejects transactions with an expired exp.

TON transfer with expiry timestamp

scheme tranfser with expiry
ton://transfer/<ADDRESS>?amount=<AMOUNT>&text=<TEXT>&exp=<EXPIRY_TIMESTAMP>
example transfer with expiry
ton://transfer/EQD2NmD_lH5f5u1Kj3KfGyTvhZSX0Eg6qp2a5IQUKXxOG21n?amount=100000&text=test&exp=2147483647

Jetton transfer

Opens the Send screen with a jetton transfer. Jetton is a standard for TON assets, like USDT, USDC and e.t.c.
Scheme
ton://transfer/<ADDRESS>?jetton=<JETTON_ADDRESS>&amount=<AMOUNT>&text=<TEXT>
ParameterDescriptionRequired
<ADDRESS>The recipient’s TON wallet address.required
<JETTON_ADDRESS>The jetton master address.required
<AMOUNT>The amount of jettons to send.optional
<TEXT>A URL-encoded UTF-8 text message to attach to the transfer.optional
<EXPIRY_TIMESTAMP>Expiry timestamp in seconds since the Unix epoch.optional
One whole Jetton for <AMOUNT> is defined by
  • decimals the number of fractional digits
  • unit that represents the smallest indivisible amount of the token (similar to satoshi in Bitcoin).
One whole Jetton=unit×10decimal\text{One whole Jetton} = unit \times 10^{decimal}For example, a USDT Jetton on TON defines decimals = 6. This means:1 USDT=1,000,000 smallest units1\ \text{USDT} = 1{,}000{,}000\ \text{smallest units}Or, in general form:One whole USDT=unit×106\text{One whole USDT} = unit \times 10^{6}Typically Jetton on TON defines with decimals = 9, for example, DUST jetton. This means:1 DUST=1,000,000,000 smallest units1\ \text{DUST} = 1{,}000{,}000{,}000\ \text{smallest units}Or, in general form:One whole DUST=unit×109\text{One whole DUST} = unit \times 10^{9}

Transfer default jetton

Typically, jetton decimals in amount are equal 9 and evaluation same as for Toncoin.
scheme
ton://transfer/<ADDRESS>?jetton=<JETTON_ADDRESS>&amount=<AMOUNT>&text=<TEXT>
example transfer 0.005 DUST
ton://transfer/UQDYzZmfsrGzhObKJUw4gzdeIxEai3jAFbiGKGwxvxHinf4K?jetton=EQBlqsm144Dq6SjbPI4jjZvA1hqTIP3CvHovbIfW_t-SCALE&amount=5000000&text=hello

Transfer USDT

While Toncoin requires nine decimal places and 1 Toncoin equals 1 billion (10910^9) nanoToncoin, USDT only uses six decimal places. This means that 1 USDT unit stands for 1 million (10610^6) microUSDT units. The AMOUNT below requires the microUSDT format.
scheme
ton://transfer/<ADDRESS>?jetton=<JETTON_ADDRESS>&amount=<AMOUNT>&text=<TEXT>
example transfer 0.005 USDT
ton://transfer/UQDYzZmfsrGzhObKJUw4gzdeIxEai3jAFbiGKGwxvxHinf4K?jetton=EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs&amount=5000&text=hello

Transfer with binary data

Opens the emulation screen or screen with alert about blind signing transactions with amount and destination.
scheme
ton://transfer/<ADDRESS>?amount=<AMOUNT>&bin=<BINARY_DATA>
ParameterDescriptionRequired
<ADDRESS>The recipient’s TON address.required
<AMOUNT>The amount of TON to send, in nanotons.optional
<BINARY_DATA>A URL-encoded base64 BoC which will be attached as a body to internal message.optional
example transfer with binary data
ton://transfer/UQDYzZmfsrGzhObKJUw4gzdeIxEai3jAFbiGKGwxvxHinf4K?amount=5000000&bin=te6cckECBQEAARUAAUWIAMEY4jHsfgXgPZLLJhtH/oPEOBKZZb6Y4/RJaJnbXc4GDAEBnBSf8D7P51eitphXHiTNAS6WXVDOgcxIxFWf7JICcG9ooFRNCDzTZbHg0mlW6782P8huKd5wzYK3huSVDMGTrQgpqaMXaMF9SAAAACsAAwIBaGIAV+9GxkYnezSj7VSw9vtlmc5RJ5lsyyItoKd5rFDpJZUgL68IAAAAAAAAAAAAAAAAAAEDAaFfzD0Ug3czLfk9/4aAArAmxHNbYrurO/IYyD89+mJZ/XDMnkMemHy/nTsrzYDwAYIxxGPY/AvAeyWWTDaP/QeIcCUyy30xx+iS0TO2u5wMIDgEACIAAAAAUmVmI05PTmQxZ0pCUK4fW14=

Wallet-specific invoices

Use wallet‑specific links to create simple jetton and Toncoin transfers. The syntax is usually similar to ton://transfer links, but always check each wallet’s documentation. Example: transferring 1 USDT to EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs:
Tonkeeper mobile link
https://app.tonkeeper.com/transfer/saint.ton?amount=1000000&jetton=EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs
Tonkeeper web link
https://app.tonkeeper.com/transfer/saint.ton?amount=1000000&jetton=EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs
MyTonWallet
https://my.tt/transfer/UQDYzZmfsrGzhObKJUw4gzdeIxEai3jAFbiGKGwxvxHinf4K?amount=1000000&jetton=EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs
Find more wallet-specific features in the documentation: To generate a transaction link, the service must obtain the account address, logical time (lt), and transaction hash by calling the getTransactions method. Using these values, Tonviewer, Tonscan, and Toncoin Explorer render the transaction page according to the following formats respectively:

Tonviewer

Mainnet

Tonviewer Mainnet link
https://tonviewer.com/transaction/<hash as hex>
Tonviewer Mainnet link example
https://tonviewer.com/transaction/aee8d185a0c8f73c787bf1872ee9659ac53ce11a90b16b384856a7821eff8c29

Testnet

Tonviewer Testnet link
https://testnet.tonviewer.com/transaction/<hash as hex>
Tonviewer Testnet short link example
https://testnet.tonviewer.com/transaction/61ef8fac43edf408fcc041aa8afaec14ac2c4f68faafe6eb18c50a921697d2f6

Tonscan

Mainnet

Tonscan Mainnet link
https://tonscan.org/tx/<lt as int>:<hash as base64url>:<account address>
Tonscan Mainnet link example
https://tonscan.org/tx/63333243000002:rujRhaDI9zx4e_GHLullmsU84RqQsWs4SFangh7_jCk:Ef8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM0vF

Testnet

Tonscan Testnet link
https://testnet.tonscan.org/tx/<lt as int>:<hash as base64url>:<account address>
Tonviewer Testnet link example
https://testnet.tonscan.org/tx/40988257000002:Ye-PrEPt9Aj8wEGqivrsFKwsT2j6r-brGMUKkhaX0vY:kf8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM_BP

Toncoin explorer

Mainnet

Toncoin Mainnet link
https://explorer.toncoin.org/transaction?account=<account address>&lt=<lt as int>&hash=<transaction uppercase hex>
Toncoin Mainnet link example
https://explorer.toncoin.org/transaction?account=Ef8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM0vF&lt=63333243000002&hash=AEE8D185A0C8F73C787BF1872EE9659AC53CE11A90B16B384856A7821EFF8C29

Testnet

Toncoin Testnet link
https://test-explorer.toncoin.org/transaction?account=<account address>&lt=<lt as int>&hash=<transaction uppercase hex>
Toncoin Testnet link example
https://test-explorer.toncoin.org/transaction?account=Ef8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM0vF&lt=40988257000002&hash=61EF8FAC43EDF408FCC041AA8AFAEC14AC2C4F68FAAFE6EB18C50A921697D2F6