@cartridge/connector
v0.14.0
Published
Cartridge Controller Connector
Downloads
14,499
Readme
@cartridge/connector
Cartridge Controller registration for Starknet Start and other wallet-standard libraries.
Why this package needs to be instantiated
The Cartridge Controller is iframe-based and requires per-app configuration (chains, paymaster, preset, etc.). Unlike browser-extension wallets, it cannot auto-inject itself at page load — the dapp must construct it once at app startup.
When ControllerConnector is instantiated, it:
- Sets
window.starknet_controllerso legacywindow.starknet_*discovery finds it. - Calls
@wallet-standard/wallet'sregisterWallet(...)so any wallet-standard consumer (e.g.starknet-startvia@starknet-io/get-starknet-core) discovers it through the standard event channel.
After that, discovery and disconnect work without further setup.
Integration paths
Starknet Start
import ControllerConnector from "@cartridge/connector";
import { mainnet } from "@starknet-start/chains";
import { publicProvider } from "@starknet-start/providers";
import { StarknetConfig } from "@starknet-start/react";
new ControllerConnector(options);
<StarknetConfig chains={[mainnet]} provider={publicProvider()}>
<App />
</StarknetConfig>;Instantiate ControllerConnector once at app startup with your config. You do
not pass it to StarknetConfig; the constructor registers Cartridge with
wallet-standard discovery.
For recommendedWallets lists, use id: "controller".
Vanilla get-starknet / wallet-standard
Same pattern — instantiating ControllerConnector registers the wallet via
@wallet-standard/wallet.
controller.asWalletStandard() is also exposed on the underlying
ControllerProvider for callers that want the WalletWithStarknetFeatures
wrapper directly without going through discovery.
