Step-by-step

  1. Confirm the mint on a Solana explorer you typed. Solscan (or equivalent) → mint → program. Token-2022 vs Tokenkeg. Ignore ticker-only DMs.
  2. Receive on Solana in GaurdWallet. Share the Solana public key for native SOL. For tokens, the first receive/swap may create an ATA and spend extra SOL.
  3. Swap same-chain via Jupiter if you need another SPL. Exchange will not bridge to Ethereum. Keep SOL for fees and rent.
SPL / Token-2022 receive check

Solana tokens live in Associated Token Accounts. GaurdWallet lists SPL including Token-2022; a missing ATA is not the same as a zero ERC-20 balance.

An ATA is not an ERC-20 balance row

On Ethereum the token lives at a contract and your 0x is the owner mapping. On Solana each token account is a separate address derived from owner + mint + program. Our tests require Token-2022 ATA derivation to use the Token-2022 program id — mixing programs is how deposits vanish from a UI.

AssetWhere it sits
SOLWallet pubkey — no ATA
Classic SPLATA under Token program
Token-2022ATA under Token-2022 program
Warning

Transfer-fee and confidential-transfer extensions can surprise you. If a mint withholds tokens, that is mint policy, not GaurdWallet taking a cut. We do not markup network fees.

Jupiter and product limits

Same-chain swaps via Jupiter, proxied. No Solana↔EVM. RPC is /api/rpc/solana. Path is Phantom-compatible SLIP-0010.

ATA(owner, mint, tokenProgram)
tokenProgram = Tokenkeg  OR  Token-2022 id
Exchange     = Jupiter same-chain only
Tip

If a swap created the ATA, the extra SOL was rent, not a hidden GaurdWallet fee. Related: Jupiter Solana swaps.

FAQ

Can I add a Token-2022 mint by 0x address? No. Solana mints are base58. Fetch on Solana in Settings, not on Ethereum.

Why did Phantom show a token GaurdWallet did not? Unlisted mint — add it. Or Token-2022 UI lag. Compare the mint, not the emoji.

Does Token-2022 work with Exchange? If Jupiter routes it. A quote failure is Could not fetch a quote, not a seed problem.