Are hardware wallets supported?

Yes, Phantom currently supports Ledger and requires no special treatment on the application side.

Why isn't my token displaying properly?

If an SPL token's On-Chain Metadata Structure contains a uri field, Phantom will consider it to be non-fungible. Otherwise, Phantom will consider the token to be fungible. Creators of Non-Fungible tokens (NFTs) should ensure that their URI JSON Schema properly specifies the item's file extension with the ?ext= query parameter. Creators of Fungible Tokens should ensure that their token's metadata is merged into the Solana Token List.

What types of NFTs are supported?

Phantom supports a range of NFT media types including images, audio files, video files, and 3d models. At this time, Phantom does not support HTML files. For a full list of the types of NFTs that Phantom will display, please reference Supported Media Types.

How does Phantom import wallet addresses?

When importing addresses from an existing seed phrase, Phantom will scan for 20 addresses in each of our three supported derivation paths (bip44change, bip44, and a deprecated path), for a total of 60 addresses. For the convenience of the user, Phantom will filter this list of addresses down to wallets that have ever had signatures (i.e. have ever been used). Phantom will then sort this filtered list based on how many signatures each wallet has had plus the amount of lamports it currently owns.

Why does Phantom prepend an additional instruction on standard SPL token transfers?

When transferring SPL tokens, Phantom will first double check that the owner of the receiving token account is the address you expect to send to. To do this, Phantom calls a custom deployment of the Serum Assert Owner program. The program address of this deployment is DeJBGdMFa1uynnnKiwrVioatTuHmNLpyFKnmB5kaFdzQ and is available on Solana's Devnet, Testnet, and Mainnet.