Skip to main content

Options

chipi(options) is the same as new ChipiConnector(options).

Window registration

Creating a ChipiConnector puts a get-starknet wallet object on window.starknet_chipi (id "chipi") and dispatches a starknet:announceWallet event, again on each starknet:requestWallets. Code that scans window.starknet* (get-starknet v4, get-starknet-discovery’s injected scan) then finds Chipi without importing this package.
  • Nothing is registered by installing the package, only by creating a connector.
  • register: false opts out. It is a no-op during SSR.
  • disconnect() removes the object; the next connect() adds a new one.
  • The connector never writes window.starknet. It replaces whatever is on window.starknet_chipi while it is registered, and on removal deletes only its own object.

Passive calls

While no wallet window is open (before connect(), or after the user closed it), the connector answers these calls itself and does not open the popup. Wallet scanners send them at page load. Once the window is open, they go to the wallet. wallet_requestAccounts without silent_mode: true opens the popup, so send it from a click. Since 0.5.0; before that, these calls tried to open the popup outside a click, which the browser blocked.

Events

  • Account and network changes in the wallet reach the dApp as starknet-react change events ({ account, chainId }). An empty account list (wallet locked or signed out) is a disconnect.

Errors

The connector rejects with an Error. Check err.code first, then err.message. The wallet’s numeric codes are listed in Security model: 113, 114, 115, 116 and 163.

Requests in flight

Each request is posted to the wallet right away and matched to its answer by id. Several can be in flight at once: the connector neither queues nor rejects them. If the wallet page reloads (for example after sign-in) and announces itself again, unanswered requests are sent again with the same id. Serialize prompts in your dApp anyway; Bramble, for one, allows 5 pending prompts per site.

Wallet Standard

get-starknet v5 and v6 (@starknet-io/get-starknet-discovery) and other Wallet Standard apps discover wallets through wallet-standard:register-wallet. Register Chipi once, on the client:
The wallet exposes starknet:walletApi, standard:connect, standard:disconnect and standard:events on chain starknet:0x534e5f4d41494e (mainnet), backed by the same popup. connect({ silent: true }) never opens the popup. createChipiStandardWallet() returns the wallet without registering it. Its default name is "Chipi"; the connector’s is "Connect with Chipi". How get-starknet-discovery (5.0.0 and 6.0.6, same code) builds its list in createStore():
  • Wallet Standard wallets are added whenever they register.
  • window.starknet* objects are scanned once, when createStore() runs, and wrapped as injected wallets. Entries are de-duplicated by name, and a Wallet Standard entry wins.
So Bramble, which has no Wallet Standard registration, is listed only if window.starknet_bramble exists when createStore() runs. And if a page creates both a ChipiConnector and the Wallet Standard wallet before the store, it lists two Chipi entries ("Chipi" and "Connect with Chipi"): pass register: false to the connector, or give both the same name.

Compatibility and limits

  • @starknet-react/core >= 3 (peer), tested against 5.0.3. starknet >= 8.1.2 (peer). The Wallet Standard wallet needs neither.
  • Starknet mainnet only.
  • Popup only (external dApps). An in-app-browser (“parent”) mode is in the transport but not exposed.

Package

✅ Verified against the SDK source on 2026-10-12.