Skip to main content

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.

The window.phantom.bitcoin provider will be deprecated in an upcoming release. Please plan to update any integrations that rely on this API.
Phantom’s browser extension and mobile in-app browser will both inject a phantom object into the window of any web application the user visits, provided that site is using https://, on localhost, or is 127.0.0.1. Phantom will not inject the provider into iframes or sites using http://. If a phantom object exists, Bitcoin and Ordinals dapps can interact with Phantom via the API found at window.phantom.bitcoin. To detect if Phantom is installed, an application should check for an additional isPhantom flag like so:
const isPhantomInstalled = window?.phantom?.bitcoin?.isPhantom
If Phantom is not installed, we recommend you redirect your users to our website https://phantom.com/. Altogether, this may look like the following:
const getProvider = () => {
  if ('phantom' in window) {
    const anyWindow: any = window;
    const provider = anyWindow.phantom?.bitcoin;
   
    if (provider && provider.isPhantom) {
      return provider;
    }
  }

  window.open('https://phantom.com/', '_blank');
};
When adding a Phantom button to your dapp’s wallet modal, we recommend using the name “Phantom” with an SVG/PNG icon, which you can find in Logos and assets. An example Phantom button in a wallet modal