Warnings › A swap paying someone else
A swap that pays someone else
Published
A swap instruction names the account its output goes to. A dapp that wants to pay someone on your behalf sets it to theirs; a compromised or malicious front end can do the same without telling you. A balance preview shows your tokens leaving and nothing arriving.
What SignLens shows
Where the router says where its output goes, SignLens checks that it is one of your accounts and warns when it is not. In this example the signer receives the USDT first and swaps it for another account, which may well be a payment it meant to make; SignLens cannot know that, so it says where the output goes:
2 actions
- Transfer 83.838802 USDT from
5Xwc…YDxctoHa2P…zHKY - Swap 83.838802 USDT for ≥ 83.290054 USDG via Titan
What SignLens found
- High The swap's output goes to an account that is not yours
What this does
- You receive 83.838802 USDT into Your USDT account (
Ha2P…zHKY) from5XwccWFyzuFMZcqHSCeo4pM3JRQpZ4SrD3ZPsGmxYDxc - You send 83.838802 USDT from Your wallet (
pay6…g1d2) to Titan swap aggregator (T1TA…XvGT) - Transfer ≥ 83.290054 USDG from Titan swap aggregator (
T1TA…XvGT) toHeLhJeWqkBcngp2uK1xcAnim6bEHMEi5oKxbZDC6sg94 - Create Your USDT account (
Ha2P…zHKY), managed by Token program (Toke…Q5DA), depositing 0.00148844 SOL unless it already exists - Create 2U5Z…JTkW's USDT account (
6DvM…2JgD), managed by Token program (Toke…Q5DA), depositing 0.00148844 SOL unless it already exists - Create BS31…1SRE's USDT account (
E6fR…YgJd), managed by Token program (Toke…Q5DA), depositing 0.00148844 SOL - You pay a fee of 0.000017 SOL
- Valid for about a minute (recent blockhash)
Full text, as the engine prints it
2 actions: Transfer 83.838802 USDT from 5Xwc…YDxc to Ha2P…zHKY; Swap 83.838802 USDT for ≥ 83.290054 USDG via Titan
WARNING: review the findings before approving
Findings:
[HIGH] The swap's output goes to an account that is not yours (instruction 7)
== Transfer tokens | Token program
Amount: 83.838802 USDT
From: 5XwccWFyzuFMZcqHSCeo4pM3JRQpZ4SrD3ZPsGmxYDxc
To: Your USDT account (Ha2P…zHKY)
Authorized by: CLtnbMrwAAKLKujmh8aQcsQz5SKHVyvHCG8PLL1PmJkN
Mint: USDT mint (Es9v…wNYB)
== Swap | Titan swap aggregator (layout read from mainnet transactions, descriptor reviewed 2026-10-15, upgradeable by H92m…4SbB)
Send: 83.838802 USDT
Receive: ≥ 83.290054 USDG
Quoted: 83.708597 USDG
Max slippage: 0.5%
Fee: 0.03%
Fee account (sent token): 2U5Z…JTkW's USDT account (6DvM…2JgD)
Route:
- Deriverse: USDT → USDC (86.04% of what remains)
- program HpNf…jxFq: USDT → SOL
- Tessera V: SOL → USDC
- Riptide: USDC → USDG
From account: Your token account (Ha2P…zHKY)
To account: HeLhJeWqkBcngp2uK1xcAnim6bEHMEi5oKxbZDC6sg94
Instruction: swap_route
== Also [collapsed]
Compute unit limit: 1400000
Compute unit price: 5,000 micro-lamports per compute unit
Create token account if missing: Token account: Your USDT account (Ha2P…zHKY)
Create token account if missing: Owner: Your wallet (pay6…g1d2)
Create token account if missing: Mint: USDT mint (Es9v…wNYB)
Create token account if missing: Rent paid by: Your wallet (pay6…g1d2)
Create token account if missing: Token program: Token program (Toke…Q5DA)
Create token account if missing: Token account: 2U5Z…JTkW's USDT account (6DvM…2JgD)
Create token account if missing: Owner: 2U5ZmdtVLSkAiceviwBnvE2vD2MLvqAMekSjqYuKJTkW
Create token account if missing: Mint: USDT mint (Es9v…wNYB)
Create token account if missing: Rent paid by: Your wallet (pay6…g1d2)
Create token account if missing: Token program: Token program (Toke…Q5DA)
Create token account: Token account: BS31…1SRE's USDT account (E6fR…YgJd)
Create token account: Owner: BS31gingTECkXEj3E16axqeQAbin4r4sZhgkJovz1SRE
Create token account: Mint: USDT mint (Es9v…wNYB)
Create token account: Rent paid by: Your wallet (pay6…g1d2)
Create token account: Token program: Token program (Toke…Q5DA)
== Signers
Fee payer: Your wallet (pay6…g1d2)
Signer: CLtnbMrwAAKLKujmh8aQcsQz5SKHVyvHCG8PLL1PmJkN
== Fee
Total: 0.000017 SOL
Base: 0.00001 SOL
Priority: 0.000007 SOL
Priority basis: 5,000 micro-lamports per compute unit × 1,400,000 compute units requested
Rent deposits: 0.00148844 SOL, or 0.00446532 SOL in all if the accounts this transaction creates when missing do not exist yet; refunded to whoever closes the accounts
== Validity
Expires: in about a minute (recent blockhash)
Effects:
- You receive 83.838802 USDT into Your USDT account (Ha2P…zHKY) from 5XwccWFyzuFMZcqHSCeo4pM3JRQpZ4SrD3ZPsGmxYDxc
- You send 83.838802 USDT from Your wallet (pay6…g1d2) to Titan swap aggregator (T1TA…XvGT)
- Transfer ≥ 83.290054 USDG from Titan swap aggregator (T1TA…XvGT) to HeLhJeWqkBcngp2uK1xcAnim6bEHMEi5oKxbZDC6sg94
- Create Your USDT account (Ha2P…zHKY), managed by Token program (Toke…Q5DA), depositing 0.00148844 SOL unless it already exists
- Create 2U5Z…JTkW's USDT account (6DvM…2JgD), managed by Token program (Toke…Q5DA), depositing 0.00148844 SOL unless it already exists
- Create BS31…1SRE's USDT account (E6fR…YgJd), managed by Token program (Toke…Q5DA), depositing 0.00148844 SOL
- You pay a fee of 0.000017 SOL
- Valid for about a minute (recent blockhash)
Raw: solana v0 (1016 bytes)
digest: 05babedb7513cf0b2b4e9ca6ff2bed7999f64873df5f23958c9f6fefbab2e576
21rP…ztv5, slot 457,270,482. Explained for pay6…g1d2 as the signer, by the SignLens engine 0.3.0, on 2026-11-01. How to read this.What to do
Reject a swap that pays someone else unless paying them is what you asked for.
Other warnings: accounts given away, spending rights, signatures that never expire, lookalike addresses, programs it does not know, multisig approvals you cannot see.
Try it: install SignLens for Chrome or Firefox.