> ## Documentation Index
> Fetch the complete documentation index at: https://docs.phantom.com/llms.txt
> Use this file to discover all available pages before exploring further.

# FAQ

> Common questions about Phantom Connect, SDKs, wallet integration, and developer tools

## Phantom Connect and SDKs

### What is Phantom Connect?

Phantom Connect is the recommended way to integrate Phantom into your app. It provides a unified authentication experience using social login (Google or Apple) or browser extension connection. Phantom Connect is available through our SDKs:

* [React SDK](/sdks/react-sdk/index) for React web apps
* [React Native SDK](/sdks/react-native-sdk/index) for mobile apps
* [Browser SDK](/sdks/browser-sdk/index) for vanilla JavaScript

### What's the difference between embedded and extension wallets?

**Embedded wallets** are created through Phantom Connect using social login (Google or Apple). Users don't need to install any browser extension—the wallet is managed by Phantom and accessible across devices.

**Extension wallets** are traditional self-custody wallets where users install the Phantom browser extension or mobile app and manage their own recovery phrase.

Phantom Connect supports both. Configure the `providers` array on the SDK with `"google"` and/or `"apple"` to create embedded wallets via social login, and add `"injected"` to let users connect their installed Phantom browser extension or other injected wallet.

### Which SDK should I use?

| Your app type                         | Recommended SDK                                  |
| ------------------------------------- | ------------------------------------------------ |
| React web app                         | [React SDK](/sdks/react-sdk/index)               |
| Next.js app                           | [React SDK](/sdks/react-sdk/index)               |
| React Native / Expo mobile app        | [React Native SDK](/sdks/react-native-sdk/index) |
| Vanilla JavaScript / other frameworks | [Browser SDK](/sdks/browser-sdk/index)           |

### Do I need to set up Phantom Portal?

Yes. Before using any Phantom Connect SDK, you need to:

1. [Create an account](/phantom-portal/create-account) in Phantom Portal
2. [Create an app](/phantom-portal/create-app) and configure your branding
3. [Verify your domain](/phantom-portal/verify-domain)
4. [Get your App ID](/phantom-portal/get-app-id)

### Which blockchains does Phantom Connect support?

Phantom Connect supports **Solana**, **Ethereum**, **Base**, **Polygon**, **Bitcoin**, and **Sui**. You can enable multiple chains simultaneously by configuring `addressTypes` in your SDK setup.

### Can users connect with both social login and extension?

Yes. Phantom Connect handles both authentication methods. When a user connects, they can choose to sign in with Google/Apple (embedded wallet) or connect their existing Phantom extension wallet.

## Browser extension integration

### Why can't I access Phantom on my website?

Phantom will only [inject its provider](/solana/detecting-the-provider) into websites that begin with `https://`, or if the host is `localhost` or `127.0.0.1`. If your website only uses `http://`, Phantom will not inject its provider and you will not be able to access the methods found at `window.phantom`. Encrypting your web traffic and upgrading to `https://` will restore functionality.

Phantom will also not inject its provider into any [iframe](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe).

<Tip>
  For new integrations, we recommend using [Phantom Connect SDKs](/wallet-sdks-overview) instead of directly accessing the browser extension provider. The SDKs handle provider detection, connection state, and authentication automatically.
</Tip>

### Are hardware wallets supported?

Yes, Phantom currently supports [Ledger](https://www.ledger.com/) hardware wallets and requires no special treatment on the application side.

## Tokens and NFTs

### Why isn't my token displaying properly?

Phantom supports the [Token Metadata Standard](https://developers.metaplex.com/token-metadata/token-standard) established by [Metaplex](https://www.metaplex.com/). When displaying tokens, Phantom will first [categorize](/best-practices/tokens/token-display) them according to their [TokenStandard](https://developers.metaplex.com/token-metadata/token-standard). If a token is considered `Fungible`, Phantom will display it on the [Home tab](/best-practices/tokens/home-tab-fungibles). Otherwise, Phantom will display it as a [Collectible](/best-practices/tokens/collectibles-nfts-and-semi-fungibles). For more details, see [Display tokens on Solana](/best-practices/tokens/token-display).

### 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 can display, see [Supported media types](/best-practices/tokens/supported-media-types).

## Wallet behavior

### How does Phantom import wallet addresses?

When importing addresses from an existing recovery phrase (also known as a 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 (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](https://docs.solana.com/terminology#lamport) it currently owns.

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

When transferring SPL tokens, Phantom will first double check if a token account exists for the recipient you are sending to. If one does not exist, Phantom will help you create an Associated Token Account on the recipient's behalf. To do this check, Phantom calls a deployment of the [Serum Assert Owner](https://github.com/project-serum/serum-dex/tree/6138ca98280f6433deecde560f3d23cc4a749bae/assert-owner) program. The program address of this deployment is `DeJBGdMFa1uynnnKiwrVioatTuHmNLpyFKnmB5kaFdzQ` and is available on Solana's Devnet, Testnet, and Mainnet. This program has been in use since 2021. It was deployed by the Phantom team to keep this program address consistent across networks.

## Troubleshooting

### Why am I seeing a "new domain" warning?

When your app or website is newly launched, Phantom may show users a warning that the domain is new or has not been reviewed. This warning typically disappears automatically after a few days. If the warning persists for more than a week, see [Domain and transaction warnings](/developer-powertools/domain-and-transaction-warnings) for next steps.

### Why is my transaction showing a security warning?

If Phantom can't accurately simulate a transaction, users may see a warning message. This can happen when:

* The transaction has multiple signers
* The transaction approaches Solana's size limit
* The transaction would fail during simulation

See [Domain and transaction warnings](/developer-powertools/domain-and-transaction-warnings) for detailed guidance on resolving these warnings.

### How do I debug my app in Phantom's mobile browser?

You can debug mobile web apps using your desktop browser's developer tools. See [Mobile web debugging](/developer-powertools/mobile-web-debugging) for step-by-step instructions for iOS and Android.

## Need more help?

<CardGroup cols={2}>
  <Card title="Developer support" icon="life-ring" href="https://docs.google.com/forms/d/e/1FAIpQLSeHWETFkEJbHQCF-lnl1AHmVQPuyfC0HbnxjDjIp6VYV1sBZQ/viewform">
    Contact Phantom developer support
  </Card>

  <Card title="Developer announcements" icon="bullhorn" href="https://t.me/+R0vUw_QWSO9lNjlh">
    Join our Telegram for updates
  </Card>
</CardGroup>
