How kasware-wallet/extension works
KasWare is a Kaspa browser-extension wallet. A dApp request enters through the page-provider bridge, is routed by the extension background to a provider method, and reaches wallet operations; the wallet also uses OpenAPI services. Users manage accounts and settings, inspect assets, and create or approve transactions in the extension UI. The graph preserves major KRC-20, NFT/KNS, and swap capabilities visible in the source tree. Some UI-to-background and external-service connections are inferred from the product shape, so they are dashed and uncited.
Main entry points: state/index.ts UI state · background/index.ts Background router · wallet.ts Wallet operations · openapi.ts Kaspa API access
Components 21
Extension bridge
- Page provider
src/content-script/pageProvider/index.ts - Content script
src/content-script/index.ts - Background router
src/background/index.ts - Provider methods
src/background/controller/provider/controller.ts
Wallet core
- Wallet operations
src/background/controller/wallet.ts - Keyrings
src/background/service/keyringclass - Preferences
src/background/service/preference.ts - Site permissions
src/background/service/permission.ts - Kaspa API access
src/background/service/openapi.ts - Extension storage
src/background/webapi/storage.ts
Wallet interface
- Extension UI
src/ui/index.tsx - UI state
src/ui/state/index.ts - Account screens
src/ui/pages/Account - Transaction screens
src/ui/pages/Wallet - Approval screens
src/ui/pages/Approval
Asset features
- Wallet asset views
src/ui/pages/Main/WalletTabScreen - KRC-20
src/ui/pages/KRC20 - NFT and KNS
src/ui/pages/Main/kns-kspr - Swap features
src/ui/state/transactions/chainge
Other components
- dApp
- Kaspa RPC services
Connections 20
- dApp → Page provider: sends requests
- Content script → Page provider: loads provider
- Background router → Provider methods: routes requests
src/background/index.ts - Provider methods → Wallet operations: calls wallet
src/background/controller/provider/controller.ts - Background router → Site permissions: checks connections
src/background/index.ts - Background router → Kaspa API access: initializes
src/background/index.ts - Background router → Extension storage: loads and saves
src/background/index.ts - Wallet operations → Kaspa API access: uses API service
src/background/controller/wallet.ts - Extension UI → UI state: initializes store
src/ui/index.tsx - Extension UI → Background router: requests wallet methods
- Account screens → UI state: updates account state
- Transaction screens → UI state: uses transaction state
- Approval screens → UI state: uses approval state
- Wallet asset views → UI state: uses wallet state
- KRC-20 → Wallet operations: requests token operations
- NFT and KNS → Wallet asset views: presents collectibles
- Swap features → UI state: uses transaction state
- Kaspa API access → Kaspa RPC services: communicates with
- Wallet operations → Keyrings: uses keyrings
src/background/controller/wallet.ts - UI state → Preferences: syncs settings