Skip to main content
All options of new HotKit(options) (HotKitOptions). All are optional; the kit needs no API key.

Custom RPCs

rpc takes your endpoints per chain, in failover order. They replace the defaults of that chain (list a default after yours if you want it as a fallback); chains you leave out keep their defaults. An endpoint is a URL or { url, headers }, and its headers are sent to that endpoint only, so a provider key never reaches another node.
What the URL is for each chain: The overrides are process-wide (rpcEndpoints in @hot-labs/kit/core). Read the effective list with rpcEndpoints.get(chain).

Storage

The kit keeps wallet sessions (kit:<connector id> keys), the last bridge pair, activity and similar state in a DataStorage:
Built in:
  • LocalStorage (default): window.localStorage.
  • IndexedDBStorage: IndexedDB, for larger state.
  • ParentStorage: the storage of a parent window (the app runs in an iframe of the HOT Wallet). Fail-closed: calls throw StorageUnavailableError until the parent answered.
Some values are sensitive: a HotCraft trading key is stored in plain text. Pass a storage that encrypts or scopes the data if that matters for your app. The 1Click refresh token is kept in sessionStorage, its access token in memory.

Endpoints

Every endpoint the kit uses by default. The only backend is hex-api (hex-api.app); nothing goes to HOT Wallet’s backend, and no request carries a key of yours unless you put one in rpc.
For production traffic on TON, pass your own tonapi key: the keyless tier is rate limited.

Process-wide settings

api, rpcEndpoints, tokens, chains and the 1Click client are module-level singletons shared by every HotKit in the same JavaScript realm. Each new HotKit() overwrites, when given, the rpc overrides it names and the oneClick, marketRelay and openExternal settings; chains passed to one kit are registered for all. The UI defaults (ui.presentation, ui.theme) are process-wide too. Create one kit per app.

Version