Skip to main content

Core Extension

Core Extension is the browser-installed Core wallet and the surface most dapp integrations target. Architecturally it is three cooperating pieces, and knowing them explains most integration behaviour you'll observe:

  • The inpage script runs in every page and exposes the EIP-1193 providerwindow.avalanche, the EIP-6963 announcements, and the shared window.ethereum.
  • The content script relays messages between the page and the extension, isolated from the page's JavaScript.
  • The service worker is the wallet proper: it holds sessions, evaluates permissions, orchestrates approvals, and signs. Every request you make ends here.

Two practical consequences:

  1. The provider is a proxy. Method calls serialize across the content-script boundary; responses come back asynchronously. Nothing sensitive — keys, seed material — ever exists in the page context.
  2. The service worker sleeps. Manifest V3 workers stop when idle and restart on demand. Core persists connection state, so this is invisible to dapps beyond an occasional first-request latency.

What's documented where

TopicPage
Connecting and permissionsConnecting to dapps
Networks and custom RPCNetwork management
LedgerHardware wallets
Sessions with mobile/desktop dappsWalletConnect
What users see when you send a transactionTransaction approval
Confidential token supportEncrypted ERC-20s