Full Code of cosmology-tech/cosmos-kit for AI

main 2c19960a8290 cached
1907 files
6.0 MB
1.7M tokens
1477 symbols
1 requests
Download .txt
Showing preview only (6,616K chars total). Download the full file or copy to clipboard to get everything.
Repository: cosmology-tech/cosmos-kit
Branch: main
Commit: 2c19960a8290
Files: 1907
Total size: 6.0 MB

Directory structure:
gitextract_s_2c4dhd/

├── .editorconfig
├── .gitattributes
├── .github/
│   └── workflows/
│       ├── docs.yml
│       └── run-tests.yml
├── .gitignore
├── .gitpod.yml
├── .vscode/
│   ├── cosmos-kit.code-workspace
│   └── settings.json
├── INTEGRATING-WALLETS.md
├── LICENSE
├── README.md
├── docs/
│   ├── _meta.json
│   ├── advanced.md
│   ├── cookbook/
│   │   ├── _meta.json
│   │   ├── connect-multi-chains.mdx
│   │   └── sign.mdx
│   ├── get-started.mdx
│   ├── hooks/
│   │   ├── _meta.json
│   │   ├── index.mdx
│   │   ├── use-chain-wallet.mdx
│   │   ├── use-chain.mdx
│   │   ├── use-chains.mdx
│   │   ├── use-iframe.mdx
│   │   ├── use-manager.mdx
│   │   ├── use-modal-theme.mdx
│   │   ├── use-name-service.mdx
│   │   ├── use-wallet-client.mdx
│   │   └── use-wallet.mdx
│   ├── index.mdx
│   ├── integrating-wallets/
│   │   ├── _meta.json
│   │   ├── adding-all-wallets.mdx
│   │   ├── adding-new-wallets.mdx
│   │   ├── compass.mdx
│   │   ├── cosmos-metamask-extension.mdx
│   │   ├── cosmostation.mdx
│   │   ├── exodus.mdx
│   │   ├── fin.mdx
│   │   ├── frontier.mdx
│   │   ├── index.mdx
│   │   ├── keplr.mdx
│   │   ├── leap-capsule-social-login.mdx
│   │   ├── leap-metamask-comos-snap.mdx
│   │   ├── leap.mdx
│   │   ├── ledger.mdx
│   │   ├── ninji.mdx
│   │   ├── oko.mdx
│   │   ├── okx.mdx
│   │   ├── omni.mdx
│   │   ├── shell.mdx
│   │   ├── station.mdx
│   │   ├── trust.mdx
│   │   ├── vectis.mdx
│   │   ├── web3auth.mdx
│   │   └── xdefi.mdx
│   ├── migration-to-v2.mdx
│   └── provider/
│       ├── _meta.json
│       └── chain-provider.mdx
├── examples/
│   ├── cosmos-kit-lite-nextjs-pages-router-example/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── components/
│   │   │   └── custom-modal.tsx
│   │   ├── next-env.d.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── cosmos-kit-nextjs-app-router-example/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── components.json
│   │   ├── eslint.config.mjs
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── postcss.config.mjs
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── globals.css
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── components/
│   │   │   │   ├── connect-wallet.tsx
│   │   │   │   ├── cosmos-kit-provider.tsx
│   │   │   │   └── ui/
│   │   │   │       ├── badge.tsx
│   │   │   │       ├── button.tsx
│   │   │   │       └── card.tsx
│   │   │   └── lib/
│   │   │       └── utils.ts
│   │   └── tsconfig.json
│   └── cosmos-kit-nextjs-pages-router-example/
│       ├── .eslintrc.json
│       ├── .gitignore
│       ├── CHANGELOG.md
│       ├── LICENSE
│       ├── README.md
│       ├── components/
│       │   ├── badge.tsx
│       │   ├── button.tsx
│       │   ├── card.tsx
│       │   ├── chain-wallet-card.tsx
│       │   ├── chains-tx-wallet.tsx
│       │   ├── custom-connected.tsx
│       │   ├── dropdown-menu.tsx
│       │   ├── index.ts
│       │   ├── layout.tsx
│       │   ├── mode-toggle.tsx
│       │   ├── react/
│       │   │   ├── address-card.tsx
│       │   │   ├── astronaut.tsx
│       │   │   ├── chain-card.tsx
│       │   │   ├── handleChangeColor.tsx
│       │   │   ├── index.ts
│       │   │   ├── send-tokens-card.tsx
│       │   │   ├── user-card.tsx
│       │   │   ├── wallet-connect.tsx
│       │   │   └── warn-block.tsx
│       │   ├── theme-provider.tsx
│       │   └── types.tsx
│       ├── components.json
│       ├── config/
│       │   ├── seo.js
│       │   └── site.js
│       ├── hooks/
│       │   └── index.ts
│       ├── lib/
│       │   └── utils.ts
│       ├── next.config.js
│       ├── package.json
│       ├── pages/
│       │   ├── _app.tsx
│       │   ├── add-chain.tsx
│       │   ├── add-cw20.tsx
│       │   ├── chain/
│       │   │   ├── [name].tsx
│       │   │   └── query.tsx
│       │   ├── cosmoshub.tsx
│       │   ├── endpoint.tsx
│       │   ├── event.tsx
│       │   ├── gov.tsx
│       │   ├── iframe-alert.tsx
│       │   ├── iframe.tsx
│       │   ├── index.tsx
│       │   ├── ledger.tsx
│       │   ├── ns.tsx
│       │   ├── ns2.tsx
│       │   ├── test.tsx
│       │   ├── tx.tsx
│       │   ├── use-chain-wallet.tsx
│       │   ├── use-chain.tsx
│       │   ├── use-chains.tsx
│       │   ├── use-wallet-client.tsx
│       │   ├── use-wallet.tsx
│       │   ├── user-agent.tsx
│       │   ├── wallet-manager/
│       │   │   ├── index.tsx
│       │   │   ├── main-wallets.tsx
│       │   │   ├── wallet-manager.tsx
│       │   │   ├── wallet-operate.tsx
│       │   │   ├── wallet-repo.tsx
│       │   │   └── wallet-repos.tsx
│       │   └── wc.tsx
│       ├── postcss.config.js
│       ├── seo/
│       │   ├── prepare.sh
│       │   └── seo.js
│       ├── style/
│       │   └── global.css
│       ├── tailwind.config.js
│       ├── tsconfig.json
│       └── wc/
│           └── client.ts
├── jest.config.js
├── lerna.json
├── package.json
├── packages/
│   ├── core/
│   │   ├── .editorconfig
│   │   ├── .eslintignore
│   │   ├── .eslintrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .npmrc
│   │   ├── .prettierrc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── bases/
│   │   │   │   ├── chain-wallet.test.ts
│   │   │   │   ├── main-wallet.test.ts
│   │   │   │   ├── state.test.ts
│   │   │   │   └── wallet.test.ts
│   │   │   ├── manager.test.ts
│   │   │   ├── name-serveice-class.test.ts
│   │   │   ├── repository.test.ts
│   │   │   └── utils/
│   │   │       ├── check.test.ts
│   │   │       ├── convert.test.ts
│   │   │       ├── endpoint.test.ts
│   │   │       ├── error.test.ts
│   │   │       ├── logger.test.ts
│   │   │       ├── map.test.ts
│   │   │       ├── math.test.ts
│   │   │       ├── name-service.test.ts
│   │   │       ├── session.test.ts
│   │   │       └── status.test.ts
│   │   ├── index.ts
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── bases/
│   │   │   │   ├── chain-wallet.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── main-wallet.ts
│   │   │   │   ├── state.ts
│   │   │   │   └── wallet.ts
│   │   │   ├── config.ts
│   │   │   ├── cosmiframe/
│   │   │   │   ├── constants.ts
│   │   │   │   ├── cosmiframe.ts
│   │   │   │   ├── extension/
│   │   │   │   │   ├── chain-wallet.ts
│   │   │   │   │   ├── client.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── main-wallet.ts
│   │   │   │   │   ├── registry.ts
│   │   │   │   │   └── types.ts
│   │   │   │   └── index.ts
│   │   │   ├── index.ts
│   │   │   ├── manager.ts
│   │   │   ├── name-service.ts
│   │   │   ├── repository.ts
│   │   │   ├── types/
│   │   │   │   ├── chain.ts
│   │   │   │   ├── common.ts
│   │   │   │   ├── hook.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── manager.ts
│   │   │   │   ├── view.ts
│   │   │   │   └── wallet.ts
│   │   │   └── utils/
│   │   │       ├── check.ts
│   │   │       ├── convert.ts
│   │   │       ├── endpoint.ts
│   │   │       ├── error.ts
│   │   │       ├── index.ts
│   │   │       ├── logger.ts
│   │   │       ├── map.ts
│   │   │       ├── math.ts
│   │   │       ├── name-service.ts
│   │   │       ├── session.ts
│   │   │       └── status.ts
│   │   ├── test-utils/
│   │   │   ├── mock-extension/
│   │   │   │   ├── constant.ts
│   │   │   │   ├── extension/
│   │   │   │   │   ├── chain-wallet.ts
│   │   │   │   │   ├── client.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── main-wallet.ts
│   │   │   │   │   ├── registry.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── mock.ts
│   │   │   └── mocker/
│   │   │       ├── index.ts
│   │   │       └── setup.ts
│   │   ├── tsconfig.esm.json
│   │   └── tsconfig.json
│   ├── cosmos-kit/
│   │   ├── .editorconfig
│   │   ├── .eslintignore
│   │   ├── .gitignore
│   │   ├── .npmrc
│   │   ├── .prettierrc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── wallets.ts
│   │   ├── test/
│   │   │   └── wallets.test.ts
│   │   ├── tsconfig.esm.json
│   │   └── tsconfig.json
│   ├── docs/
│   │   ├── .gitignore
│   │   ├── .markdownlint.json
│   │   ├── CHANGELOG.md
│   │   ├── components/
│   │   │   ├── card.tsx
│   │   │   ├── hooks.tsx
│   │   │   ├── index.tsx
│   │   │   ├── react/
│   │   │   │   ├── address-card.tsx
│   │   │   │   ├── astronaut.tsx
│   │   │   │   ├── chain-card.tsx
│   │   │   │   ├── choose-chain.tsx
│   │   │   │   ├── handleChangeColor.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── user-card.tsx
│   │   │   │   ├── wallet-connect.tsx
│   │   │   │   └── warn-block.tsx
│   │   │   ├── types.tsx
│   │   │   └── wallet.tsx
│   │   ├── config/
│   │   │   ├── seo.js
│   │   │   └── site.js
│   │   ├── next-env.d.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _meta.json
│   │   │   ├── advanced.md
│   │   │   ├── cookbook/
│   │   │   │   ├── _meta.json
│   │   │   │   ├── connect-multi-chains.mdx
│   │   │   │   └── sign.mdx
│   │   │   ├── get-started.mdx
│   │   │   ├── hooks/
│   │   │   │   ├── _meta.json
│   │   │   │   ├── index.mdx
│   │   │   │   ├── use-chain-wallet.mdx
│   │   │   │   ├── use-chain.mdx
│   │   │   │   ├── use-chains.mdx
│   │   │   │   ├── use-iframe.mdx
│   │   │   │   ├── use-manager.mdx
│   │   │   │   ├── use-modal-theme.mdx
│   │   │   │   ├── use-name-service.mdx
│   │   │   │   ├── use-wallet-client.mdx
│   │   │   │   └── use-wallet.mdx
│   │   │   ├── index.mdx
│   │   │   ├── integrating-wallets/
│   │   │   │   ├── _meta.json
│   │   │   │   ├── adding-all-wallets.mdx
│   │   │   │   ├── adding-new-wallets.mdx
│   │   │   │   ├── aria.mdx
│   │   │   │   ├── bitgetwallet.mdx
│   │   │   │   ├── cdc.mdx
│   │   │   │   ├── compass.mdx
│   │   │   │   ├── cosmos-metamask-extension.mdx
│   │   │   │   ├── cosmostation.mdx
│   │   │   │   ├── exodus.mdx
│   │   │   │   ├── fin.mdx
│   │   │   │   ├── foxwallet.mdx
│   │   │   │   ├── frontier.mdx
│   │   │   │   ├── galaxy-station.mdx
│   │   │   │   ├── imtoken.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── keplr.mdx
│   │   │   │   ├── leap-capsule-social-login.mdx
│   │   │   │   ├── leap-metamask-comos-snap.mdx
│   │   │   │   ├── leap.mdx
│   │   │   │   ├── ledger.mdx
│   │   │   │   ├── ninji.mdx
│   │   │   │   ├── okto.mdx
│   │   │   │   ├── okx.mdx
│   │   │   │   ├── omni.mdx
│   │   │   │   ├── shell.mdx
│   │   │   │   ├── station.mdx
│   │   │   │   ├── tailwind.mdx
│   │   │   │   ├── trust.mdx
│   │   │   │   ├── vectis.mdx
│   │   │   │   ├── web3auth.mdx
│   │   │   │   └── xdefi.mdx
│   │   │   ├── migration-to-v2.mdx
│   │   │   └── provider/
│   │   │       ├── _meta.json
│   │   │       └── chain-provider.mdx
│   │   ├── public/
│   │   │   └── favicon copy.ico.sb-8992bd4b-4LqWuo
│   │   ├── seo/
│   │   │   ├── prepare.sh
│   │   │   └── seo.js
│   │   ├── styles/
│   │   │   └── globals.css
│   │   ├── theme.config.tsx
│   │   └── tsconfig.json
│   ├── ins/
│   │   ├── .editorconfig
│   │   ├── .eslintignore
│   │   ├── .eslintrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .npmrc
│   │   ├── .prettierrc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.ts
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── __tests__/
│   │   │   │   └── name-service.test.ts
│   │   │   ├── config.ts
│   │   │   ├── index.ts
│   │   │   └── name-service.ts
│   │   ├── tsconfig.esm.json
│   │   └── tsconfig.json
│   ├── react/
│   │   ├── .editorconfig
│   │   ├── .eslintignore
│   │   ├── .eslintrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .npmrc
│   │   ├── .prettierrc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── REACT19_UPGRADE.md
│   │   ├── README.md
│   │   ├── index.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── context/
│   │   │   │   ├── index.ts
│   │   │   │   └── useSelectedWalletContext.tsx
│   │   │   ├── hooks/
│   │   │   │   ├── index.ts
│   │   │   │   └── useModalTheme.ts
│   │   │   ├── index.ts
│   │   │   ├── modal/
│   │   │   │   ├── components/
│   │   │   │   │   ├── Astronaut.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── views/
│   │   │   │   │       ├── Connected.tsx
│   │   │   │   │       ├── Connecting.tsx
│   │   │   │   │       ├── Error.tsx
│   │   │   │   │       ├── NotExist.tsx
│   │   │   │   │       ├── QRCode.tsx
│   │   │   │   │       ├── Rejected.tsx
│   │   │   │   │       ├── WalletList.tsx
│   │   │   │   │       ├── config.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── constant.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── modal.tsx
│   │   │   └── provider.tsx
│   │   ├── tsconfig.esm.json
│   │   └── tsconfig.json
│   ├── react-lite/
│   │   ├── .editorconfig
│   │   ├── .eslintignore
│   │   ├── .eslintrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .npmrc
│   │   ├── .prettierrc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── REACT19_UPGRADE.md
│   │   ├── README.md
│   │   ├── __test__/
│   │   │   ├── useChain.test.tsx
│   │   │   ├── useChainWallet.test.tsx
│   │   │   ├── useChains.test.tsx
│   │   │   ├── useManager.test.tsx
│   │   │   ├── useNameService.test.tsx
│   │   │   ├── useWallet.test.tsx
│   │   │   └── useWalletClient.test.tsx
│   │   ├── index.ts
│   │   ├── jest.config.js
│   │   ├── jest.setup.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── hooks/
│   │   │   │   ├── index.ts
│   │   │   │   ├── useChain.ts
│   │   │   │   ├── useChainWallet.ts
│   │   │   │   ├── useChains.ts
│   │   │   │   ├── useIframe.ts
│   │   │   │   ├── useManager.ts
│   │   │   │   ├── useNameService.ts
│   │   │   │   ├── useWallet.ts
│   │   │   │   └── useWalletClient.ts
│   │   │   ├── index.ts
│   │   │   ├── provider.tsx
│   │   │   └── utils.ts
│   │   ├── test-utils/
│   │   │   ├── chain-provider-wrapper.tsx
│   │   │   ├── custom-render-hook.tsx
│   │   │   └── index.ts
│   │   ├── tsconfig.esm.json
│   │   └── tsconfig.json
│   └── walletconnect/
│       ├── .editorconfig
│       ├── .eslintignore
│       ├── .eslintrc.json
│       ├── .gitignore
│       ├── .npmignore
│       ├── .npmrc
│       ├── .prettierrc.json
│       ├── CHANGELOG.md
│       ├── LICENSE
│       ├── README.md
│       ├── index.ts
│       ├── package.json
│       ├── src/
│       │   ├── chain-wallet.ts
│       │   ├── client.ts
│       │   ├── index.ts
│       │   ├── main-wallet.ts
│       │   ├── types.ts
│       │   └── utils/
│       │       ├── core.ts
│       │       └── index.ts
│       ├── tsconfig.esm.json
│       └── tsconfig.json
├── pnpm-workspace.yaml
├── tsconfig.json
└── wallets/
    ├── arculus/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── arculus-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── arculus.ts
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       ├── registry.ts
    │   │       └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── aria/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── aria-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── aria.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   ├── tsconfig.json
    │   └── tsconfig.standalone.json
    ├── aria-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── aria.ts
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       ├── registry.ts
    │   │       └── types.ts
    │   ├── tsconfig.build.json
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── bitgetwallet/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── bitgetwallet-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── bitget.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── cdcwallet/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── cdcwallet-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── cdcwallet.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── coin98/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── coin98-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── coin98.ts
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── compass/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── compass-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── compass.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── cosmos-extension-metamask/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── cosmos-metamask-extension.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── cosmostation/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── cosmostation-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── cosmostation.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── cosmostation-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── cosmostation.ts
    │   │   ├── index.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       └── registry.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── ctrl/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── ctrl-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── ctrl.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── exodus/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── exodus-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── constants.ts
    │   │   ├── exodus.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── figure-markets/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── figure-markets-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── figure-markets.ts
    │   │   ├── index.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       └── registry.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── fin/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── fin-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── fin.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── foxwallet/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── foxwallet-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── foxwallet.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── frontier/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── frontier-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── frontier.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── galaxy-station/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── galaxy-station-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── galaxy-station.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── galaxy-station-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── galaxy-station.ts
    │   │   ├── index.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       ├── registry.ts
    │   │       └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── gatewallet/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── gatewallet-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── gatewallet.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── imtoken/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── imtoken-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── imToken.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── initia/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── initia-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── type.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── initia.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── keplr/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── keplr-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   └── session.ts
    │   │   ├── index.ts
    │   │   └── keplr.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── keplr-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── keplr.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       └── registry.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── leap/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── leap-capsule-social-login/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── chain-wallet.ts
    │   │   ├── client.ts
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── leap-social.ts
    │   │   ├── main-wallet.ts
    │   │   ├── registry.ts
    │   │   └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── leap-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── leap.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── leap-metamask-cosmos-snap/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── leap-metamask-cosmos-snap.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── leap-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── leap.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       ├── registry.ts
    │   │       └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── ledger/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── ledger.ts
    │   │   └── web-usb-hid/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       ├── registry.ts
    │   │       └── utils.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── ninji/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── ninji-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── ninji.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── oko/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── chain-wallet.ts
    │   │   ├── client.ts
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── main-wallet.ts
    │   │   ├── registry.ts
    │   │   └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── okto-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── okto.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── okxwallet/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── okxwallet-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── okxwallet.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── omni/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── omni-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── omni.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       └── registry.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── owallet/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── owallet-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── owallet.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── owallet-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── owallet.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       ├── registry.ts
    │   │       └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── prax-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   └── registry.ts
    │   │   ├── index.ts
    │   │   └── prax.ts
    │   └── tsconfig.json
    ├── shell/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── shell-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── shell.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── station/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── station-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── station.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── tailwind/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── tailwind-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constants.ts
    │   │   ├── extension/
    │   │   │   ├── index.ts
    │   │   │   ├── utils.ts
    │   │   │   └── wallet.ts
    │   │   ├── index.ts
    │   │   └── tailwind.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── trust/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── trust-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── trust.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── trust-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── trust.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       └── registry.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── vectis/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── vectis-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── vectis.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── vultisig/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── vultisig-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── vultisig.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    └── web3auth/
        ├── .editorconfig
        ├── .eslintignore
        ├── .eslintrc.json
        ├── .gitignore
        ├── .npmignore
        ├── .npmrc
        ├── .prettierrc.json
        ├── CHANGELOG.md
        ├── LICENSE
        ├── README.md
        ├── index.ts
        ├── package.json
        ├── src/
        │   ├── constant.ts
        │   ├── extension/
        │   │   ├── chain-wallet.ts
        │   │   ├── client.ts
        │   │   ├── index.ts
        │   │   ├── main-wallet.ts
        │   │   ├── registry.ts
        │   │   ├── signer.ts
        │   │   ├── types.ts
        │   │   ├── utils.ts
        │   │   └── web3auth.worker.ts
        │   ├── index.ts
        │   └── web3auth.ts
        ├── tsconfig.esm.json
        └── tsconfig.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false


================================================
FILE: .gitattributes
================================================
* text=auto
*.js text eol=lf

================================================
FILE: .github/workflows/docs.yml
================================================
name: Docs

on:
  push:
    branches:
      - main
    paths:
      - "docs/**"
      - ".github/workflows/docs.yaml"

env:
  # Repository specific variables
  REPO_NAME: cosmos-kit
  DOCS_DEST_PATH: pages/cosmos-kit

jobs:
  docs-deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '22'
          enable-global-cache: true

      - name: Clone docs repository
        run: git clone https://x-access-token:${{ secrets.GH_HYPERWEB_PAT }}@github.com/hyperweb-io/docs.hyperweb.io.git external-docs

      - name: Sync the docs and build
        run: |
          rsync -av --delete ./docs/ ./external-docs/${{ env.DOCS_DEST_PATH }}/
          cd external-docs
          yarn install
          yarn export

      - name: Git push
        run: |
          cd external-docs
          git config user.name 'GitHub Action'
          git config user.email 'action@github.com'
          git add .
          if git diff --cached --quiet; then
              echo "No changes to commit."
          else
              git commit -m "Automated: Update ${{ env.REPO_NAME }} documentation"
              git push
          fi



================================================
FILE: .github/workflows/run-tests.yml
================================================
name: Run Tests

on:
  push:

  pull_request:
    types: [opened, reopened]

  workflow_dispatch:

jobs:
  run-tests:
    runs-on: ubuntu-latest
    steps:
      - name: checkout 🛎️
        uses: actions/checkout@v4

      - name: node
        uses: actions/setup-node@v4
        with:
          node-version: '22'

      - name: Install pnpm
        uses: pnpm/action-setup@v4

      - name: Deps
        run: |
          pnpm install
          pnpm run build

      - name: Test
        run: |
          pnpm run test


================================================
FILE: .gitignore
================================================
.DS_Store
.eslintcache
*.log
pnpm-debug.log*
**/node_modules
coverage
packages/**/build
packages/**/main
packages/**/module
packages/**/dist
packages/**/cjs
packages/**/esm
wallets/**/build
wallets/**/main
wallets/**/module
wallets/**/dist
wallets/**/cjs
wallets/**/esm
packages/example/pages/tmp.tsx
packages/example/utils/tmp.ts
.idea
/.npmrc
/.parcel-cache
packages/my-example
wallets/social-login


================================================
FILE: .gitpod.yml
================================================
# This configuration file was automatically generated by Gitpod.
# Please adjust to your needs (see https://www.gitpod.io/docs/introduction/learn-gitpod/gitpod-yaml)
# and commit this file to your remote git repository to share the goodness with others.

# Learn more from ready-to-use templates: https://www.gitpod.io/docs/introduction/getting-started/quickstart

tasks:
  - init: yarn install && yarn run build
    command: yarn run watch




================================================
FILE: .vscode/cosmos-kit.code-workspace
================================================
{
  "folders": [
    {
      "path": "../packages/core/"
    },
    {
      "path": "../packages/docs/"
    },
    {
      "path": "../packages/example/"
    },
    {
      "path": "../packages/ins/"
    },
    {
      "path": "../packages/react/"
    },
    {
      "path": "../packages/react-lite/"
    },
    {
      "path": "../packages/walletconnect/"
    },
    {
      "path": "../public/"
    },
    {
      "path": "../wallets/"
    },

  ],
  "settings": {
    "jest.jestCommandLine": "yarn test"
  }
}


================================================
FILE: .vscode/settings.json
================================================
{
  "editor.quickSuggestions": {
    "comments": "inline",
    "strings": "inline"
  },
  "[markdown]": {
    "editor.quickSuggestions": {
      "other": "on",
      "comments": "inline",
      "strings": "inline"
    }
  },
  "files.associations": {
    "*.mdx": "markdown"
  },
  "editor.formatOnSave": true,
  "[javascriptreact]": {
    "editor.formatOnSave": true
  },
  "[javascript]": {
    "editor.formatOnSave": true
  },
  "[typescriptreact]": {
    "editor.formatOnSave": true
  },
  "[typescript]": {
    "editor.formatOnSave": true
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
  },
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact"
  ],
  "eslint.codeActionsOnSave.mode": "problems",
  "eslint.format.enable": true,
  "eslint.lintTask.enable": true,
  "eslint.onIgnoredFiles": "warn",
  "eslint.workingDirectories": [
    {
      "pattern": "packages/*",
      "!cwd": false
    }
  ],
  "typescript.tsdk": "node_modules/typescript/lib"
}


================================================
FILE: INTEGRATING-WALLETS.md
================================================
# Integrating Wallets

[supported wallets](https://docs.hyperweb.io/cosmos-kit/integrating-wallets#supported-wallets)

[How to integrate new wallets into CosmosKit](https://docs.hyperweb.io/cosmos-kit/integrating-wallets/adding-new-wallets)


================================================
FILE: LICENSE
================================================
The Clear BSD License

Copyright (c) 2024 Cosmos Kit Contributors
Copyright (c) 2025 Constructive <developers@constructive.io>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted (subject to the limitations in the disclaimer
below) provided that the following conditions are met:

     * Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.

     * Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.

     * Neither the name of the copyright holder nor the names of its
     contributors may be used to endorse or promote products derived from this
     software without specific prior written permission.

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY
THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.


================================================
FILE: README.md
================================================
# cosmos-kit

<p align="center" width="100%">
    <img height="90" src="https://user-images.githubusercontent.com/545047/190171432-5526db8f-9952-45ce-a745-bea4302f912b.svg" />
</p>

<p align="center" width="100%">
  <a href="https://github.com/hyperweb-io/cosmos-kit/actions/workflows/run-tests.yml">
    <img height="20" src="https://github.com/hyperweb-io/cosmos-kit/actions/workflows/run-tests.yml/badge.svg" />
  </a>
  <a href="https://github.com/constructive-io/lib-count">
    <img height="20" src="https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fconstructive-io%2Flib-count%2Fmain%2Foutput%2Fbadges%2Fproducts%2Fcosmos-kit%2Ftotal.json"/>
  </a>
  <br />
   <a href="https://github.com/hyperweb-io/cosmos-kit/blob/main/LICENSE"><img height="20" src="https://img.shields.io/badge/license-BSD%203--Clause%20Clear-blue.svg"></a>
   <a href="https://www.npmjs.com/package/cosmos-kit"><img height="20" src="https://img.shields.io/github/package-json/v/hyperweb-io/cosmos-kit?filename=packages%2Fcosmos-kit%2Fpackage.json"></a>
</p>

Cosmos Kit is a universal wallet adapter for developers to build apps that quickly and easily interact with Cosmos blockchains and wallets.

> **⚠️ UPGRADE to 3.0**
>
> **Cosmos Kit 3.0 and Create Cosmos App 2.0 is here!**
>
> Please use [**interchain-kit**](https://github.com/hyperweb-io/interchain-kit), the official successor with improved tooling, broader compatibility, and full Interchain ecosystem support.
> You can also see [**create-interchain-app**](https://github.com/hyperweb-io/create-interchain-app) our official starter kit that supports Interchain Kit.

## 🏁 Quickstart

Get started quickly by using [create-cosmos-app](https://github.com/hyperweb-io/create-cosmos-app) to help you build high-quality Cosmos apps fast!

## ⚙️ Configuration

Check out [our docs here](https://docs.hyperweb.io/cosmos-kit/get-started) to configure CosmosKit.

## ⚛️ CosmJS Signers

If you want to get a cosmjs stargate or cosmwasm signer, [here are docs for our hooks](https://docs.hyperweb.io/cosmos-kit/hooks)

## 📦 Packages

| Name                                                                                                    | Description                                                             |
| ------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| [cosmos-kit](https://github.com/hyperweb-io/cosmos-kit/tree/main/packages/cosmos-kit)                   | Single package for React developers to install Cosmos Kit               |
| [@cosmos-kit/core](https://github.com/hyperweb-io/cosmos-kit/tree/main/packages/core)                   | Core Cosmos Kit functionality                                           |
| [@cosmos-kit/walletconnect](https://github.com/hyperweb-io/cosmos-kit/tree/main/packages/walletconnect) | Mobile WalletConnect support for the Cosmos ecosystem                   |
| [@cosmos-kit/react](https://github.com/hyperweb-io/cosmos-kit/tree/main/packages/react)                 | React integration with Interchain UI Modal for simple usage             |
| [@cosmos-kit/react-lite](https://github.com/hyperweb-io/cosmos-kit/tree/main/packages/react-lite)       | A lightweight version of React integration without UI for customization |

## 📦 Wallets

Explore the range of wallet adapters available in our [wallets directory](https://github.com/hyperweb-io/cosmos-kit/tree/main/wallets).

<p align="center" width="100%">
<a href="https://www.keplr.app/">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/keplr.svg" />
</a>
<a href="https://www.ledger.com/">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/ledger.png" />
</a>
<a href="https://www.leapwallet.io/">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/leap.png" />
</a>
<a href="https://wallet.cosmostation.io/">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/cosmostation.png" />
</a>
<a href="https://www.ctrl.xyz/">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/ctrl.svg" />
</a>
<a href="https://www.exodus.com/">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/exodus.png" />
</a>
<br />
<a href="https://crypto.com/defi-wallet">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/cdcwallet.png" />
</a>
<a href="https://www.okx.com/web3">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/okxwallet.svg" />
</a>
<a href="https://walletconnect.com/">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/wallet-connect.svg" />
</a>
<a href="https://chromewebstore.google.com/detail/station-wallet/aiifbnbfobpmeekipheeijimdpnlpgpp?hl=en">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/station.svg" />
</a>
<a href="https://trustwallet.com/">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/trust.svg" />
</a>
<a href="https://omni.app/">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/omni.png" />
</a>
<br />
<a href="https://compasswallet.io/">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/compass.png" />
</a>
<a href="https://coin98.com/wallet">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/coin98.png" />
</a>
<a href="https://chromewebstore.google.com/detail/galaxy-station-wallet/akckefnapafjbpphkefbpkpcamkoaoai?hl=en">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/galaxystation.svg" />
</a>
<a href="https://vectis.space/">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/vectis.png" />
</a>
<a href="https://www.frontier.xyz/">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/frontier.png" />
</a>
<a href="https://vultisig.com/">
  <img width="30px" src="https://raw.githubusercontent.com/hyperweb-io/cosmos-kit/main/public/images/logos/wallets/vultisig.svg" />
</a>
</p>

## 🔌 Integrating Wallets

See our docs on [integrating your wallet](https://docs.hyperweb.io/cosmos-kit/integrating-wallets)

### 🚀 Running Example

For high-level examples suitable for most developers, explore our [create-cosmos-app](https://github.com/hyperweb-io/create-cosmos-app). For a deeper, more technical understanding, this repository contains an example, which is also useful when integrating new wallets.

```sh
pnpm run build
cd packages/example
pnpm dev
```

#### [Basic Next.js Example](https://github.com/hyperweb-io/cosmos-kit/tree/main/examples)

This example demonstrates a Next.js project that integrates the `@cosmos-kit/react` wallet adapter. Note that this example has historically been used by multiple teams to test PRs.

#### ["vanilla" example showing how `WalletManager` works](https://github.com/hyperweb-io/cosmos-kit/tree/main/examples/cosmos-kit-nextjs-pages-router-example/pages/wallet-manager)

This example is ideal for developers looking to create integrations for Vue.js, Svelte, or other frameworks. It uses a basic Next.js setup without relying on React-specific hooks, providing a clear model for building custom integrations.

- `/wallet-manager` - Index page for wallet functionality
- `/wallet-manager/wallet-operate` - Operate Wallet Directly
- `/wallet-manager/main-wallets` - Show All Main Wallets
- `/wallet-manager/wallet-manager` - Wallet Manager Without Hook
- `/wallet-manager/wallet-repos` - Show All Wallet Repos
- `/wallet-manager/wallet-repo` - Show One Wallet Repo

## 🛠 Developing

Checkout the repository and bootstrap the pnpm workspace:

```sh
# Clone the repo.
git clone https://github.com/hyperweb-io/cosmos-kit
cd cosmos-kit
pnpm install
```

### Building

```sh
pnpm run build
```

### Publishing

```
lerna publish
# lerna publish minor
# lerna publish major
```

## Interchain JavaScript Stack

A unified toolkit for building applications and smart contracts in the Interchain ecosystem ⚛️

| Category                       | Tools                                                                                                                                                                                                     | Description                                                                                                         |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **Chain Information**          | [**Chain Registry**](https://github.com/hyperweb-io/chain-registry), [**Utils**](https://www.npmjs.com/package/@chain-registry/utils), [**Client**](https://www.npmjs.com/package/@chain-registry/client) | Everything from token symbols, logos, and IBC denominations for all assets you want to support in your application. |
| **Wallet Connectors**          | [**Interchain Kit**](https://github.com/hyperweb-io/interchain-kit)<sup>beta</sup>, [**Cosmos Kit**](https://github.com/hyperweb-io/cosmos-kit)                                                           | Experience the convenience of connecting with a variety of web3 wallets through a single, streamlined interface.    |
| **Signing Clients**            | [**InterchainJS**](https://github.com/hyperweb-io/interchainjs)<sup>beta</sup>, [**CosmJS**](https://github.com/cosmos/cosmjs)                                                                            | A single, universal signing interface for any network                                                               |
| **SDK Clients**                | [**Telescope**](https://github.com/hyperweb-io/telescope)                                                                                                                                                 | Your Frontend Companion for Building with TypeScript with Cosmos SDK Modules.                                       |
| **Starter Kits**               | [**Create Interchain App**](https://github.com/hyperweb-io/create-interchain-app)<sup>beta</sup>, [**Create Cosmos App**](https://github.com/hyperweb-io/create-cosmos-app)                               | Set up a modern Interchain app by running one command.                                                              |
| **UI Kits**                    | [**Interchain UI**](https://github.com/hyperweb-io/interchain-ui)                                                                                                                                         | The Interchain Design System, empowering developers with a flexible, easy-to-use UI kit.                            |
| **Testing Frameworks**         | [**Starship**](https://github.com/hyperweb-io/starship)                                                                                                                                                   | Unified Testing and Development for the Interchain.                                                                 |
| **TypeScript Smart Contracts** | [**Create Hyperweb App**](https://github.com/hyperweb-io/create-hyperweb-app)                                                                                                                             | Build and deploy full-stack blockchain applications with TypeScript                                                 |
| **CosmWasm Contracts**         | [**CosmWasm TS Codegen**](https://github.com/CosmWasm/ts-codegen)                                                                                                                                         | Convert your CosmWasm smart contracts into dev-friendly TypeScript classes.                                         |

## Credits

🛠 Built by the [Constructive](https://constructive.io) team — makers of [Hyperweb](https://hyperweb.io)

## Disclaimer

AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED “AS IS”, AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND.

No developer or entity involved in creating this software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the code, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.


================================================
FILE: docs/_meta.json
================================================
{
  "index": "Introduction",
  "get-started": "Get Started",
  "migration-to-v2": "Migration to V2",
  "provider": "Provider",
  "hooks": "Hooks",
  "cookbook": "Cookbook",
  "integrating-wallets": "Integrating Wallets",
  "advanced": "Advanced"
}

================================================
FILE: docs/advanced.md
================================================
# Advanced

## Code Structure

To make user better understand the whole design structure of CosmosKit, here to briefly introduce some important classes from `@cosmos-kit/core`.

There are four important classes.

- WalletManager
- MainWalletBase
- ChainWalletBase
- WalletRepo

Before all, we need to clarify that there are two types of entities in CosmosKit as a wallet adapter: **Chain** and **Wallet**. Chain is identified by chain name i.e. `cosmoshub`, `osmosis` etc. And wallet is identified by wallet name i.e. `keplr-extension`, `keplr-mobile`, `cosmostation-extension` etc.

> Note that we're taking a single wallet application as a wallet in CosmosKit rather than the wallet product name. Taking `Keplr` as an example, we differentiate `extension` and `mobile` in our code because they are connected via totally different codes. So for product `Keplr`, we have two wallets `keplr-extension` and `keplr-mobile` in CosmosKit.

### WalletManager

`WalletManager` is the entrance of the whole code and it manages all `WalletRepo`, `MainWalletBase`, `ChainWalletBase` instances in it. It also corresponds to `ChainProvider` in `@cosmos-kit/react-lite` and `@cosmos-kit/react`. You can find that the properties of JSX element `ChainProvider` are almost the same with the constructor arguments of `WalletManager`. All necessary chain information and wallet information from `ChainProvider` will be passed to corresponding wallet classes via `WalletManager`.

Three important properties/arguments in `ChainProvider`/`WalletManager` are `chains`, `assetLists` and `wallets`. `chains` and `assetLists` provide chain information, and `wallets` provides wallet information. Actually `wallets` is an array of `MainWalletBase` instances. Here leads to the second class `MainWalletBase`.

### MainWalletBase

`MainWalletBase` is meant to provide a base implementation and unified interface for all different wallets like `keplr-extension`, `keplr-mobile` and `cosmostation-extension`. Basically every wallet has it's own `MainWallet` class, which extends `MainWalletBase` in common, but with `WalletClient` implemented in different ways. In this way `WalletManager` can handle all different wallets no matter how different they're inside.

> For practice you can take a look at [How to Integrate New Wallets into CosmosKit](/integrating-wallets/adding-new-wallets)

`MainWalletBase` is only about wallet and it's not about any specific chain. And it's responsible for initializing wallet client and managing all chain wallets. Here brings in the third class `ChainWalletBase`.

> So far `MainWalletBase` is dealing with four different broadcast/synchronization events for chain wallets.
>
> - broadcast_client
> - broadcast_env
> - sync_connect
> - sync_disconnect
>
> See details below.

### ChainWalletBase

When you're trying to connect to a wallet, you always need to provide a target chain name so that the wallet knows what to response. So `ChainWalletBase` is the class actually being used for real connection. It's the finest grain of functionality that with chain specified and also wallet specified.

We're separating `MainWalletBase` and `ChainWalletBase` because it's clearer to put some common properties like `wallet client` and `env` in the `MainWalletBase` to enable
centralized management and distribution (events `broadcast_client` and `broadcast_env`), and put only chain specified functionalities in `ChainWalletBase`.

Basically how many `chains` are provided in `ChainProvider` or `WalletManager`, how many `ChainWalletBase` instances will be constructed for a wallet. `ChainWalletBase` instances are independent with each other unless `sync` is set `true`. All the synchronization are also handled in `MainWalletBase` (events `sync_connect` and `sync_disconnect`).

### WalletRepo

We have a class `MainWalletBase` with wallet specified to manage all chain wallets. All these chain wallets are with the same wallet name but different chain name. Accordingly we also have another class `WalletRepo`, which with chain specified to manage all chain wallets that with the same chain name but different wallet name.

### MainWalletBase vs. WalletRepo

#### 1. **MainWalletBase**
- **Purpose**: Manages a collection of chain wallets.
- **Key Identifier**: Wallet name.
- **Example**: It handles wallets like cosmoshub/keplr-extension, osmosis/keplr-extension, etc. These are wallets from different chains but with the same wallet name.
  
#### 2. **WalletRepo**
- **Purpose**: Manages chain wallets too, but with a different approach.
- **Key Identifier**: Chain name.
- **Example**: It manages wallets like cosmoshub/keplr-extension, cosmoshub/keplr-mobile, etc. These are wallets from the same chain but with different wallet names.
  
#### Common Point
- **Both MainWalletBase and WalletRepo** are involved in managing chain wallets, which are wallets associated with different blockchain networks.
  
#### Key Differences
- **MainWalletBase**: Focuses on managing wallets based on the wallet’s name. It doesn’t matter what chain the wallet is from; as long as they share the same wallet name, MainWalletBase manages them.
- **WalletRepo**: Concentrates on managing wallets based on the chain’s name. Here, the specific wallet names don’t matter; WalletRepo groups and manages wallets that are on the same blockchain network.
  
#### Practical Use
- **In some decentralized applications (dapps)**, the focus might be more on the blockchain network (chain) rather than the wallet itself. In such cases, WalletRepo is particularly useful because it provides a perspective based on the chain, allowing different wallets on the same chain to be managed together.
  
#### Summary
- **MainWalletBase**: Manages wallets across different chains but with the same wallet name.
- **WalletRepo**: Manages different wallets on the same chain.
  
In essence, these two classes offer different ways of organizing and accessing chain wallets, based on what the primary point of interest is (wallet name or chain name).

So far `WalletRepo` is only used in [`WalletModal`](https://docs.cosmology.zone/cosmos-kit/provider/chain-provider#walletmodal) properties.


================================================
FILE: docs/cookbook/_meta.json
================================================
{
  "connect-multi-chains": "Connect Multiple Chains",
  "sign": "Sign"
}


================================================
FILE: docs/cookbook/connect-multi-chains.mdx
================================================
## How to connect multiple chains?

### 1. Use `useChains` Hook
CosmosKit introduces **[`useChains`](../hooks/use-chains)** hook starting from `v2.3.0`. Use it to connect to multiple chains.

### 2. For A Specific Wallet (No Modal Required)

Let's take `keplr-extension` for example.

```javascript
import { useWalletClient } from "@cosmos-kit/react";

export default function Home() {
  const { status, client } = useWalletClient("keplr-extension"); // or cosmostation-extension, leap-extension, etc.

  useEffect(() => {
    if (status === "Done") {
      client.enable?.(["cosmoshub-4", "osmosis-1", "juno-1"]);
      client.getAccount?.("juno-4").then((account) => console.log(account));
      client.getAccount?.("osmosis-1").then((account) => console.log(account));
      client
        .getAccount?.("cosmoshub-4")
        .then((account) => console.log(account));
    }
  }, [status]);
  // ...
}
```

### 3. No Specific Wallets (Modal Required, Version Prior to `v2.3.0`)

There's no `useChains` hook in CosmosKit then, so the best you can do is below.

```javascript
export default function Home() {
  const { openView } = useChain("cosmoshub"); // or juno, osmosis, etc.
  const { status, client } = useWalletClient();

  useEffect(() => {
    if (status === "Done") {
      client.enable?.(["cosmoshub-4", "osmosis-1", "juno-1"]);
      client.getAccount?.("juno-4").then((account) => console.log(account));
      client.getAccount?.("osmosis-1").then((account) => console.log(account));
      client
        .getAccount?.("cosmoshub-4")
        .then((account) => console.log(account));
    }
  }, [status]);

  return (
    <div style={{ textAlign: "center", margin: "4rem" }}>
      <Button onClick={openView}>Connect</Button>
    </div>
  );
}
```


================================================
FILE: docs/cookbook/sign.mdx
================================================
# Sign

## Global Settings

```ts
<ChainProvider
    ...
    signerOptions={{
        preferredSignType: (chain: Chain) => {
            return 'amino';
        }
    }}
>
    <Components />
</ChainProvider>

const { getSigningStargateClient } = useChain('cosmoshub');
const aminoSigningClient = await getSigningStargateClient();
```

By default use `amino` signer. Or you need to set `return 'direct'` if `direct` signer required.

## Individual Settings

```ts
const { status, client } = useWalletClient('keplr-extension');

if (status === 'Done') {
    /**
     * OR:
     * const aminoSigner = client.getOfflineSignerAmino('cosmoshub');
     * const directSigner = client.getOfflineSignerDirect('cosmoshub');
    */
    const aminoSigner = client.getOfflineSigner('cosmoshub', 'amino');
}

const aminoSigningClient = await SigningStargateClient.connectWithSigner(
      rpcEndpoint,
      aminoSigner
    );
```

================================================
FILE: docs/get-started.mdx
================================================
# How to use CosmosKit

> 💡 Make sure you are using `React18`
>
> `CosmosKit V1` is deprecated, we suggest using [`CosmosKit V2`](./migration-to-v2)
>
> `defaultSignOptions` has been preset as below in latest version (core >= 2.7, react-lite >= 2.5, react >= 2.9):

```json
{
    preferNoSetFee: false,
    preferNoSetMemo: true,
    disableBalanceCheck: true,
  };
```

## Quickstart

🏁 Get started quickly by using [create-cosmos-app](https://github.com/hyperweb-io/create-cosmos-app) to help you build high-quality Cosmos apps fast!

## Use CosmosKit from Scratch

### 1️⃣ Install Dependencies

Taking `Keplr` wallet as an example.

```sh
yarn add @cosmos-kit/react @cosmos-kit/keplr chain-registry
```

`@cosmos-kit/react` includes default modal made with `@interchain-ui/react`. If [customized modal](./provider/chain-provider/#customize-modal-with-walletmodal) is provided, you can use `@cosmos-kit/react-lite` instead to lighter your app.

There are multiple wallets supported by CosmosKit. Details see [Integrating Wallets](./integrating-wallets)

> Note: `@cosmjs/*` packages are peer dependencies in `@cosmos-kit/core`, so if you're not using `@cosmjs/*` in your dapp, `yarn install` would complain UNMET cosmjs peer dependencies.

### 2️⃣ Wrap Provider

First, add [`ChainProvider`](./provider/chain-provider) and provider [required properties](./provider/chain-provider#required-properties).

Example:

```tsx
import * as React from 'react';

import { ChainProvider } from '@cosmos-kit/react';
import { chains, assets } from 'chain-registry';
import { wallets } from '@cosmos-kit/keplr';

// Import this in your top-level route/layout
import "@interchain-ui/react/styles";

function CosmosApp() {
  return (
    <ChainProvider
      chains={chains} // supported chains
      assetLists={assets} // supported asset lists
      wallets={wallets} // supported wallets
      walletConnectOptions={...} // required if `wallets` contains mobile wallets
    >
      <YourWalletRelatedComponents />
    </ChainProvider>
  );
}
```

### 3️⃣ Consume with Hook

Take `useChain` as an example.

```tsx
import * as React from 'react';

import { useChain } from "@cosmos-kit/react";

function Component ({ chainName }: { chainName: string }) => {
    const chainContext = useChain(chainName);

    const {
      status,
      username,
      address,
      message,
      connect,
      disconnect,
      openView,
    } = chainContext;
}
```

## Localstorage Settings

### current wallet

- **Key**: `cosmos-kit@2:core//current-wallet`
- **Type**: `string`

It records current wallet name. You can use this key to implement auto-connection in dapp. And it will expire after provided [session duration](./provider/chain-provider#sessionoptions).

### accounts

- **Key**: `cosmos-kit@2:core//accounts`
- **Type**: `SimpleAccount[]`

It records the connected chains' account information. It's used for account restore when refreshing in CosmosKit. And it will expire after provided [session duration](./provider/chain-provider#sessionoptions).


================================================
FILE: docs/hooks/_meta.json
================================================
{
  "index": "Introduction",
  "use-chain": "- useChain",
  "use-chains": "- useChains",
  "use-chain-wallet": "- useChainWallet",
  "use-iframe": "- useIframe",
  "use-manager": "- useManager",
  "use-modal-theme": "- useModalTheme",
  "use-name-service": "- useNameService",
  "use-wallet": "- useWallet",
  "use-wallet-client": "- useWalletClient"
}

================================================
FILE: docs/hooks/index.mdx
================================================
There are multiple hooks provided in CosmosKit. They all require [**ChainProvider**](./provider/chain-provider) from either `@cosmos-kit/react` or `@cosmos-kit/react-lite` to provide necessary information.

- [`useChain`](./hooks/use-chain): Provide chainWallet related properties and methods, and support multiple chains connected at one time. When `useChain` is called, corresponding chainWallets will be activated.

- [`useChainWallet`](./hooks/use-chain-wallet): Provide chainWallet related properties and methods, and support multiple chains and wallets connected at one time. When `useChainWallet` is called, corresponding chainWallet will be activated.

> See more information about [Differences Between `useChain` And `useChainWallet`](#differences-between-usechain-and-usechainwallet)

- [`useManager`](./hooks/use-manager): Manage all chains and wallets.

- [`useModalTheme`](./hooks/use-modal-theme): Manage default modal themes.

- [`useNameService`](./hooks/use-name-service): Get alias name of address from a particular name server.

- [`useWallet`](./hooks/use-wallet): Manage all chainWallets and the global status for a particular wallet.

- [`useWalletClient`](./hooks/use-wallet-client): Get the wallet client for a particular wallet.

- [`useIframe`](./hooks/use-iframe): Set up an iframe that can access the currently connected wallet automatically.

## Differences Between `useChain` And `useChainWallet`

1. `useChainWallet` requires an extra parameter `walletName`.
2. `useChain` will pop up a wallet modal to connect while `useChainWallet` not.
3. `useChain` exposes extra `openView` and `closeView` methods and `walletRepo` property.
4. the return value of methods `getRpcEndpoint`, `getRestEndpoint`, `getStargateClient`, `getCosmWasmClient`, `getNameService` can be different between `useChain` and `useChainWallet`, because `useChain` explores all `chainWallets` related to the parameter `chainName`.


================================================
FILE: docs/hooks/use-chain-wallet.mdx
================================================
## Hook - useChainWallet

- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit/react` or `@cosmos-kit/react-lite`

- parameters:
  - **chainName**: `ChainName` ( = `string` );
  - **walletName**: `WalletName` ( = `string` );
  - **sync**: `boolean` = `true`

> parameter `sync` means whether to synchronize connection and disconnection to all other activated chainWallets.

- return type: [**ChainWalletContext**](#type---chainwalletcontext)

## Type - ChainWalletContext

### Properties

| Name                     | Description                                  | Type                     | Default        |
| ------------------------ | -------------------------------------------- | ------------------------ | -------------- |
| **chain**                | chain registry information                   | `Chain`                  | -              |
| **assets**               | chain assets information                     | `AssetList \| undefined` | `undefined`    |
| **wallet**               | current selected wallet registry information | `Wallet \| undefined`    | `undefined`    |
| **logoUrl**              | chain logo url                               | `string \| undefined`    | `undefined`    |
| **address**              | chain address from current selected wallet   | `string \| undefined`    | `undefined`    |
| **username**             | username from current selected wallet        | `string \| undefined`    | `undefined`    |
| **message**              | error/warn/info message                      | `string \| undefined`    | `undefined`    |
| **status**               | wallet status                                | `WalletStatus`           | `Disconnected` |
| **isWalletDisconnected** | if `status === 'Disconnected'`               | `boolean`                | `true`         |
| **isWalletConnecting**   | if `status === 'Connecting'`                 | `boolean`                | `false`        |
| **isWalletConnected**    | if `status === 'Connected'`                  | `boolean`                | `false`        |
| **isWalletRejected**     | if `status === 'Rejected'`                   | `boolean`                | `false`        |
| **isWalletNotExist**     | if `status === 'NotExist'`                   | `boolean`                | `false`        |
| **isWalletError**        | if `status === 'Error'`                      | `boolean`                | `false`        |

### Methods

| Name                         | Description                                                                           | Parameters                                                                                                                   | Return Type                      | Is Async |
| ---------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- |
| **connect**                  | connect wallet                                                                        | **wallet**?: `WalletName`                                                                                                    | `void`                           | Y        |
| **disconnect**               | disconnect current selected wallet                                                    | -                                                                                                                            | `void`                           | Y        |
| **getRpcEndpoint**           | return rpc endpoint, `isLazy` explanation is [here](../provider/chain-provider#islazy)  | **isLazy**?: `boolean`                                                                                                       | `string \| ExtendedHttpEndpoint` | Y        |
| **getRestEndpoint**          | return rest endpoint, `isLazy` explanation is [here](../provider/chain-provider#islazy) | **isLazy**?: `boolean`                                                                                                       | `string \| ExtendedHttpEndpoint` | Y        |
| **getStargateClient**        | -                                                                                     | -                                                                                                                            | `StargateClient`                 | Y        |
| **getCosmWasmClient**        | -                                                                                     | -                                                                                                                            | `CosmWasmClient`                 | Y        |
| **getSigningStargateClient** | always validate endpoint in method                                                    | -                                                                                                                            | `SigningStargateClient`          | Y        |
| **getSigningCosmWasmClient** | always validate endpoint in method                                                    | -                                                                                                                            | `SigningCosmWasmClient`          | Y        |
| **getNameService**           | get name service object supported on provided chain                                   | -                                                                                                                            | `NameService`                    | Y        |
| **estimateFee**              | if **type** is `undefined`, default using `SigningStargateClient`                     | **messages**: `EncodeObject[]`,<br />**type**?: `CosmosClientType`,<br />**memo**?: `string`,<br />**multiplier**?: `number` | `StdFee`                         | Y        |
| **sign**                     | using `cosmjs`. if **type** is `undefined`, default using `SigningStargateClient`     | **messages**: `EncodeObject[]`,<br />**fee**?: `StdFee`,<br />**memo**?: `string`,<br />**type**?: `CosmosClientType`        | `TxRaw`                          | Y        |
| **broadcast**                | if **type** is `undefined`, default using `SigningStargateClient`                     | **signedMessages**: `TxRaw`,<br />**type**?: `CosmosClientType`,                                                             | `DeliverTxResponse`              | Y        |
| **signAndBroadcast**         | if **type** is `undefined`, default using `SigningStargateClient`                     | **messages**: `EncodeObject[]`,<br />**fee**?: `StdFee`,<br />**memo**?: `string`,<br />**type**?: `CosmosClientType`,       | `DeliverTxResponse`              | Y        |

### Properties from Wallet Client

| Name                   | Description | Type               | Default    |
| ---------------------- | ----------- | ------------------ | ---------- | ----------- |
| **qrUrl**              | -           | `Mutable\<string\> | undefined` | `undefined` |
| **appUrl**             | -           | `Mutable\<AppUrl\> | undefined` | `undefined` |
| **defaultSignOptions** | -           | `SignOptions`      | as below   |

`defaultSignOptions`:

```json
{
    preferNoSetFee: false,
    preferNoSetMemo: true,
    disableBalanceCheck: true,
  };
```

### Methods from Wallet Client

> These methods are equal to wallet client methods with argument `chainId` assigned as `chainId` corresponding to hook argument `chainName`. If you want to directly use wallet client methods, choose hook [`useWalletClient`](../hooks/use-wallet-client) instead.

| Name                       | Description                                                                                                                                                                     | Parameters                                                                                 | Return Type           | Is Async |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | --------------------- | -------- |
| **setDefaultSignOptions**  | -                                                                                                                                                                               | **options**: `SignOptions`                                                                 | `void`                | N        |
| **enable**                 | -                                                                                                                                                                               | -                                                                                          | `void`                | Y        |
| **getAccount**             | -                                                                                                                                                                               | -                                                                                          | `WalletAccount`       | Y        |
| **getOfflineSigner**       | prioritize returning `preferredSignType` (in `ChainProvider` properties, by default `amino`) corresponding signer if it is available, otherwise return signer that is provided. | Y                                                                                          |
| **getOfflineSignerAmino**  | -                                                                                                                                                                               | -                                                                                          | `OfflineAminoSigner`  | N        |
| **getOfflineSignerDirect** | -                                                                                                                                                                               | -                                                                                          | `OfflineDirectSigner` | N        |
| **signAmino**              | -                                                                                                                                                                               | **signer**: `string`,<br />**signDoc**: `StdSignDoc`,<br />**signOptions**?: `SignOptions` | `AminoSignResponse`   | Y        |
| **signDirect**             | -                                                                                                                                                                               | **signer**: `string`,<br />**signDoc**: `StdSignDoc`,<br />**signOptions**?: `SignOptions` | `DirectSignResponse`  | Y        |
| **signArbitrary**          | -                                                                                                                                                                               | **signer**: `string`,<br />**data**: `string \| Uint8Array`                                | `StdSignature`        | Y        |
| **sendTx**                 | -                                                                                                                                                                               | **tx**: `Uint8Array`,<br />**mode**: `BroadcastMode`                                       | `Uint8Array`          | Y        |

### Advanced

**Used for deeper dive into the chain and wallet related objects**

| Name            | Description         | Type                           | Default     |
| --------------- | ------------------- | ------------------------------ | ----------- |
| **chainWallet** | current chainWallet | `ChainWalletBase \| undefined` | `undefined` |

## Examples

### [fetch address](https://github.com/hyperweb-io/cosmos-kit/blob/main/packages/example/pages/use-chain-wallet.tsx)

### [governance](https://github.com/hyperweb-io/cosmos-kit/blob/main/packages/example/pages/gov.tsx)


================================================
FILE: docs/hooks/use-chain.mdx
================================================
## Hook - useChain

- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit/react` or `@cosmos-kit/react-lite`

> To use `useChain` with `ChainProvider` from `@cosmos-kit/react-lite`, property [`walletModal`](../provider/chain-provider#walletmodal) must be provided. Or you can choose `ChainProvider` from `@cosmos-kit/react`, which provides `DefaultModal`. Or you can use [`useChainWallet`](./use-chain-wallet) instead.

- parameters:
  - **chainName**: `ChainName` ( = `string` );
  - **sync**: `boolean` = `true`

> parameter `sync` means whether to synchronize connection and disconnection to all other activated chainWallets.

- return type: [**ChainContext**](#type---chaincontext)

## Type - ChainContext

### Properties

| Name                     | Description                                  | Type                     | Default        |
| ------------------------ | -------------------------------------------- | ------------------------ | -------------- |
| **chain**                | chain registry information                   | `Chain`                  | -              |
| **assets**               | chain assets information                     | `AssetList \| undefined` | `undefined`    |
| **wallet**               | current selected wallet registry information | `Wallet \| undefined`    | `undefined`    |
| **logoUrl**              | chain logo url                               | `string \| undefined`    | `undefined`    |
| **address**              | chain address from current selected wallet   | `string \| undefined`    | `undefined`    |
| **username**             | username from current selected wallet        | `string \| undefined`    | `undefined`    |
| **message**              | error/warn/info message                      | `string \| undefined`    | `undefined`    |
| **status**               | wallet status                                | `WalletStatus`           | `Disconnected` |
| **isWalletDisconnected** | if `status === 'Disconnected'`               | `boolean`                | `true`         |
| **isWalletConnecting**   | if `status === 'Connecting'`                 | `boolean`                | `false`        |
| **isWalletConnected**    | if `status === 'Connected'`                  | `boolean`                | `false`        |
| **isWalletRejected**     | if `status === 'Rejected'`                   | `boolean`                | `false`        |
| **isWalletNotExist**     | if `status === 'NotExist'`                   | `boolean`                | `false`        |
| **isWalletError**        | if `status === 'Error'`                      | `boolean`                | `false`        |

### Methods

| Name                         | Description                                                                           | Parameters                                                                                                                   | Return Type                      | Is Async |
| ---------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- |
| **openView**                 | open modal                                                                            | -                                                                                                                            | `void`                           | N        |
| **closeView**                | close modal                                                                           | -                                                                                                                            | `void`                           | N        |
| **connect**                  | connect wallet                                                                        | **wallet**?: `WalletName`                                                                                                    | `void`                           | Y        |
| **disconnect**               | disconnect current selected wallet                                                    | -                                                                                                                            | `void`                           | Y        |
| **getRpcEndpoint**           | return rpc endpoint, `isLazy` explanation is [here](../provider/chain-provider#islazy)  | **isLazy**?: `boolean`                                                                                                       | `string \| ExtendedHttpEndpoint` | Y        |
| **getRestEndpoint**          | return rest endpoint, `isLazy` explanation is [here](../provider/chain-provider#islazy) | **isLazy**?: `boolean`                                                                                                       | `string \| ExtendedHttpEndpoint` | Y        |
| **getStargateClient**        | -                                                                                     | -                                                                                                                            | `StargateClient`                 | Y        |
| **getCosmWasmClient**        | -                                                                                     | -                                                                                                                            | `CosmWasmClient`                 | Y        |
| **getSigningStargateClient** | always validate endpoint in method                                                    | -                                                                                                                            | `SigningStargateClient`          | Y        |
| **getSigningCosmWasmClient** | always validate endpoint in method                                                    | -                                                                                                                            | `SigningCosmWasmClient`          | Y        |
| **getNameService**           | get name service object supported on provided chain                                   | -                                                                                                                            | `NameService`                    | Y        |
| **estimateFee**              | if **type** is `undefined`, default using `SigningStargateClient`                     | **messages**: `EncodeObject[]`,<br />**type**?: `CosmosClientType`,<br />**memo**?: `string`,<br />**multiplier**?: `number` | `StdFee`                         | Y        |
| **sign**                     | using `cosmjs`. if **type** is `undefined`, default using `SigningStargateClient`     | **messages**: `EncodeObject[]`,<br />**fee**?: `StdFee`,<br />**memo**?: `string`,<br />**type**?: `CosmosClientType`        | `TxRaw`                          | Y        |
| **broadcast**                | if **type** is `undefined`, default using `SigningStargateClient`                     | **signedMessages**: `TxRaw`,<br />**type**?: `CosmosClientType`,                                                             | `DeliverTxResponse`              | Y        |
| **signAndBroadcast**         | if **type** is `undefined`, default using `SigningStargateClient`                     | **messages**: `EncodeObject[]`,<br />**fee**?: `StdFee`,<br />**memo**?: `string`,<br />**type**?: `CosmosClientType`,       | `DeliverTxResponse`              | Y        |

### Properties from Wallet Client

| Name                   | Description | Type               | Default    |
| ---------------------- | ----------- | ------------------ | ---------- | ----------- |
| **qrUrl**              | -           | `Mutable\<string\> | undefined` | `undefined` |
| **appUrl**             | -           | `Mutable\<AppUrl\> | undefined` | `undefined` |
| **defaultSignOptions** | -           | `SignOptions`      | as below   |

`defaultSignOptions`:

```json
{
    preferNoSetFee: false,
    preferNoSetMemo: true,
    disableBalanceCheck: true,
  };
```

### Methods from Wallet Client

> These methods are equal to wallet client methods with argument `chainId` assigned as `chainId` corresponding to hook argument `chainName`. If you want to directly use wallet client methods, choose hook [`useWalletClient`](./use-wallet-client) instead.

| Name                       | Description                                                                                                                                                                     | Parameters                                                                                 | Return Type           | Is Async |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | --------------------- | -------- |
| **setDefaultSignOptions**  | -                                                                                                                                                                               | **options**: `SignOptions`                                                                 | `void`                | N        |
| **enable**                 | -                                                                                                                                                                               | -                                                                                          | `void`                | Y        |
| **getAccount**             | -                                                                                                                                                                               | -                                                                                          | `WalletAccount`       | Y        |
| **getOfflineSigner**       | prioritize returning `preferredSignType` (in `ChainProvider` properties, by default `amino`) corresponding signer if it is available, otherwise return signer that is provided. | -                                                                                          | `OfflineSigner`       | Y        |
| **getOfflineSignerAmino**  | -                                                                                                                                                                               | -                                                                                          | `OfflineAminoSigner`  | N        |
| **getOfflineSignerDirect** | -                                                                                                                                                                               | -                                                                                          | `OfflineDirectSigner` | N        |
| **signAmino**              | -                                                                                                                                                                               | **signer**: `string`,<br />**signDoc**: `StdSignDoc`,<br />**signOptions**?: `SignOptions` | `AminoSignResponse`   | Y        |
| **signDirect**             | -                                                                                                                                                                               | **signer**: `string`,<br />**signDoc**: `StdSignDoc`,<br />**signOptions**?: `SignOptions` | `DirectSignResponse`  | Y        |
| **sendTx**                 | -                                                                                                                                                                               | **tx**: `Uint8Array`,<br />**mode**: `BroadcastMode`                                       | `Uint8Array`          | Y        |

### Advanced

**Used for deeper dive into the chain and wallet related objects**

| Name            | Description                                                        | Type                           | Default     |
| --------------- | ------------------------------------------------------------------ | ------------------------------ | ----------- |
| **chainWallet** | current chainWallet                                                | `ChainWalletBase \| undefined` | `undefined` |
| **walletRepo**  | wallet repository, you can get all the chainWallets from this repo | `WalletRepo`                   | -           |

## Examples

### [fetch address](https://github.com/hyperweb-io/cosmos-kit/blob/main/packages/example/pages/index.tsx)

### [fetch balance & send tokens](https://github.com/hyperweb-io/cosmos-kit/blob/main/packages/example/pages/tx.tsx)


================================================
FILE: docs/hooks/use-chains.mdx
================================================
## Hook - useChains

- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit/react` or `@cosmos-kit/react-lite`

> To use `useChains` with `ChainProvider` from `@cosmos-kit/react-lite`, property [`walletModal`](../provider/chain-provider#walletmodal) must be provided. Or you can choose `ChainProvider` from `@cosmos-kit/react`, which provides `DefaultModal`. Or you can use [`useChainWallet`](./use-chain-wallet) instead.

- parameters:
    - **chainNames**: `ChainName[]`
    - **sync**: `boolean` = `true`

> parameter `sync` means whether to synchronize connection and disconnection to all other activated chainWallets.

- return type: **Record&lt;ChainName, [**ChainContext**](./use-chain#type---chaincontext)&gt;**

## Usage
```jsx
export default function () {
  const chains = useChains(['cosmoshub', 'osmosis', 'stargaze', 'juno', 'akash']);
  const connected = Object.values(chains).every(chain => chain.isWalletConnected);
  const { connect, openView } = chains.cosmoshub;
  
  // Notice: calling chains.chainName.connect() will connect to all 5 chains above.

  return <div className="space-y-4">
    <Button onClick={() => connected ? openView() : connect() }>
      { connected ? 'Disconnect' : 'Connect' }
    </Button>
    <table className="table-fixed font-mono">
      <thead>
        <tr>
          <th className="w-80">Code</th>
          <th>Value</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>chains.cosmoshub.address</td>
          <td>{chains.cosmoshub.address}</td>
        </tr>
        <tr>
          <td>chains.osmosis.address</td>
          <td>{chains.osmosis.address}</td>
        </tr>
        <tr>
          <td>chains.stargaze.address</td>
          <td>{chains.stargaze.address}</td>
        </tr>
        <tr>
          <td>chains.juno.address</td>
          <td>{chains.juno.address}</td>
        </tr>
        <tr>
          <td>chains.akash.address</td>
          <td>{chains.akash.address}</td>
        </tr>
      </tbody>
    </table>
  </div>;
}
```


================================================
FILE: docs/hooks/use-iframe.mdx
================================================
## Hook - useIframe

- required provider: [**ChainProvider**](../provider/chain-provider) from either
  `@cosmos-kit/react` or `@cosmos-kit/react-lite`

- parameters:
  - **walletName?**: `WalletName` ( = `string` );
  - **walletInfo?**: `{ prettyName?: string; logo?: string }`
  - **accountReplacement?**: `(chainId: string) => AccountReplacement | Promise<AccountReplacement> | undefined`
  - **walletClientOverrides?**: `Partial<Record<string, OverrideHandler | Promise<OverrideHandler>>>`
  - **aminoSignerOverrides?**: `Partial<Record<string, OverrideHandler | Promise<OverrideHandler>>>`
  - **directSignerOverrides?**: `Partial<Record<string, OverrideHandler | Promise<OverrideHandler>>>`

> `walletName` optionally chooses a wallet to use, like the
> [`useWallet`](./use-wallet) hook. If unset, the main wallet is used.
>
> `walletInfo` optionally sets the iframe's connected wallet metadata. If unset,
> the currently connected wallet metadata is used.
>
> `accountReplacement` optionally overrides the account details returned from
> the wallet.
>
> `walletClientOverrides`, `aminoSignerOverrides`, and `directSignerOverrides`
> allow fine-grained control over the various client methods such that the
> controlling app can heavily customize the wallet passthrough experience. For
> example, this allows the app to manually handle and wrap messages from the
> nested app, like a smart contract wallet may want to do.
>
> Explore the types to better understand how to implement advanced functionality.

- return type: **`{ wallet: MainWalletBase; iframeRef: RefCallback<HTMLIframeElement | null>}`**

## Usage

```jsx
export default function () {
  const { iframeRef } = useIframe();
  const { connect, disconnect, isWalletConnected } = useChain("cosmoshub");

  return (
    <div className="space-y-4">
      <Button onClick={() => (isWalletConnected ? disconnect() : connect())}>
        {isWalletConnected ? "Disconnect" : "Connect"}
      </Button>

      <iframe
        ref={iframeRef}
        style={{
          width: "100%",
          height: "75vh",
          borderRadius: 4,
        }}
        src="https://example-cosmos-kit-dapp.zone"
      ></iframe>
    </div>
  );
}
```


================================================
FILE: docs/hooks/use-manager.mdx
================================================
## Hook - useManager

- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit/react` or `@cosmos-kit/react-lite`

- return type: [**ManagerConext**](#type---managerconext)

## Type - ManagerConext

### properties

| Name                   | Description                                                                      | Type               | Default |
| ---------------------- | -------------------------------------------------------------------------------- | ------------------ | ------- |
| **chainRecords**       | contains all chain registry and assets information                               | `ChainRecord[]`    | []      |
| **walletRepos**        | contains all chain wallets information, each wallet repo identified with a chain | `WalletRepo[]`     | []      |
| **mainWallets**        | all main wallets information                                                     | `MainWalletBase[]` | []      |
| **defaultNameService** | -                                                                                | `NameServiceName`  | `icns`  |

### methods

| Name               | Description                                                                                                               | Parameters                                                                                                                                               | Return Type           | Is Async |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | -------- |
| **getChainRecord** | get the basic info of a chain, which contains registry and assets information for this chain                              | **chainName**: `ChainName`                                                                                                                               | `ChainRecord`         | N        |
| **getChainLogo**   | get chain logo url                                                                                                        | **chainName**: `ChainName`                                                                                                                               | `string \| undefined` | N        |
| **getWalletRepo**  | get the wallet repository of a chain, which stores all chain wallets for this chain                                       | **chainName**: `ChainName`                                                                                                                               | `WalletRepo`          | N        |
| **getNameService** | get name service object supported on provided chain, if chain not provided, using `defaultNameService` in `ChainProvider` | **chainName?**: `ChainName`                                                                                                                              | `NameService`         | Y        |
| **addChains**      | add new chains in provider                                                                                                | **chains**: `Chain[]`,<br />**assetLists**: `AssetList[]`,<br />**signerOptions**?: `SignerOptions`,<br />**endpoints**?: `EndpointOptions["endpoints"]` | `void`                | N        |
| **addEndpoints**   | add new endpoints                                                                                                         | **endpoints**: `EndpointOptions["endpoints"]`                                                                                                            | `void`                | N        |
| **on**             | attach event handler to [events](#events)                                                                                 | **event**: `EventName`,<br />**handler**: `(params: any) => void`                                                                                        | `void`                | N        |
| **off**            | remove attached event handler                                                                                             | **event**: `EventName`,<br />**handler**: `(params: any) => void`                                                                                        | `void`                | N        |

## Events

### refresh_connection

Every time the registered events `connectEventNamesOnWindow` and `connectEventNamesOnClient` (see [wallet registry](../integrating-wallets/adding-new-wallets#optional-properties)) are triggered, and the dapp has been connected to the corresponding wallet, the `refresh_connection` event will also be triggered.

## Examples

### [add chain](https://github.com/hyperweb-io/cosmos-kit/blob/main/packages/example/pages/add-chain.tsx)


================================================
FILE: docs/hooks/use-modal-theme.mdx
================================================
## Hook - useModalTheme

If you're using default modal provided by CosmosKit, you might need this hook to get and set modal theme.

- required provider: [**ChainProvider**](../provider/chain-provider) from `@cosmos-kit/react`

## Return Type - useModalTheme

### properties

| Name      | Description | Type | Default |
| ----------- | ----------- | -- | -- |
| **modalTheme**      | currently `light` or `dark` or `system` are available   | `ModePreference` | `light` |

### methods

| Name      | Description | Parameters | Return Type | Is Async |
| ----------- | ----------- | -- | -- | -- |
| **setModalTheme**      |   -   | **theme**: `ModePreference` | `void` | N |

## Examples

### [dashboard](https://github.com/hyperweb-io/cosmos-kit/blob/main/packages/example/pages/index.tsx)


================================================
FILE: docs/hooks/use-name-service.mdx
================================================
## Hook - useNameService

- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit/react` or `@cosmos-kit/react-lite`

- parameters:
    - **name?**: `NameServiceName` ( = `string` );

> Note: `name` is optional. if `name` is not provided, using the `defaultNameService` in `ChainProvider`

- return type: [**Mutable\<NameService>**](#type---mutablenameservice)

## Type - Mutable\<NameService>

### properties

| Name      | Description | Type | Default |
| ----------- | ----------- | -- | -- |
| **state**      |    -    | `State` | `State.Init` |
| **data**   | - | `NameService` | `undefined` |
| **message**   |  -  | `string` | `undefined` |

> Note: `state`, `data` and `message` are react states.

## Examples

### [name service](https://github.com/hyperweb-io/cosmos-kit/blob/main/packages/example/pages/ns2.tsx)

================================================
FILE: docs/hooks/use-wallet-client.mdx
================================================
## Hook - useWalletClient

- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit/react` or `@cosmos-kit/react-lite`

- parameters:
  - **walletName?**: `WalletName` ( = `string` );

> if `walletName` is `undefined`, using `currentWallet` instead. See LocalStorage key `cosmos-kit@2:core//current-wallet`

- return type: [**WalletClientContext**](#type---walletclientcontext)

## Type - WalletClientContext

### Properties

| Name        | Description                                 | Type                        | Default      |
| ----------- | ------------------------------------------- | --------------------------- | ------------ |
| **client**  | wallet client                               | `WalletClient \| undefined` | `undefined`  |
| **status**  | wallet client status                        | `State`                     | `State.Init` |
| **message** | error message if wallet client is undefined | `string \| undefined`       | `undefined`  |

## Examples

### [get account](https://github.com/hyperweb-io/cosmos-kit/blob/main/packages/example/pages/tx.tsx)


================================================
FILE: docs/hooks/use-wallet.mdx
================================================
## Hook - useWallet

- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit/react` or `@cosmos-kit/react-lite`

- parameters:
  - **walletName?**: `WalletName` ( = `string` );
  - **activeOnly**: `boolean` (default to be `true`);

> If `walletName` is `undefined`, using `currentWallet` instead. See LocalStorage key `cosmos-kit@2:core//current-wallet`. If `currentWallet` is also undefined, return default values.

> If `activeOnly` is `true`, only look at chainWallets with `isActive` true. When `useChain` is called, corresponding chainWallet will be activated.

- return type: [**WalletContext**](#type---walletcontext)

## Type - WalletContext

### Properties

| Name             | Description                                                                     | Type                  | Default                     |
| ---------------- | ------------------------------------------------------------------------------- | --------------------- | --------------------------- |
| **mainWallet**   | the mainWallet                                                                  | `MainWalletBase       | undefined`                  |
| **chainWallets** | all the chainWallets (including chains that not be called by useChain)          | `ChainWalletBase[]`   | `[]`                        |
| **wallet**       | wallet registry information                                                     | `Wallet \| undefined` | `undefined`                 |
| **status**       | global wallet status involves all active chainWallets if `activeOnly` is `true` | `WalletStatus`        | `WalletStatus.Disconnected` |
| **message**      | -                                                                               | `string \| undefined` | `undefined`                 |

## Examples

### [global wallet status](https://github.com/hyperweb-io/cosmos-kit/blob/main/packages/example/pages/index.tsx)


================================================
FILE: docs/index.mdx
================================================
import React from "react";
import { WalletSection } from "../../components";
import { DownloadButton } from '../../components/download-button'

# CosmosKit

<p align="center" width="100%">
  <img
    src="https://user-images.githubusercontent.com/545047/190171432-5526db8f-9952-45ce-a745-bea4302f912b.svg"
    alt="cosmos-kit"
    width="90px"
    height="90px"
  />
</p>

<div
  width="100%"
  style={{
    display: "flex",
    justifyContent: "center",
    alignItems: "center",
    paddingTop: "12px",
  }}
>
  <div style={{ paddingRight: "4px" }}>
    <a href="https://github.com/hyperweb-io/cosmos-kit/actions/workflows/run-tests.yml">
      <img
        height="20"
        src="https://github.com/hyperweb-io/cosmos-kit/actions/workflows/run-tests.yml/badge.svg"
      />
    </a>
  </div>
  <div style={{ paddingRight: "4px" }}>
    <a href="https://github.com/hyperweb-io/cosmos-kit/blob/main/packages/core/LICENSE">
      <img
        height="20"
        src="https://img.shields.io/badge/license-BSD%203--Clause%20Clear-blue.svg"
      />
    </a>
  </div>


  <div style={{ paddingRight: "4px" }}>
    <a href="https://www.npmjs.com/package/@cosmos-kit/react">
      <img
        height="20"
        src="https://img.shields.io/github/package-json/v/hyperweb-io/cosmos-kit?filename=packages%2Freact%2Fpackage.json"
      />
    </a>
  </div>
</div>


CosmosKit is a wallet adapter for developers to build apps that quickly and easily interact with Cosmos blockchains and wallets.

<DownloadButton href='/llms/cosmos-kit.txt' fileName="cosmos-kit-llms.txt" />

## Get Started

⚡️ [How to use CosmosKit](/cosmos-kit/get-started)

## Try It Out!

<WalletSection />

## Wallet Developers

🔌 [How to integrate new wallets into CosmosKit](/cosmos-kit/integrating-wallets/adding-new-wallets)

## Packages

### [@cosmos-kit/core](https://github.com/hyperweb-io/cosmos-kit/tree/main/packages/core)

Core package of CosmosKit, including types, utils and base classes.

### [@cosmos-kit/react](https://github.com/hyperweb-io/cosmos-kit/tree/main/packages/react)

A wallet adapter for React with mobile WalletConnect support for the Cosmos ecosystem.

### [@cosmos-kit/react-lite](https://github.com/hyperweb-io/cosmos-kit/tree/main/packages/react-lite)

A lighter version of `@cosmos-kit/react` without the default modal.

### [@cosmos-kit/ins](https://github.com/hyperweb-io/cosmos-kit/tree/main/packages/ins)

Interchain Name System implementation

### [@cosmos-kit/walletconnect](https://github.com/hyperweb-io/cosmos-kit/tree/main/packages/walletconnect)

[Wallet Connect V2](https://walletconnect.com/) support tools (usually used when integrating mobile wallets).

### [WALLETS](/cosmos-kit/integrating-wallets)

Wallets integrated in CosmosKit.

### [@cosmos-kit/example](https://github.com/hyperweb-io/cosmos-kit/tree/main/packages/example)

An example Next.js project integrating `@cosmos-kit/react` wallet adapter.

## Related Projects

### [create-cosmos-app](https://github.com/hyperweb-io/create-cosmos-app)

Set up a modern Cosmos app by running one command ⚛️

### [chain-registry](https://github.com/hyperweb-io/chain-registry)

An npm module for the official Cosmos chain-registry




================================================
FILE: docs/integrating-wallets/_meta.json
================================================
{
  "index": "Introduction",
  "adding-new-wallets": "Adding New Wallets",
  "adding-all-wallets": "Adding All Wallets",
  "compass": "@ Compass Wallet",
  "cosmos-metamask-extension": "@ Cosmos MetaMask Extension",
  "cosmostation": "@ Cosmostation Wallet",
  "exodus": "@ Exodus Wallet",
  "fin": "@ Fin Wallet",
  "frontier": "@ Frontier Wallet",
  "keplr": "@ Keplr Wallet",
  "leap": "@ Leap Wallet",
  "leap-capsule-social-login": "@ Leap Capsule Social Login",
  "leap-metamask-comos-snap": "@ Leap Cosmos MetaMask Snap",
  "ledger": "@ Ledger",
  "ninji": "@ Ninji",
  "okx": "@ Okx Wallet",
  "omni": "@ Omni Wallet",
  "shell": "@ Shell Wallet",
  "station": "@ Station Wallet",
  "trust": "@ Trust Wallet",
  "vectis": "@ Vectis Wallet",
  "web3auth": "@ Web3Auth",
  "xdefi": "@ Xdefi Wallet"
}


================================================
FILE: docs/integrating-wallets/adding-all-wallets.mdx
================================================
# How to Add All Wallets at Once

The `cosmos-kit` package exports all supported `wallets` in CosmosKit.

## Add `cosmos-kit`

```sh
# npm
npm i cosmos-kit

# pnpm
pnpm i cosmos-kit

# yarn
yarn add cosmos-kit
```

## Import the wallets

```js
import { wallets } from "cosmos-kit";
```

## Add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={wallets}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```

## Subset of wallets
```js
import { wallets } from 'cosmos-kit'

wallets.mobile      // An array of mobile wallets
wallets.extension   // An array of extension wallets
wallets.for('keplr', 'cosmostation')            // [KeplrExtensionWallet, KeplrMobileWallet, CosmostationExtensionWallet, CosmostationMobileWallet]
wallets.for('keplr', 'cosmostation').mobile     // [KeplrMobileWallet, CosmostationMobileWallet]
wallets.for('keplr', 'cosmostation').extension  // [KeplrExtensionWallet, CosmostationExtensionWallet]
wallets.not('coin98', 'compass')                // wallets except Coin98 and Compass
wallets.keplr           // [KeplrExtensionWallet, KeplrMobileWallet]
wallets.keplr.mobile    // KeplrMobileWallet
wallets.keplr.extension // KeplrExtensionWallet
```

================================================
FILE: docs/integrating-wallets/adding-new-wallets.mdx
================================================
# How to Integrate New Wallets into CosmosKit

## Quickly Add Extension Wallets

1. Copy files in [Leap Extension](https://github.com/hyperweb-io/cosmos-kit/tree/main/wallets/leap-extension/src/extension) to your package;

2. Replace `Leap` with your wallet name (_with first letter capitalized_) **globally**;

3. Replace `leap` with your wallet name (_with first letter in lowercase_) **globally**;

4. Edit file `client.ts`, `registry.ts`, `types.ts` and `utils.ts`. Replace what is different from Leap with the new wallet specified methods/properties.

5. Construct the MainWallet (_class in `main-wallet.ts`_) instance and put it into `ChainProvider` `wallets` property.

## Quickly Add Mobile Wallets

### For wallets support [Wallet Connect v2.0](https://docs.walletconnect.com/2.0)

1. Copy files in [Keplr Mobile](https://github.com/hyperweb-io/cosmos-kit/tree/main/wallets/keplr-mobile/src/wallet-connect) to your package;

2. Replace `Keplr` with your wallet name (_with first letter capitalized_) **globally**;

3. Replace `keplr` with your wallet name (_with first letter in lowercase_) **globally**;

4. Edit file `client.ts`, `registry.ts` and `types.ts`. Replace what is different from Keplr with the new wallet specified methods/properties. For `client.ts`, the main replacement would happen in `getAppUrl` and the `method` parameter of `sendCustomRequest`

5. Construct the MainWallet (_class in `main-wallet.ts`_) instance and put it into `ChainProvider` `wallets` property.

## Add New Wallets from Scratch

### 1️⃣ Prepare basic information for wallet <span id="1-prepare-basic-information-for-wallet"></span>

#### Required properties

| Key                             | Type                                                             | Description                                                                                                                                                                    |
| ------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **name**                        | `WalletName = string`                                            | identifier                                                                                                                                                                     |
| **prettyName**                  | `string`                                                         | display name                                                                                                                                                                   |
| **mode**                        | `WalletMode = 'extension' \| 'wallet-connect'`                   | wallet client type                                                                                                                                                             |
| **mobileDisabled**<sup>\*</sup> | `boolean`                                                        | display on mobile or not                                                                                                                                                       |
| **walletconnect**               | `{ name: string; projectId: string; encoding?: BufferEncoding }` | only required when you are integrating mobile wallets based on [walletconnect](https://walletconnect.com/). If `encoding` is undefined, by default using `hex` to encode bytes |

\* <span style={{fontSize: '0.85rem'}}> Usually `true` when **mode** is `wallet-connect`, `false` when **mode** is `extension`.</span>

#### Optional properties

| Key                           | Type           | Description             |
| ----------------------------- | ---------------| ------------------------|
| **rejectMessage**             | `string` \| `{ source: string; target?: string }`  | `rejectMessage` or `rejectMessage.source` is error message string thrown by wallet app/extension when user rejects, while `rejectMessage.target` is `message` returned by hooks. If not provided, `target` would be `'Request Rejected!'` |
| **connectEventNamesOnWindow** | `string[]`                                         | window event names to fire auto-connect                                                                                                        |
| **connectEventNamesOnClient** | `string[]`                                         | wallet client event names to fire auto-connect (make sure `on` and `off` methods are defined in [`WalletClient`](#2-implement-walletclient))   |
| **downloads**                 | [`DownloadInfo[]`](https://github.com/hyperweb-io/cosmos-kit/blob/ce50648487e73c1f6f17777347df7984168381af/packages/core/src/types/wallet.ts#L28-L31) | wallet app/extension download information |
| **logo**                      | `string` \| `{ major: string, minor: string }`     | wallet logo url, display on default modal. For MetaMask Snaps, use `logo: { major: METAMASK_LOGO, minor: WALLET_LOGO }`|
| **extends**                   | 'MetaMask'                                         | indicate it's a MetaMask Snap

#### Examples

- [Keplr Extension - Wallet Info](https://github.com/hyperweb-io/cosmos-kit/tree/main/wallets/keplr-extension/src/extension/registry.ts)

- [Keplr Mobile - Wallet Info](https://github.com/hyperweb-io/cosmos-kit/tree/main/wallets/keplr-mobile/src/wallet-connect/registry.ts)jk

### 2️⃣ Implement `WalletClient` <span id="2-implement-walletclient"></span>

`MainWallet` is a class organizing all `ChainWallet`s. **It should extend `MainWalletBase` class**, in which protected `_chainWallets` property stores all `ChainWallet`s.

#### Required methods

| Key                  | Type                                          | Description                                             |
| -------------------- | --------------------------------------------- | ------------------------------------------------------- |
| **getSimpleAccount** | `(chainId: string) => Promise<SimpleAccount>` | return account with address but without pubkey and algo |

#### Optional methods

| Key                  | Type                                                                        | Description                                                                                                                                     |
| -------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **getAccount**       | `(chainId: string) => Promise<WalletAccount>`<sup>\*</sup>                  | return account with address, pubkey and algo                                                                                                    |
| **getOfflineSigner** | `(chainId: string, preferredSignType?: SignType) => Promise<OfflineSigner>` | prioritize returning `preferredSignType` (by default `amino`) corresponding signer if it is available, otherwise return siger that is provided. |
| **enable**           | `(chainIds: string \| string[]) => Promise<void>`                           | give permission for the webpage to access wallet                                                                                                |
| **addChain**         | `(chainInfo: ChainRecord) => Promise<void>`                                 | add new Cosmos-SDK based blockchains that isn't natively integrated to wallet app/extension                                                     |
| **on**               | `(type: string, listener: EventListenerOrEventListenerObject) => void`      | add event listener                                                                                                                              |
| **off**              | `(type: string, listener: EventListenerOrEventListenerObject) => void`      | remove event listener                                                                                                                           |

#### Examples

- [Keplr Client](https://github.com/hyperweb-io/cosmos-kit/tree/main/wallets/keplr-extension/src/extension/client.ts)

### 3️⃣ Extend `ChainWalletBase` <span id="3-extend-chainwalletbase"></span>

Create a `ChainWallet` class that extends `ChainWalletBase`. `ChainWallet` provides wallet information for a particular chain, e.g. `address`, `offlineSigner`, etc.

`ChainWalletBase` has implemented a bunch of methods such as wallet connection, sign, broadcast, etc. [[learn more]](#). Therefore, normally you don't need to do any extra work inside `ChainWallet`. But feel free to overwrite these methods or add new methods/properties if customization is needed to meet new demand.

#### Examples

- [Keplr Extension - Chain Wallet](https://github.com/hyperweb-io/cosmos-kit/tree/main/wallets/keplr-extension/src/extension/chain-wallet.ts)

- [Keplr Mobile - Chain Wallet](https://github.com/hyperweb-io/cosmos-kit/tree/main/wallets/keplr-mobile/src/wallet-connect/chain-wallet.ts)

### 4️⃣ Extend `MainWalletBase`

Create a `MainWallet` class that extends `MainWalletBase`. `MainWallet` organizes all `ChainWallet`s, which are stored in protected member `_chainWallets`.

> Note: Class `ChainWallet` created in [Step 3](#3-extend-chainwalletbase) is required in `MainWalletBase` construction.

#### Required methods

| Key            | Type                                       |
| -------------- | ------------------------------------------ |
| **initClient** | `() => void \| Promise<void>`<sup>\*</sup> |

\* <span style={{fontSize: '0.85rem'}}> `WalletClient` is the one implemented in [Step 2](#2-implement-walletclient).</span>

Also, feel free to overwrite methods in `MainWalletBase` or add new methods/properties if necessary.

#### Examples

- [Keplr Extension - Main Wallet](https://github.com/hyperweb-io/cosmos-kit/tree/main/wallets/keplr-extension/src/extension/main-wallet.ts)

- [Keplr Mobile - Main Wallet](https://github.com/hyperweb-io/cosmos-kit/tree/main/wallets/keplr-mobile/src/wallet-connect/main-wallet.ts)

### 5️⃣ Get `MainWallet` instance

You can construct your `MainWallet` Instance according to your `MainWallet` construct method now. Usually the `walletInfo` object prepared in [Step 1](#1-prepare-basic-information-for-wallet) is imported here as a construction argument.

#### Examples

- [keplrExtension](https://github.com/hyperweb-io/cosmos-kit/tree/main/wallets/keplr-extension/src/keplr.ts) & [keplrMobile](https://github.com/hyperweb-io/cosmos-kit/tree/main/wallets/keplr-mobile/src/keplr.ts)

Last but not least, append this instance to the `wallets` property of [ChainProvider](../provider/chain-provider).

## 6️⃣ Don't Forget To Update Docs

Add `Mardown File` just like other wallets [here](https://github.com/hyperweb-io/cosmos-kit/tree/main/packages/docs/pages/integrating-wallets).


================================================
FILE: docs/integrating-wallets/compass.mdx
================================================
# How to Add Compass Wallet to CosmosKit

There are two packages for compass

- `@cosmos-kit/compass`
- `@cosmos-kit/compass-extension`

`@cosmos-kit/compass` export all available compass wallets (currently only extension available), while if you only want to add a particular one, choose `@cosmos-kit/compass-extension`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/compass` for example

## add `@cosmos-kit/compass`

```
yarn add @cosmos-kit/compass
```

## import the wallets

```js
import { wallets as compass } from "@cosmos-kit/compass";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...compass]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/cosmos-metamask-extension.mdx
================================================
# How to Add Cosmos MetaMask Extension to CosmosKit

- `@cosmos-kit/cosmos-extension-metamask`

`@cosmos-kit/cosmos-extension-metamask` export wallets for connecting to the official Cosmos MetaMask Snap

## add `@cosmos-kit/cosmos-extension-metamask`

```
yarn add @cosmos-kit/cosmos-extension-metamask
```

## import the wallets

```js
import { wallets } from "@cosmos-kit/cosmos-extension-metamask";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...wallets]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/cosmostation.mdx
================================================
# How to Add Cosmostation Wallet to CosmosKit

There are three packages for cosmostation

- `@cosmos-kit/cosmostation`
- `@cosmos-kit/cosmostation-extension`
- `@cosmos-kit/cosmostation-mobile` (using walletconnect v1, v2 is coming soon)

`@cosmos-kit/cosmostation` export all available cosmostation wallets, while if you only want to add a particular one, choose `@cosmos-kit/cosmostation-extension` or `@cosmos-kit/cosmostation-mobile`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/cosmostation` for example

## add `@cosmos-kit/cosmostation`

```
yarn add @cosmos-kit/cosmostation
```

## import the wallets

```js
import { wallets as cosmostation } from "@cosmos-kit/cosmostation";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...cosmostation]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/exodus.mdx
================================================
# How to Add Exodus Wallet to CosmosKit

There are two packages for exodus

- `@cosmos-kit/exodus`
- `@cosmos-kit/exodus-extension`

`@cosmos-kit/exodus` export all available exodus wallets (currently only extension available), while if you only want to add a particular one, choose `@cosmos-kit/exodus-extension`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/exodus` for example

## add `@cosmos-kit/exodus`

```
yarn add @cosmos-kit/exodus
```

## import the wallets

```js
import { wallets as exodus } from "@cosmos-kit/exodus";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...exodus]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/fin.mdx
================================================
# How to Add Fin Wallet to CosmosKit

There are two packages for fin

- `@cosmos-kit/fin`
- `@cosmos-kit/fin-extension`

`@cosmos-kit/fin` export all available fin wallets (currently only extension available), while if you only want to add a particular one, choose `@cosmos-kit/fin-extension`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/fin` for example

## add `@cosmos-kit/fin`

```
yarn add @cosmos-kit/fin
```

## import the wallets

```js
import { wallets as fin } from "@cosmos-kit/fin";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...fin]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/frontier.mdx
================================================
# How to Add Frontier Wallet to CosmosKit

There are two packages for frontier

- `@cosmos-kit/frontier`
- `@cosmos-kit/frontier-extension`

`@cosmos-kit/frontier` export all available frontier wallets (currently only extension available), while if you only want to add a particular one, choose `@cosmos-kit/frontier-extension`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/frontier` for example

## add `@cosmos-kit/frontier`

```
yarn add @cosmos-kit/frontier
```

## import the wallets

```js
import { wallets as frontier } from "@cosmos-kit/frontier";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...frontier]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/index.mdx
================================================
# Wallet Integrations

## Wallet Providers

If you are a wallet provider, please see the docs for adding your wallet to our repository as a supported wallet:

#### 🔌 [Documentation for Wallet Providers to add a new Wallet](./integrating-wallets/adding-new-wallets)

## Dapp developers

### Supported Wallets

See left sidebar (Titles starting with `@` are wallets supported by CosmosKit).


================================================
FILE: docs/integrating-wallets/keplr.mdx
================================================
# How to Add Keplr Wallet to CosmosKit

There are three packages for keplr

- `@cosmos-kit/keplr`
- `@cosmos-kit/keplr-extension`
- `@cosmos-kit/keplr-mobile`

`@cosmos-kit/keplr` export all available keplr wallets, while if you only want to add a particular one, choose `@cosmos-kit/keplr-extension` or `@cosmos-kit/keplr-mobile`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/keplr` for example

## install `@cosmos-kit/keplr`

```
yarn add @cosmos-kit/keplr
```

## import the wallets

```js
import { wallets as keplr } from "@cosmos-kit/keplr";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...keplr]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/leap-capsule-social-login.mdx
================================================
# @cosmos-kit/leap-capsule-social-login


`@cosmos-kit/leap-capsule-social-login` is the social login integration for CosmosKit using `@leapwallet/cosmos-social-login-capsule-provider`

> You need install [@leapwallet/cosmos-social-login-capsule-provider-ui](https://www.npmjs.com/package/@leapwallet/cosmos-social-login-capsule-provider-ui) package for UI.

> When you build it please have the environment variables `CAPSULE_API_KEY` and  `CAPSULE_ENV` which you can request from [here](https://7f4shq8oyfd.typeform.com/to/F86oVLhb?typeform-source=usecapsule.com)

## NextJS

For nextjs we recommend to load the module dynamic or async as it is not yet supporting SSR.

> When you build it please have the environment variables `NEXT_PUBLIC_CAPSULE_API_KEY` and  `NEXT_PUBLIC_CAPSULE_ENV` which you can request from [here](https://7f4shq8oyfd.typeform.com/to/F86oVLhb?typeform-source=usecapsule.com)

### In next.config.js

>   transpilePackages: ["@cosmos-kit/leap-social-login", "@leapwallet/capsule-web-sdk-lite", "@leapwallet/cosmos-social-login-capsule-provider"],


### For example

```jsx

function MyApp({ Component, pageProps }: AppProps) {
  const defaultWallets: MainWalletBase[] = [...keplrWallets, ...leapWallets];
  const [wallets, setWallets] = useState<MainWalletBase[]>(defaultWallets)
  const [loadingWallets, setLoadingWallet] = useState<boolean>(false);
    
  useEffect(() => {
      setLoadingWallet(true)
      import("@cosmos-kit/leap-capsule-social-login").then(
        (CapsuleModule) => {
          return CapsuleModule.wallets;
        },
      ).then((leapSocialLogin) => {
        setWallets([...keplrWallets, ...leapWallets, ...leapSocialLogin])
        setLoadingWallet(false);
      })
    }, [])


    if (loadingWallets) {
      return <>Loading...</>
    }


    return (
      <RootLayout>
        <ChainProvider
          chains={chains}
          assetLists={[...assets]}
          wallets={wallets}
          throwErrors={false}
          subscribeConnectEvents={false}
          defaultNameService={"stargaze"}
          logLevel={"DEBUG"}
          endpointOptions={{
            isLazy: true,
            endpoints: {
              cosmoshub: {
                rpc: [
                  {
                    url: "https://rpc.cosmos.directory/cosmoshub",
                    headers: {},
                  },
                ],
              },
            },
          }}
          disableIframe={false}
          >
          <Component {...pageProps} />
        </ChainProvider>
        <CustomCapsuleModalViewX />
      </RootLayout>
    );
}

export default MyApp;


const LeapSocialLogin = dynamic(
  () =>
    import("@leapwallet/cosmos-social-login-capsule-provider-ui").then(
      (m) => m.CustomCapsuleModalView,
    ),
  { ssr: false },
);

export function CustomCapsuleModalViewX() {
  const [showCapsuleModal, setShowCapsuleModal] = useState(false);

  useEffect(() => {
    window.openCapsuleModal = () => {
      setShowCapsuleModal(true);
    }
  }, [])

  return (
    <>
      <LeapSocialLogin
        showCapsuleModal={showCapsuleModal}
        setShowCapsuleModal={setShowCapsuleModal}
        theme={'dark'}
        onAfterLoginSuccessful={() => {
          window.successFromCapsuleModal();
        }}
        onLoginFailure={
          () => {
            window.failureFromCapsuleModal();
          }
        }
      />
    </>
  );
}
```

================================================
FILE: docs/integrating-wallets/leap-metamask-comos-snap.mdx
================================================
# How to Add Leap Metamask Cosmos Snap to CosmosKit

- `@cosmos-kit/leap-metamask-cosmos-snap`

`@cosmos-kit/leap-metamask-cosmos-snap` export wallets for connecting to the leap cosmos snap in metamask

## add `@cosmos-kit/leap-metamask-cosmos-snap`

```
yarn add @cosmos-kit/leap-metamask-cosmos-snap
```

## import the wallets

```js
import { wallets } from "@cosmos-kit/leap-metamask-cosmos-snap";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...wallets]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/leap.mdx
================================================
# How to Add Leap Wallet to CosmosKit

There are three packages for leap

- `@cosmos-kit/leap`
- `@cosmos-kit/leap-extension`
- `@cosmos-kit/leap-mobile`
- `@cosmos-kit/leap-metamask-cosmos-snap`

`@cosmos-kit/leap` export all available leap wallets, while if you only want to add a particular one, choose `@cosmos-kit/leap-extension` or `@cosmos-kit/leap-mobile` or `@cosmos-kit/leap-metamask-cosmos-snap`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/leap` for example

## add `@cosmos-kit/leap`

```
yarn add @cosmos-kit/leap
```

## import the wallets

```js
import { wallets as leap } from "@cosmos-kit/leap";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...leap]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/ledger.mdx
================================================
# How to Add Ledger to CosmosKit

## Prerequisites

1. Connect your Ledger device via an USB cable and unlock it.
2. Open the Cosmos app in Ledger, which shows `Cosmos Ready` in the screen.

## Browser Support

This package uses the [WebUSB](https://caniuse.com/webusb) API to connect to Ledger devices.  
We recommend using the latest version of Chrome and Chrome Android.

- https://developer.mozilla.org/en-US/docs/Web/API/USB/getDevices
- https://developer.mozilla.org/en-US/docs/Web/API/USB/requestDevice

## Add `@cosmos-kit/ledger`

```sh
# npm
npm i @cosmos-kit/ledger

# pnpm
pnpm i @cosmos-kit/ledger

# yarn
yarn add @cosmos-kit/ledger
```

## Import the wallets

```js
import { wallets as ledger } from "@cosmos-kit/ledger";
```

## Add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...ledger]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/ninji.mdx
================================================
# How to Add Ninji Wallet to CosmosKit

There are two packages for ninji

- `@cosmos-kit/ninji`
- `@cosmos-kit/ninji-extension`

`@cosmos-kit/ninji` export all available ninji wallets (currently only extension available), while if you only want to add a particular one, choose `@cosmos-kit/ninji-extension`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/ninji` for example

## add `@cosmos-kit/ninji`

```
yarn add @cosmos-kit/ninji
```

## import the wallets

```js
import { wallets as ninji } from "@cosmos-kit/ninji";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...ninji]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/oko.mdx
================================================
# How to Add Oko Wallet to CosmosKit

Oko makes onboarding to your application easy, fast, and secure. Users can sign up with familiar login methods (email, social, or SSO) while enjoying the benefits of true crypto ownership.

## install the package

```
yarn add @cosmos-kit/oko
```

## import makeOkoWallets

```js
import { makeOkoWallets } from "@cosmos-kit/oko";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
    <ChainProvider
      chains={chains}
      assetLists={assets}
      wallets={[
        ...makeOkoWallets({
          apiKey: "your-oko-api-key",
        }),
      ]}
    >
      <Component {...pageProps} />
    </ChainProvider>
  );
}

export default MyCosmosApp;
```

> Note: By default, all available login providers (Google, Email, etc) are enabled. You can optionally specify `loginMethods` to select specific providers.


================================================
FILE: docs/integrating-wallets/okx.mdx
================================================
# How to Add Okx Wallet to CosmosKit

There are two packages for okxwallet

- `@cosmos-kit/okxwallet`
- `@cosmos-kit/okxwallet-extension`

`@cosmos-kit/okxwallet` export all available okxwallet wallets, while if you only want to add a particular one, choose `@cosmos-kit/okxwallet-extension`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/okxwallet` for example

## install `@cosmos-kit/okxwallet`

```
yarn add @cosmos-kit/okxwallet
```

## import the wallets

```js
import { wallets as okxwallet } from "@cosmos-kit/okxwallet";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...okxwallet]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/omni.mdx
================================================
# How to Add Omni Wallet to CosmosKit

There are two packages for omni

- `@cosmos-kit/omni`
- `@cosmos-kit/omni-mobile`

`@cosmos-kit/omni` export all available omni wallets (currently only mobile available), while if you only want to add a particular one, choose `@cosmos-kit/omni-mobile`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/omni` for example

## add `@cosmos-kit/omni`

```
yarn add @cosmos-kit/omni
```

## import the wallets

```js
import { wallets as omni } from "@cosmos-kit/omni";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...omni]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/shell.mdx
================================================
# How to Add Shell Wallet to CosmosKit

There are three packages for shell

- `@cosmos-kit/shell`
- `@cosmos-kit/shell-extension`

`@cosmos-kit/shell` export all available shell wallets, while if you only want to add a particular one, choose `@cosmos-kit/shell-extension`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/shell` for example

## install `@cosmos-kit/shell`

```
yarn add @cosmos-kit/shell
```

## import the wallets

```js
import { wallets as shell } from "@cosmos-kit/shell";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...shell]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/station.mdx
================================================
# How to Add Station Wallet to CosmosKit

There are two packages for station

- `@cosmos-kit/station`
- `@cosmos-kit/station-extension`

`@cosmos-kit/station` export all available station wallets (currently only extension available), while if you only want to add a particular one, choose `@cosmos-kit/station-extension`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/station` for example

## add `@cosmos-kit/station`

```
yarn add @cosmos-kit/station
```

## import the wallets

```js
import { wallets as station } from "@cosmos-kit/station";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...station]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/trust.mdx
================================================
# How to Add Trust Wallet to CosmosKit

There are three packages for Trust

- `@cosmos-kit/trust`
- `@cosmos-kit/trust-extension` (NOT recommended)
- `@cosmos-kit/trust-mobile`

> 💡 According to [Trust Doc](https://developer.trustwallet.com/developer/develop-for-trust/browser-extension), Trust Wallet Browser Extension currently supports only Ethereum & EVM chains, and support for Cosmos is still in progress. Because of the block from wallet side, `@cosmos-kit/trust-extension` is not fully implemented yet and we don't recommend to use it for now.
>
> Because of the reason above, only `@cosmos-kit/trust-mobile` is included in `@cosmos-kit/trust` so far.

Take `@cosmos-kit/trust` for example

## install `@cosmos-kit/trust`

```
yarn add @cosmos-kit/trust
```

## import the wallets

```js
import { wallets as trust } from "@cosmos-kit/trust";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...trust]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/vectis.mdx
================================================
# How to Add Vectis Wallet to CosmosKit

There are two packages for vectis

- `@cosmos-kit/vectis`
- `@cosmos-kit/vectis-extension`

`@cosmos-kit/vectis` export all available vectis wallets (currently only extension available), while if you only want to add a particular one, choose `@cosmos-kit/vectis-extension`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/vectis` for example

## add `@cosmos-kit/vectis`

```
yarn add @cosmos-kit/vectis
```

## import the wallets

```js
import { wallets as vectis } from "@cosmos-kit/vectis";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...vectis]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/web3auth.mdx
================================================
# How to Add Web3Auth Wallet to CosmosKit

> ### Note! This package is still on progress. it doesn't work on mobile yet and it's pretty vulnerable to XSS attacks.

There is one package for web3auth

- `@cosmos-kit/web3auth`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

## install `@cosmos-kit/web3auth`

```
yarn add @cosmos-kit/web3auth
```

## import the wallets

```js
import { makeWeb3AuthWallets, PromptSign } from "@cosmos-kit/web3auth";
import { useMemo, useState } from "react";
```

## set up web3auth account to retrieve a client ID

https://web3auth.io/docs/dashboard-setup/

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  const [web3AuthPrompt, setWeb3AuthPrompt] = useState<{
    signData: SignData
    resolve: (approved: boolean) => void
  } | undefined>();
  const web3AuthWallets = useMemo(
    () =>
      makeWeb3AuthWallets({
        loginMethods: [
          // add whichever login methods you want to support
          {
            provider: "google",
            name: "Google",
            logo: "https://upload.wikimedia.org/wikipedia/commons/5/53/Google_%22G%22_Logo.svg",
          },
        ],
        // get client ID and network from your web3auth dashboard:
        // https://web3auth.io/docs/dashboard-setup/get-client-id
        client: {
          clientId: "localhostid",
          web3AuthNetwork: "testnet",
        },
        // set state to show data to sign and approve/reject buttons in modal
        promptSign: async (_, signData) =>
          new Promise((resolve) =>
            setWeb3AuthPrompt({
              signData,
              resolve: (approved) => {
                setWeb3AuthPrompt(undefined);
                resolve(approved);
              },
            })
          ),
      }),
    []
  );

  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...web3Auth]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />

        {/* wallet signature prompt */}
        <Modal
          visible={web3AuthPrompt !== undefined}
          onClose={() => web3AuthPrompt?.resolve(false)}
        >
          <DisplayDataToSign
            data={signData}
            approve={() => web3AuthPrompt?.resolve(true)}
            reject={() => web3AuthPrompt?.resolve(false)}
          />
        </Modal>
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/integrating-wallets/xdefi.mdx
================================================
# How to Add Xdefi Wallet to CosmosKit

There are two packages for xdefi

- `@cosmos-kit/xdefi`
- `@cosmos-kit/xdefi-extension`

`@cosmos-kit/xdefi` export all available xdefi wallets (currently only extension available), while if you only want to add a particular one, choose `@cosmos-kit/xdefi-extension`

> Note: all these packages export `wallets` and it's an array of `MainWalletBase`

Take `@cosmos-kit/xdefi` for example

## add `@cosmos-kit/xdefi`

```
yarn add @cosmos-kit/xdefi
```

## import the wallets

```js
import { wallets as xdefi } from "@cosmos-kit/xdefi";
```

## add to your provider

```js
function MyCosmosApp({ Component, pageProps }: AppProps) {
  return (
      <ChainProvider
        chains={chains}
        assetLists={assets}
        wallets={[...xdefi]}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}

export default MyCosmosApp;
```


================================================
FILE: docs/migration-to-v2.mdx
================================================
# Migration from V1 to V2

## Major Changes

1. `ChakraUI` Removed

In CosmosKit V2, we discard the dependency on `ChakraUI` due to numerous runtime errors and the cost of CSS-in-JS.

Main changes lie in `@cosmos-kit/react`, where the default modal locates. All the modal components are imported from `@interchain-ui/react`, which is our UI Kit in Hyperweb. The latest `@interchain-ui/react` discards `ChakraUI` and instead adopts a pure CSS styling solution through a package called `vanilla-extract`.

2. Build Process Changed

In CosmosKit V2, we used pure `tsc` to compile CommonJS, ESM (es2022) instead of `babel`. Also, `.js` and `.d.ts` files are no longer to be separated in different folders, in this way non-index sources can easily find its corresponding types.

## Migration Guides

1. In CosmosKit V2, we require developers to install `@interchain-ui/react` and require **`import "@interchain-ui/react/styles"`** in your top-level route/layout if you are using our default modal in `@cosmos-kit/react`. i.e. in [`_app.tsx`](https://github.com/hyperweb-io/cosmos-kit/blob/af05600fd1913e0d3eb1bbef05382c1a06c6af69/packages/example/pages/_app.tsx#L4) for next project.

2. We don't export `defaultTheme` anymore in `@cosmos-kit/react` in CosmosKit V2.

3. `WrappedWithChakra` and `modalTheme` is removed in properties of `ChainProvider` from `@cosmos-kit/react`.

4. `Web3Auth` wallet instance import has been replaced by constructing the wallet instance with a wallet generator function. In this way the web3auth implementation becomes much more secure, and also makes it support any of the login providers. See details [here](./integrating-wallets/web3auth)

## Customizing the default modal

Customizing the default modal styles is done through `modalTheme` prop of `<ChainProvider />`

We are currently providing 2 ways to customize the default modal:

1. Overriding the theme object:

By using the `modalTheme.themeDefs` and `modalTheme.customTheme`, you can override all of the theme tokens however you want

```TSX

<ThemeProvider
  themeDefs={[
    {
      {/* Provide a unique name for your custom theme */}
      name: ``,
      vars: {
        colors: {
          {/* Override your branding colors */}
          primary500: ``,
        },
        space: {
          {/* Or spacing tokens */}
        }
      },
    },
  ]}
  {/* Custom theme name, this corresponds to one of the theme provided in themeDefs prop */}
  customTheme="custom"
>
  {children}
</ThemeProvider>
```

The full object shape of `themeDefs[index].vars` is as below

```json
{
  colors: {
    primary: ``,
    body: ``,
    background: ``,
    link: ``,
    linkHover: ``,
    text: ``,
    textSecondary: ``,
    textDanger: ``,
    textWarning: ``,
    textPlaceholder: ``,
    rewardBg: ``,
    rewardContent: ``,
    cardBg: ``,
    inputBorder: ``,
    inputBg: ``,
    inputDangerBorder: ``,
    inputDangerBg: ``,
    inputDisabledBg: ``,
    inputDisabledText: ``,
    progressBg: ``,
    progressValue: ``,
    progressCursor: ``,
    divider: ``,
    menuItemBg: ``,
    menuItemBgHovered: ``,
    menuItemBgActive: ``,
    skeletonBg: ``,
    black: ``,
    blackPrimary: ``,
    white: ``,
    transparent: ``,
    current: ``,
    whiteAlpha50: ``,
    whiteAlpha100: ``,
    whiteAlpha200: ``,
    whiteAlpha300: ``,
    whiteAlpha400: ``,
    whiteAlpha500: ``,
    whiteAlpha600: ``,
    whiteAlpha700: ``,
    whiteAlpha800: ``,
    whiteAlpha900: ``,
    blackAlpha50: ``,
    blackAlpha100: ``,
    blackAlpha200: ``,
    blackAlpha300: ``,
    blackAlpha400: ``,
    blackAlpha500: ``,
    blackAlpha600: ``,
    blackAlpha700: ``,
    blackAlpha800: ``,
    blackAlpha900: ``,
    gray50: ``,
    gray100: ``,
    gray200: ``,
    gray300: ``,
    gray400: ``,
    gray500: ``,
    gray600: ``,
    gray700: ``,
    gray800: ``,
    gray900: ``,
    red50: ``,
    red100: ``,
    red200: ``,
    red300: ``,
    red400: ``,
    red500: ``,
    red600: ``,
    red700: ``,
    red800: ``,
    red900: ``,
    orange50: ``,
    orange100: ``,
    orange200: ``,
    orange300: ``,
    orange400: ``,
    orange500: ``,
    orange600: ``,
    orange700: ``,
    orange800: ``,
    orange900: ``,
    yellow50: ``,
    yellow100: ``,
    yellow200: ``,
    yellow300: ``,
    yellow400: ``,
    yellow500: ``,
    yellow600: ``,
    yellow700: ``,
    yellow800: ``,
    yellow900: ``,
    green50: ``,
    green100: ``,
    green200: ``,
    green300: ``,
    green400: ``,
    green500: ``,
    green600: ``,
    green700: ``,
    green800: ``,
    green900: ``,
    blue50: ``,
    blue100: ``,
    blue200: ``,
    blue300: ``,
    blue400: ``,
    blue500: ``,
    blue600: ``,
    blue700: ``,
    blue800: ``,
    blue900: ``,
    primary50: ``,
    primary100: ``,
    primary200: ``,
    primary300: ``,
    primary400: ``,
    primary500: ``,
    primary600: ``,
    primary700: ``,
    primary800: ``,
    primary900: ``,
    purple50: ``,
    purple100: ``,
    purple200: ``,
    purple300: ``,
    purple400: ``,
    purple500: ``,
    purple600: ``,
    purple700: ``,
    purple800: ``,
    purple900: ``,
  },
  font: {
    body: ``,
  },
  space: {
    "0": ``,
    "1": ``,
    "2": ``,
    "3": ``,
    "4": ``,
    "5": ``,
    "6": ``,
    "7": ``,
    "8": ``,
    "9": ``,
    "10": ``,
    "11": ``,
    "12": ``,
    "13": ``,
    "14": ``,
    "15": ``,
    "16": ``,
    "17": ``,
    "18": ``,
    "19": ``,
    "20": ``,
    "21": ``,
    "22": ``,
    "23": ``,
    "24": ``,
    "25": ``,
    "26": ``,
    "27": ``,
    "28": ``,
    "29": ``,
    "30": ``,
    auto: ``,
    full: ``,
    fit: ``,
    max: ``,
    min: ``,
    viewHeight: ``,
    viewWidth: ``,
    none: ``,
  },
  borderWidth: {
    none: ``,
    sm: ``,
    base: ``,
    md: ``,
    lg: ``,
    xl: ``,
  },
  borderStyle: {
    none: ``,
    solid: ``,
    dotted: ``,
    dashed: ``,
    groove: ``,
    ridge: ``,
    hidden: ``,
    double: ``,
    inset: ``,
    outset: ``,
    unset: ``,
  },
  boxShadow: {
    xs: ``,
    sm: ``,
    base: ``,
    md: ``,
    lg: ``,
    xl: ``,
    "2xl": ``,
    inset: ``,
    primaryOutline: ``,
    none: ``,
    "dark-lg": ``,
  },
  radii: {
    none: ``,
    sm: ``,
    base: ``,
    md: ``,
    lg: ``,
    xl: ``,
    "2xl": ``,
    "3xl": ``,
    "4xl": ``,
    full: ``,
  },
  letterSpacing: {
    tighter: ``,
    tight: ``,
    normal: ``,
    wide: ``,
    wider: ``,
    widest: ``,
  },
  lineHeight: {
    normal: ``,
    none: ``,
    shorter: ``,
    short: ``,
    base: ``,
    tall: ``,
    taller: ``,
  },
  fontWeight: {
    hairline: ``,
    thin: ``,
    light: ``,
    normal: ``,
    medium: ``,
    semibold: ``,
    bold: ``,
    extrabold: ``,
    black: ``,
  },
  fontSize: {
    "3xs": ``,
    "2xs": ``,
    xs: ``,
    sm: ``,
    md: ``,
    lg: ``,
    xl: ``,
    "2xl": ``,
    "3xl": ``,
    "4xl": ``,
    "5xl": ``,
    "6xl": ``,
    "7xl": ``,
    "8xl": ``,
    "9xl": ``,
    "10xl": ``,
    "11xl": ``,
    "12xl": ``,
    "13xl": ``,
    "14xl": ``,
    "15xl": ``,
  },
  zIndex: {
    "0": ``,
    "10": ``,
    "20": ``,
    "30": ``,
    "40": ``,
    "50": ``,
    "100": ``,
    auto: ``,
  },
}
```

2. Overriding css vars specific to a component.

This is done through the `modalTheme.overrides` prop, which is a record with keys corresponding to a slot names and values are objects of overridable property name and its value in each theme mode.

```json
{
  <slot_name>: {
    <property>: { light: <value>, dark: <value> }
  }
}
```

Example:
```TSX
<ThemeProvider
  overrides={{
    // Slot named 'button'
    button: {
      // map overridable props to their values for each theme mode
      bg: {
        light: "red",
        dark: "blue",
      },
    },
  }}
>
  {children}
</ThemeProvider>
```

Supported overridable slots/components and their overridable state/attributes are:

```json
{
  "button": [
    "bg",
    "hoverBg",
    "color",
    "hoverColor"
  ],
  "clipboard-copy-text": [
    "color",
    "borderColor"
  ],
  "connect-modal": [
    "bg",
    "shadow"
  ],
  "connect-modal-install-button": [
    "bg",
    "borderColor",
    "color",
    "shadow"
  ],
  "connect-modal-head-title": [
    "color"
  ],
  "connect-modal-wallet-button": [
    "color",
    "bg",
    "focusedBg",
    "hoverBg",
    "focusedShadow",
    "hoverShadow",
  ],
  "connect-modal-wallet-button-label": [
    "color"
  ],
  "connect-modal-wallet-button-sublogo": [
    "bg",
    "borderColor"
  ],
  "connect-modal-qr-code": [
    "bg",
    "color",
    "borderColor",
    "shadow"
  ],
  "connect-modal-qr-code-shadow": [
    "bg"
  ],
  "connect-modal-qr-code-error": [
    "bg"
  ],
  "connect-modal-qr-code-error-button": [
    "bg",
    "color",
    "shadow"
  ],
  "connect-modal-qr-code-loading": [
    "bg"
  ]
}
```

Additionally, you can customize the base modal class names using the follow properties of `<ChainProvider />`'s `modalTheme` prop:

```ts
type ModalCustomizationProps = {
  modalContainerClassName?: string;
  modalContentClassName?: string;
  modalChildrenClassName?: string;
  modalContentStyles?: React.CSSProperties;
};
```

## Improvement in bundle size in v2

Since we dropped Chakra UI to build our own foundational UI system. The bundle size dropped a lot.
Here are some screenshots and bundle size improvement

### Core UI size improvement

In the new package `@interchain-ui/react`, package size dropped from 362kb to 159kb (minified + gzipped)

![Old](../../public/bundle-size-screenshots/old-cosmology-ui.png)
![New](../../public/bundle-size-screenshots/new-interchain-ui.png)

### Cosmos Kit size improvement

Additionally, we also reduce the bundle size of cosmos kit by significant amount, from 386kb to just 28kb (minified + gzipped)
![Old](../../public/bundle-size-screenshots/old-v1-cosmos-kit.png)
![New](../../public/bundle-size-screenshots/new-v2-cosmos-kit.png)

We're pretty happy with the improvement in V2 so far and looking to improve it much more.


================================================
FILE: docs/provider/_meta.json
================================================
{
  "chain-provider": "Chain Provider"
}

================================================
FILE: docs/provider/chain-provider.mdx
================================================
Chain Provider provides necessary information for [hooks](../hooks).

There are two `ChainProvider` from two packages (`@cosmos-kit/react` and `@cosmos-kit/react-lite`) respectively. They are basically the same only except that `ChainProvider` from `@cosmos-kit/react` has more properties of `default modal` (See [Properties for default modal ](#optional-properties-only-for-default-modal) below).

> Note: `preferredSignType` in [`signerOptions`](#signeroptions) determines which signer to use when signing document. By default using `amino` type.

## Required Properties

These properties are shared by `ChainProvider`s from `@cosmos-kit/react` and `@cosmos-kit/react-lite`.

### chains

Required property of type `(Chain | string)[]`.

It defines supported chains. Any actions involving chains beyond it might cause errors.

If chain has been registered in `@chain-registry/client`, you can also simply provide chain name (type `string`) here and it'll fetch the chain information automatically.

See [`Chain` schema](https://github.com/cosmos/chain-registry/blob/master/chain.schema.json).

#### adding localnet and testnets

Example of adding `localosmosis`

`_app.tsx`:

```ts
import { ChainProvider } from '@cosmos-kit/react';
import { wallets } from '@cosmos-kit/keplr';
import { assets, chains } from 'chain-registry';
import { getSigningCosmosClientOptions } from 'osmojs';
import { GasPrice } from '@cosmjs/stargate';

import { SignerOptions } from '@cosmos-kit/core';
import { Chain, AssetList } from '@chain-registry/types';
import { localosmosis, localosmosisAssets } from '../config/localosmosis';

function App({ Component, pageProps }: AppProps) {

  const localosmosis: Chain = {...}; // with chain_name: 'localosmosis'
  const localosmosisAssets: AssetList = {...}; // with chain_name: 'localosmosis'

  const signerOptions: SignerOptions = {
    signingStargate: (_chain: Chain) => {
      return getSigningCosmosClientOptions();
    },
    signingCosmwasm: (chain: Chain) => {
      switch (chain.chain_name) {
        case 'localosmosis':
          return {
            gasPrice: GasPrice.fromString('0.0025uosmo')
          };
      }
    }
  };
  return (
      <ChainProvider
        chains={[...chains, localosmosis]}
        assetLists={[...assets, localosmosisAssets]}
        wallets={wallets}
        signerOptions={signerOptions}
        endpointOptions={{
          endpoints: {
            localosmosis: {
              rpc: ['http://localhost:343434']
            }
          }
        }}
        walletConnectOptions={...} // required if `wallets` contains mobile wallets
      >
        <Component {...pageProps} />
      </ChainProvider>
  );
}
```

### wallets

Required property of type `MainWalletBase[]`

It defines supported wallets. There are several wallets out of box.

```ts
import { wallets as keplrWallet } from "@cosmos-kit/keplr";
import { wallets as cosmostationWallets } from "@cosmos-kit/cosmostation";
import { wallets as leapwallets } from "@cosmos-kit/leap";
```

If you don't like the default wallet settings such as icon, app name (they would be displayed on default modal), you can choose to provide your own settings by importing wallets like this.

```ts
import { KeplrExtensionWallet, KeplrMobileWallet } from '@cosmos-kit/keplr';

const keplrExtensionInfo: Wallet = {...};
const keplrMobileInfo: Wallet = {...};

const keplrExtension = new KeplrExtensionWallet(keplrExtensionInfo);
const KeplrMobile = new KeplrMobileWallet(keplrMobileInfo);

export const wallets = [keplrExtension, KeplrMobile];
```

In addition, you can integrate new wallets in a few steps.

🔌 [How to integrate new wallets into CosmosKit](../integrating-wallets/adding-new-wallets)

### walletconnectOptions

Required when `mobile` wallets dependent on `@comos-kit/walletconnect`(implements walletconnect v2 connection) are added in [`wallets`](#wallets).

**Type:** `WalletConnectOptions`

```tsx
export interface WalletConnectOptions {
  signClient: { projectId: string } & SignClientTypes.Options;
}
```

`projectId` is required and can be obtained from [WalletConnect Cloud](https://cloud.walletconnect.com/sign-in). Create (or use an existing) dapp project and copy its associated project id.

## Optional Properties

### assetLists

Optional property of type `AssetList[]` (comes from `chain-registry`)

It provides chains related assets information. If not provided, will fetch assets information with `@chain-registry/client` according to the chain name provided in [`chains`](#chains).

See [`AssetList` schema](https://github.com/cosmos/chain-registry/blob/master/assetlist.schema.json).

### walletModal

Optional in most cases (Exception see [useChain](../hooks/use-chain)).

**Type**: `({ isOpen, setOpen, walletRepo }: WalletModalProps) => JSX.Element`

Basically the order of wallets follows the order of property `wallets` in ChainProvider, except that all mobiles are moved to the back.

You can also define your own modal component with required props.

#### customize modal with `walletModal`

> Suggest customizing modal with [`modalViews`](#modalviews) instead if you only need to customize modal UI without involving any customized data logic. [`modalViews`](#modalviews) provides an easy and fast way to partially change the default modal UI.

Example of using self-defined modal.

`_app.tsx`:

```tsx
import * as React from 'react';

import { ChainProvider } from '@cosmos-kit/react';

// Define Modal Component
const MyModal = ({ isOpen, setOpen, walletRepo, theme }: WalletModalPropsV2) => {
  function onCloseModal() {
    setOpen(false);
  }

  return (
    <Modal isOpen={isOpen} onClose={onCloseModal}>
      <ModalContent>
        <ModalHeader>Choose Wallet</ModalHeader>
        <ModalCloseButton />
        <ModalBody>
          {walletRepo.wallets.map(({ walletName, connect }) => (
            <Button
              key={walletName}
              colorScheme="blue"
              variant="ghost"
              onClick={() => connect}
            >
              {walletName}
            </Button>
          ))}
        </ModalBody>
      </ModalContent>
    </Modal>
  );
};

function CosmosApp() {
  return (
    <ChainProvider
      ...
      walletModal={MyModal} // Provide walletModal
    >
      <YourWalletRelatedComponents />
    </ChainProvider>
  );
}
```

### defaultNameService

**Type:** `NameServiceName` = `string`;

Currently two name services are registered: `'icns'` and `'stargaze'`. The default name service is `icns`. This property is only used in `getNameService` of `useManager` when parameter `chainName` is undefined, and in `useNameService` when the parameter `name` is not provided. Otherwise it will return the name service object corresponding to provided chain. Therefore it won't affect `getNameService` method returned by `useChain`, since `chainName` is always provide in `useChain`.

### endpointOptions

Optional property. Define preferred endpoints for each chain.

**Type:** `EndpointOptions`

> Note: From `@cosmos-kit/core@1.2.1` `EndpointOptions` type changes a little bit

```tsx
export type ChainName = string;

export interface ExtendedHttpEndpoint extends HttpEndpoint {
  isLazy?: boolean;
}

export interface Endpoints {
  rpc?: (string | ExtendedHttpEndpoint)[];
  rest?: (string | ExtendedHttpEndpoint)[];
  isLazy?: boolean;
}

// Expired Type: `type EndpointOptions = Record<ChainName, Endpoints>`

export interface EndpointOptions {
  isLazy?: boolean;
  endpoints?: Record<ChainName, Endpoints>;
}
```

**Example:**

```tsx
<ChainProvider
  ...
  endpointOptions={{
    endpoints: {
      cosmoshub: {
        rpc: ['http://test.com']
      }
    }
  }}
>
```

#### isLazy

**`isLazy` Explanation:**

`isLazy` is used to control endpoints validation (get the fastest one when first validating).

- When `isLazy` is `false`, will do endpoints validation
- When `isLazy` is `true`, will **disable** endpoints validation
- When `isLazy` is `undefined`, will inherit higher level explicitly set `isLazy`. If none is explicitly set, will do endpoints validation

There are four levels of `isLazy` setting.

**Four Levels of `isLazy`:**

1. Global `isLazy`: `isLazy` in `EndpointOptions` is the highest level with the lowerst priority, which is meant to globally control all endpoints.

2. Chain `isLazy`: `isLazy` in `Endpoints` will control all endpoints for a particular chain. If `isLazy` in `EndpointOptions` and `isLazy` in `Endpoints` are all set and don't agree, the latter predominates.

3. Endpoint `isLazy`: `isLazy` in `ExtendedHttpEndpoint` only controls the one in `ExtendedHttpEndpoint` object. For signing or broadcasting a transaction, this one is the lowerst level and with the highest priority.

4. Parameter `isLazy`: `isLazy` in `getRpcEndpoint` and `getRestEndpoint` parameters. It also globally controls all endpoints. (Note: this one only affects getting endpoint functions with the highest priority, but won't affect signing or broadcasting a transaction.)

The calculation of final `isLazy` can be seen [here](https://github.com/hyperweb-io/cosmos-kit/blob/main/packages/core/src/utils/endpoint.ts#L32-L59).

**`isLazy` Examples:**

- Disabling all endpoints validation

```tsx
endpointOptions={{
  isLazy: true
}}
```

- Disabling `cosmoshub` endpoints validation

```tsx
endpointOptions={{
  cosmoshub: {
    isLazy: true
  }
}}
```

- Disabling a particular endpoint validation

```tsx
endpointOptions={{
  cosmoshub: {
    rpc: [{
      url: 'http://test.com',
      isLazy: true,
    }]
  }
}}
```

### sessionOptions

Define connection session options.

**Type:** `SessionOptions`

```tsx
export interface SessionOptions {
  duration: number; // ms
  callback?: () => void; // when session expires
}
```

**Default:**

```tsx
const sessionOptions: SessionOptions = {
  duration: 1800000, // half an hour
  callback: () => {
    this.mainWallets.forEach((w) => w.disconnectAll(false));
    window?.localStorage.removeItem("cosmos-kit@2:core//current-wallet");
  },
};
```

### signerOptions

Optional property.

```ts
import * as React from "react";

import { Chain } from "@chain-registry/types";
import { chains } from "chain-registry";
import { GasPrice } from "@cosmjs/stargate";
import { getSigningCosmosClientOptions } from "interchain";
import { SignerOptions } from "@cosmos-kit/core";
import { ChainProvider } from "@cosmos-kit/react";
import { wallets } from '@cosmos-kit/keplr';

// construct signer options
const signerOptions: SignerOptions = {
  signingStargate: (chain: Chain) => {
    // return corresponding stargate options or undefined
    return getSigningCosmosClientOptions();
  },
  signingCosmwasm: (chain: Chain) => {
    // return corresponding cosmwasm options or undefined
    switch (chain.chain_name) {
      case "osmosis":
        return {
          gasPrice: GasPrice.fromString("0.0025uosmo"),
        };
      case "juno":
        return {
          gasPrice: GasPrice.fromString("0.0025ujuno"),
        };
    }
  },
  preferredSignType: (chain: Chain) => {
    // `preferredSignType` determines which signer is preferred for `getOfflineSigner` method. By default `amino`. It might affect the `OfflineSigner` used in `signingStargateClient` and `signingCosmwasmClient`. But if only one signer is provided, `getOfflineSigner` will always return this signer, `preferredSignType` won't affect anything.
    return 'amino';
  }
};

function CosmosApp() {
  return (
    <ChainProvider
      ...
      signerOptions={signerOptions} // Provide signerOptions
    >
      <YourWalletRelatedComponents />
    </ChainProvider>
  );
}
```

### logLevel

Optional property. By default `WARN`.

**Type:** `'TRACE' | 'DEBUG' | 'INFO' | 'WARN' | 'ERROR' | 'NONE'`

Will disable logs lower than the value of `logLevel` (The log level order is the same with the order above).

If `logLevel` is `NONE`, no logs would be printed.

### throwErrors

Optional property. By default `false`.

**Type:** `boolean | 'connect_only'`

If set `true`, will throw error when wallet status to be `WalletStatus.Error`, `WalletStatus.Rejected` or `WalletStatus.NotExist`, or wallet client status to be `State.Error`.

If set `connect_only`, will only throw connect errors.

### subscribeConnectEvents

Optional property. By default `true`.

**Type:** `boolean`

If set `false`, will NOT subscribe registered `connectEventNamesOnWindow` and `connectEventNamesOnClient` in [wallet registry](../integrating-wallets/adding-new-wallets#optional-properties).

## Optional Properties Only for Default Modal

These properties **only** exist in `ChainProvider` from `@cosmos-kit/react`, and only counts when property [`walletModal`](#walletmodal) is `undefined`.

### modalTheme

Optional property to customize default modal theme.

**Type**

```tsx
type ThemeCustomizationProps = Pick<
  // This type comes from @interchain-ui/react
  ThemeProviderProps,
  "defaultTheme" | "overrides" | "themeDefs" | "customTheme"
>;
```

### modalViews

Optional property of type `ModalViews`.

**Type**

```tsx
type ModalViewImpl = {
  head: React.ReactNode;
  content: React.ReactNode;
};

type ModalViewImplGetter = (
  props: WalletViewProps | WalletListViewProps
) => ModalViewImpl;

type ModalViews = {
  Connecting?: (props: WalletViewProps) => ModalViewImplGetter;
  Connected?: (props: WalletViewProps) => ModalViewImplGetter;
  Error?: (props: WalletViewProps) => ModalViewImplGetter;
  NotExist?: (props: WalletViewProps) => ModalViewImplGetter;
  Rejected?: (props: WalletViewProps) => ModalViewImplGetter;
  QRCode?: (props: WalletViewProps) => ModalViewImplGetter;
} & {
  WalletList?: (props: WalletListViewProps) => JSX.Element;
};

export interface WalletViewProps {
  onClose: () => void;
  onReturn: () => void;
  wallet: ChainWalletBase;
}

export interface WalletListViewProps {
  onClose: () => void;
  wallets: ChainWalletBase[];
}
```

#### customize modal with `modalViews`

Example of using self-defined modal views.

`_app.tsx`:

```tsx
import * as React from 'react';

import { ChainProvider } from '@cosmos-kit/react';

// Define Modal Connected View Component
const ConnectedView = ({
  onClose,
  onReturn,
  wallet,
}: WalletViewProps) => {
  const {
    walletInfo: { prettyName },
    username,
    address,
  } = wallet;

  return <div>{`${prettyName}/${username}/${address}`}</div>;
};

function CosmosApp() {
  return (
    <ChainProvider
      ...
      walletModal={undefined} // `modalViews` only counts when `walletModal` is `undefined`
      modalViews={{
        Connected: ConnectedView,
      }}
    >
      <YourWalletRelatedComponents />
    </ChainProvider>
  );
}
```

### modalOptions

- `mobile.displayQRCodeEveryTime`

  By default `false`. When set `true`, it'll cause all existing pairings be removed everytime wallet is disconnected. It corresponds to the `DisconnectOptions.walletconnect.removeAllPairings` in `disconnect` method.

### includeAllWalletsOnMobile

Optional property. By default `false`, which means on mobile only wallets with registry value of `mobileDisabled` (or returned value of `mobileDisabled` function) is `false` or `undefined` be displayed on wallet list page of default modal.

For example, most `extension` wallets are set `mobileDisabled` `true`. Therefore you can't see `extension` wallets on mobile by default. If you want to see all wallets on mobile, set `includeAllWalletsOnMobile` `true`;


================================================
FILE: examples/cosmos-kit-lite-nextjs-pages-router-example/.gitignore
================================================
.next

================================================
FILE: examples/cosmos-kit-lite-nextjs-pages-router-example/CHANGELOG.md
================================================
# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [1.17.1](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.17.0...example-lite@1.17.1) (2026-01-28)

**Note:** Version bump only for package example-lite

# [1.17.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.16.0...example-lite@1.17.0) (2025-12-11)

**Note:** Version bump only for package example-lite

# [1.16.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.15.9...example-lite@1.16.0) (2025-12-11)

**Note:** Version bump only for package example-lite

## [1.15.9](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.15.8...example-lite@1.15.9) (2025-11-04)

**Note:** Version bump only for package example-lite

## [1.15.8](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.15.7...example-lite@1.15.8) (2025-10-29)

**Note:** Version bump only for package example-lite

## [1.15.7](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.15.6...example-lite@1.15.7) (2025-10-16)

**Note:** Version bump only for package example-lite

## [1.15.6](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.15.5...example-lite@1.15.6) (2025-10-16)

**Note:** Version bump only for package example-lite

## [1.15.5](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.15.4...example-lite@1.15.5) (2025-10-16)

**Note:** Version bump only for package example-lite

## [1.15.4](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.15.3...example-lite@1.15.4) (2025-10-15)

**Note:** Version bump only for package example-lite

## [1.15.3](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.15.2...example-lite@1.15.3) (2025-08-12)

**Note:** Version bump only for package example-lite

## [1.15.2](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.15.1...example-lite@1.15.2) (2025-07-22)

**Note:** Version bump only for package example-lite

## [1.15.1](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.15.0...example-lite@1.15.1) (2025-07-16)

**Note:** Version bump only for package example-lite

# [1.15.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.14.7...example-lite@1.15.0) (2025-03-25)

**Note:** Version bump only for package example-lite

## [1.14.7](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.14.6...example-lite@1.14.7) (2025-02-01)

**Note:** Version bump only for package example-lite

## [1.14.6](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.14.5...example-lite@1.14.6) (2025-01-28)

**Note:** Version bump only for package example-lite

## [1.14.5](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.14.4...example-lite@1.14.5) (2025-01-18)

**Note:** Version bump only for package example-lite

## [1.14.4](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.14.3...example-lite@1.14.4) (2025-01-18)

**Note:** Version bump only for package example-lite

## [1.14.3](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.14.2...example-lite@1.14.3) (2025-01-18)

**Note:** Version bump only for package example-lite

## [1.14.2](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.14.1...example-lite@1.14.2) (2025-01-07)

**Note:** Version bump only for package example-lite

## [1.14.1](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.14.0...example-lite@1.14.1) (2024-12-16)

**Note:** Version bump only for package example-lite

# [1.14.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.13.2...example-lite@1.14.0) (2024-12-16)

**Note:** Version bump only for package example-lite

## [1.13.2](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.13.1...example-lite@1.13.2) (2024-10-14)

**Note:** Version bump only for package example-lite

## [1.13.1](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.13.0...example-lite@1.13.1) (2024-10-09)

**Note:** Version bump only for package example-lite

# [1.13.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.12.0...example-lite@1.13.0) (2024-10-09)

**Note:** Version bump only for package example-lite

# [1.12.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.11.0...example-lite@1.12.0) (2024-10-09)

**Note:** Version bump only for package example-lite

# [1.11.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.10.2...example-lite@1.11.0) (2024-07-11)

**Note:** Version bump only for package example-lite

## [1.10.2](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.10.1...example-lite@1.10.2) (2024-06-28)

**Note:** Version bump only for package example-lite

## [1.10.1](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.10.0...example-lite@1.10.1) (2024-06-26)

**Note:** Version bump only for package example-lite

# [1.10.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.9.0...example-lite@1.10.0) (2024-06-18)

**Note:** Version bump only for package example-lite

# [1.9.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.8.0...example-lite@1.9.0) (2024-06-12)

**Note:** Version bump only for package example-lite

# [1.8.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.7.1...example-lite@1.8.0) (2024-06-05)

**Note:** Version bump only for package example-lite

## [1.7.1](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.7.0...example-lite@1.7.1) (2024-05-29)

**Note:** Version bump only for package example-lite

# [1.7.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.6.0...example-lite@1.7.0) (2024-05-28)

**Note:** Version bump only for package example-lite

# [1.6.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.5.0...example-lite@1.6.0) (2024-05-23)

**Note:** Version bump only for package example-lite

# [1.5.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.4.0...example-lite@1.5.0) (2024-05-22)

**Note:** Version bump only for package example-lite

# [1.4.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.3.1...example-lite@1.4.0) (2024-05-08)

**Note:** Version bump only for package example-lite

## [1.3.1](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.3.0...example-lite@1.3.1) (2024-04-27)

**Note:** Version bump only for package example-lite

# [1.3.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.2.9...example-lite@1.3.0) (2024-04-20)

**Note:** Version bump only for package example-lite

## [1.2.9](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.2.8...example-lite@1.2.9) (2024-01-31)

**Note:** Version bump only for package example-lite

## [1.2.8](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.2.7...example-lite@1.2.8) (2024-01-25)

**Note:** Version bump only for package example-lite

## [1.2.7](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.2.6...example-lite@1.2.7) (2024-01-23)

**Note:** Version bump only for package example-lite

## [1.2.6](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.2.5...example-lite@1.2.6) (2024-01-22)

**Note:** Version bump only for package example-lite

## [1.2.5](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.2.4...example-lite@1.2.5) (2024-01-19)

**Note:** Version bump only for package example-lite

## [1.2.4](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.2.3...example-lite@1.2.4) (2024-01-19)

**Note:** Version bump only for package example-lite

## [1.2.3](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.2.2...example-lite@1.2.3) (2024-01-19)

**Note:** Version bump only for package example-lite

## [1.2.2](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.2.1...example-lite@1.2.2) (2024-01-15)

**Note:** Version bump only for package example-lite

## [1.2.1](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.2.0...example-lite@1.2.1) (2024-01-08)

**Note:** Version bump only for package example-lite

# [1.2.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.1.5...example-lite@1.2.0) (2024-01-07)

**Note:** Version bump only for package example-lite

## [1.1.5](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.1.4...example-lite@1.1.5) (2023-12-28)

**Note:** Version bump only for package example-lite

## [1.1.4](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.1.3...example-lite@1.1.4) (2023-12-26)

**Note:** Version bump only for package example-lite

## [1.1.3](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.1.2...example-lite@1.1.3) (2023-12-25)

**Note:** Version bump only for package example-lite

## [1.1.2](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.1.1...example-lite@1.1.2) (2023-12-22)

### Bug Fixes

- client and wallet state wrongly changed ([6a26281](https://github.com/hyperweb-io/cosmos-kit/commit/6a262816879b10d2ffb38f03149374822e0ad635))

## [1.1.1](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.1.0...example-lite@1.1.1) (2023-12-18)

**Note:** Version bump only for package example-lite

# [1.1.0](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.0.3...example-lite@1.1.0) (2023-12-15)

**Note:** Version bump only for package example-lite

## [1.0.3](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.0.2...example-lite@1.0.3) (2023-12-14)

**Note:** Version bump only for package example-lite

## [1.0.2](https://github.com/hyperweb-io/cosmos-kit/compare/example-lite@1.0.1...example-lite@1.0.2) (2023-12-14)

**Note:** Version bump only for package example-lite

## 1.0.1 (2023-12-07)

**Note:** Version bump only for package example-lite


================================================
FILE: examples/cosmos-kit-lite-nextjs-pages-router-example/components/custom-modal.tsx
================================================
import { WalletModalProps, WalletStatus } from "@cosmos-kit/core";
import React from "react";
import { Badge, Button, Modal, Stack } from "react-bootstrap";

export const CustomModal = ({
  isOpen,
  setOpen,
  walletRepo,
}: WalletModalProps) => {
  const onCloseModal = () => {
    setOpen(false);
  };

  return (
    <div
      className="modal show"
      style={{ display: "block", position: "initial" }}
    >
      <Modal show={isOpen} onHide={onCloseModal}>
        <Modal.Header closeButton>
          <Modal.Title>Choose Wallet</Modal.Title>
        </Modal.Header>

        <Modal.Body>
          <Stack gap={3}>
            {walletRepo?.wallets.map(
              ({
                walletName,
                connect,
                disconnect,
                walletInfo,
                walletStatus,
                message,
              }) => {
                let button;
                switch (walletStatus) {
                  case WalletStatus.Disconnected:
                    button = <Button onClick={() => connect()}>Connect</Button>;
                    break;
                  case WalletStatus.NotExist:
                    button = <Button>Install</Button>;
                    break;
                  case WalletStatus.Connected:
                    button = (
                      <Button onClick={() => disconnect()}>Disconnect</Button>
                    );
                    break;
                  case WalletStatus.Error:
                    button = (
                      <div className="p-2 text-danger-emphasis bg-danger-subtle border border-danger-subtle rounded-3">
                        {message}
                      </div>
                    );
                    break;
                }
                return (
                  <Stack key={walletName} direction="horizontal" gap={3}>
                    <div className="p-2">
                      {walletInfo.prettyName} - {walletStatus}
                    </div>
                    <div className="p-2 ms-auto"> {button}</div>
                  </Stack>
                );
              }
            )}
          </Stack>
        </Modal.Body>
      </Modal>
    </div>
  );
};


================================================
FILE: examples/cosmos-kit-lite-nextjs-pages-router-example/next-env.d.ts
================================================
/// <reference types="next" />
/// <reference types="next/image-types/global" />

// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.


================================================
FILE: examples/cosmos-kit-lite-nextjs-pages-router-example/next.config.js
================================================
module.exports = {
  webpack: (config) => {
    config.module.rules.push({
      test: /\.(ts|tsx)$/,
      use: [
        {
          loader: "babel-loader",
          options: {
            presets: [
              "@babel/preset-env",
              ["@babel/preset-react", { runtime: "automatic" }],
              ["@babel/preset-typescript", { allowDeclareFields: true }],
            ],
            plugins: ["babel-plugin-inline-import-data-uri"],
          },
        },
      ],
    });

    config.resolve.extensions.push(".ts", ".tsx");
    return config;
  },
};


================================================
FILE: examples/cosmos-kit-lite-nextjs-pages-router-example/package.json
================================================
{
  "name": "example-lite",
  "private": true,
  "description": "nextjs project using react lite (custom modal)",
  "version": "1.17.1",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "dev": "next dev"
  },
  "dependencies": {
    "@cosmos-kit/core": "^2.18.1",
    "@cosmos-kit/ctrl": "^2.16.1",
    "@cosmos-kit/keplr": "^2.17.1",
    "@cosmos-kit/leap": "^2.17.1",
    "@cosmos-kit/react-lite": "^2.18.1",
    "bootstrap": "^5.3.2",
    "next": "^14.0.3",
    "react": "^18.2.0",
    "react-bootstrap": "^2.9.1",
    "react-dom": "^18.2.0"
  },
  "devDependencies": {
    "@babel/preset-env": "7.22.7",
    "@babel/preset-react": "7.22.5",
    "@babel/preset-typescript": "7.22.5",
    "babel-loader": "9.1.2",
    "babel-plugin-inline-import-data-uri": "1.0.1"
  }
}


================================================
FILE: examples/cosmos-kit-lite-nextjs-pages-router-example/pages/_app.tsx
================================================
import "bootstrap/dist/css/bootstrap.min.css";
import "@interchain-ui/react/styles";
import { wallets as keplrWallets } from "@cosmos-kit/keplr";
import { wallets as ctrlWallets } from "@cosmos-kit/ctrl";
import { ChainProvider } from "@cosmos-kit/react-lite";
import { assets, chains } from "chain-registry";
import type { AppProps } from "next/app";
import React from "react";
import { CustomModal } from "../components/custom-modal";

function MyApp({ Component, pageProps }: AppProps) {
  return (
    <ChainProvider
      chains={[...chains.filter((c) => c.chain_name == "cosmoshub")]}
      assetLists={[...assets.filter((a) => a.chain_name === "cosmoshub")]}
      wallets={[...keplrWallets, ...ctrlWallets]}
      logLevel={"DEBUG"}
      walletModal={CustomModal}
    >
      <Component {...pageProps} />
    </ChainProvider>
  );
}

export default MyApp;


================================================
FILE: examples/cosmos-kit-lite-nextjs-pages-router-example/pages/index.tsx
================================================
import { useChain } from "@cosmos-kit/react-lite";
import React from "react";
import { Button, Container } from "react-bootstrap";

export default function () {
  const { openView } = useChain("cosmoshub");
  return (
    <Container className="mt-5">
      <Button variant="primary" onClick={openView}>
        Open Modal
      </Button>
    </Container>
  );
}


================================================
FILE: examples/cosmos-kit-lite-nextjs-pages-router-example/tsconfig.json
================================================
{
  "compilerOptions": {
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": false,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true,
    "incremental": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve"
  },
  "include": [
    "next-env.d.ts",
    "**/*.ts",
    "**/*.tsx"
  ],
  "exclude": [
    "node_modules"
  ]
}


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/.gitignore
================================================
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/CHANGELOG.md
================================================
# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [0.4.1](https://github.com/hyperweb-io/cosmos-kit/compare/cosmos-kit-nextjs-app-router-example@0.4.0...cosmos-kit-nextjs-app-router-example@0.4.1) (2026-01-28)

**Note:** Version bump only for package cosmos-kit-nextjs-app-router-example

# [0.4.0](https://github.com/hyperweb-io/cosmos-kit/compare/cosmos-kit-nextjs-app-router-example@0.3.0...cosmos-kit-nextjs-app-router-example@0.4.0) (2025-12-11)

**Note:** Version bump only for package cosmos-kit-nextjs-app-router-example

# [0.3.0](https://github.com/hyperweb-io/cosmos-kit/compare/cosmos-kit-nextjs-app-router-example@0.2.9...cosmos-kit-nextjs-app-router-example@0.3.0) (2025-12-11)

**Note:** Version bump only for package cosmos-kit-nextjs-app-router-example

## [0.2.9](https://github.com/hyperweb-io/cosmos-kit/compare/cosmos-kit-nextjs-app-router-example@0.2.8...cosmos-kit-nextjs-app-router-example@0.2.9) (2025-11-04)

**Note:** Version bump only for package cosmos-kit-nextjs-app-router-example

## [0.2.8](https://github.com/hyperweb-io/cosmos-kit/compare/cosmos-kit-nextjs-app-router-example@0.2.7...cosmos-kit-nextjs-app-router-example@0.2.8) (2025-10-29)

**Note:** Version bump only for package cosmos-kit-nextjs-app-router-example

## [0.2.7](https://github.com/hyperweb-io/cosmos-kit/compare/cosmos-kit-nextjs-app-router-example@0.2.6...cosmos-kit-nextjs-app-router-example@0.2.7) (2025-10-16)

**Note:** Version bump only for package cosmos-kit-nextjs-app-router-example

## [0.2.6](https://github.com/hyperweb-io/cosmos-kit/compare/cosmos-kit-nextjs-app-router-example@0.2.5...cosmos-kit-nextjs-app-router-example@0.2.6) (2025-10-16)

**Note:** Version bump only for package cosmos-kit-nextjs-app-router-example

## [0.2.5](https://github.com/hyperweb-io/cosmos-kit/compare/cosmos-kit-nextjs-app-router-example@0.2.4...cosmos-kit-nextjs-app-router-example@0.2.5) (2025-10-16)

**Note:** Version bump only for package cosmos-kit-nextjs-app-router-example

## [0.2.4](https://github.com/hyperweb-io/cosmos-kit/compare/cosmos-kit-nextjs-app-router-example@0.2.3...cosmos-kit-nextjs-app-router-example@0.2.4) (2025-10-15)

**Note:** Version bump only for package cosmos-kit-nextjs-app-router-example

## [0.2.3](https://github.com/hyperweb-io/cosmos-kit/compare/cosmos-kit-nextjs-app-router-example@0.2.2...cosmos-kit-nextjs-app-router-example@0.2.3) (2025-08-12)

**Note:** Version bump only for package cosmos-kit-nextjs-app-router-example

## [0.2.2](https://github.com/hyperweb-io/cosmos-kit/compare/cosmos-kit-nextjs-app-router-example@0.2.1...cosmos-kit-nextjs-app-router-example@0.2.2) (2025-07-22)

**Note:** Version bump only for package cosmos-kit-nextjs-app-router-example

## [0.2.1](https://github.com/hyperweb-io/cosmos-kit/compare/cosmos-kit-nextjs-app-router-example@0.2.0...cosmos-kit-nextjs-app-router-example@0.2.1) (2025-07-16)

**Note:** Version bump only for package cosmos-kit-nextjs-app-router-example

# 0.2.0 (2025-03-25)

**Note:** Version bump only for package cosmos-kit-nextjs-app-router-example


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/README.md
================================================
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).

## Getting Started

First, run the development server:

```bash
pnpm dev
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/components.json
================================================
{
  "$schema": "https://ui.shadcn.com/schema.json",
  "style": "new-york",
  "rsc": true,
  "tsx": true,
  "tailwind": {
    "config": "",
    "css": "src/app/globals.css",
    "baseColor": "neutral",
    "cssVariables": true,
    "prefix": ""
  },
  "aliases": {
    "components": "@/components",
    "utils": "@/lib/utils",
    "ui": "@/components/ui",
    "lib": "@/lib",
    "hooks": "@/hooks"
  },
  "iconLibrary": "lucide"
}

================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/eslint.config.mjs
================================================
import { dirname } from "path";
import { fileURLToPath } from "url";
import { FlatCompat } from "@eslint/eslintrc";

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const compat = new FlatCompat({
  baseDirectory: __dirname,
});

const eslintConfig = [
  ...compat.extends("next/core-web-vitals", "next/typescript"),
];

export default eslintConfig;


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/next.config.ts
================================================
import type { NextConfig } from "next";

const nextConfig: NextConfig = {
  experimental: {
    externalDir: true,
  },
  // transpilePackages: ["@cosmos-kit/keplr", "@cosmos-kit/react"],
};

export default nextConfig;


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/package.json
================================================
{
  "name": "cosmos-kit-nextjs-app-router-example",
  "version": "0.4.1",
  "private": true,
  "scripts": {
    "dev": "next dev --turbopack",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@cosmos-kit/keplr": "^2.17.1",
    "@cosmos-kit/react": "^2.24.1",
    "@interchain-ui/react": "latest",
    "@radix-ui/react-slot": "^1.1.2",
    "chain-registry": "*",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "lucide-react": "^0.483.0",
    "next": "15.2.3",
    "react": "^19.0.0",
    "react-dom": "^19.0.0",
    "tailwind-merge": "^3.0.2",
    "tw-animate-css": "^1.2.4"
  },
  "devDependencies": {
    "@eslint/eslintrc": "^3",
    "@tailwindcss/postcss": "^4",
    "@types/node": "^20",
    "@types/react": "^19",
    "@types/react-dom": "^19",
    "eslint": "^9",
    "eslint-config-next": "15.2.3",
    "tailwindcss": "^4",
    "typescript": "^5"
  },
  "resolutions": {
    "@cosmos-kit/keplr": "file:../../wallets/keplr",
    "@cosmos-kit/react": "file:../../packages/react"
  }
}


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/postcss.config.mjs
================================================
const config = {
  plugins: ["@tailwindcss/postcss"],
};

export default config;


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/src/app/globals.css
================================================
@import "tailwindcss";
@import "tw-animate-css";

@custom-variant dark (&:is(.dark *));

@theme inline {
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --font-sans: var(--font-geist-sans);
  --font-mono: var(--font-geist-mono);
  --color-sidebar-ring: var(--sidebar-ring);
  --color-sidebar-border: var(--sidebar-border);
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
  --color-sidebar-accent: var(--sidebar-accent);
  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
  --color-sidebar-primary: var(--sidebar-primary);
  --color-sidebar-foreground: var(--sidebar-foreground);
  --color-sidebar: var(--sidebar);
  --color-chart-5: var(--chart-5);
  --color-chart-4: var(--chart-4);
  --color-chart-3: var(--chart-3);
  --color-chart-2: var(--chart-2);
  --color-chart-1: var(--chart-1);
  --color-ring: var(--ring);
  --color-input: var(--input);
  --color-border: var(--border);
  --color-destructive: var(--destructive);
  --color-accent-foreground: var(--accent-foreground);
  --color-accent: var(--accent);
  --color-muted-foreground: var(--muted-foreground);
  --color-muted: var(--muted);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-secondary: var(--secondary);
  --color-primary-foreground: var(--primary-foreground);
  --color-primary: var(--primary);
  --color-popover-foreground: var(--popover-foreground);
  --color-popover: var(--popover);
  --color-card-foreground: var(--card-foreground);
  --color-card: var(--card);
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);
}

:root {
  --radius: 0.625rem;
  --background: oklch(1 0 0);
  --foreground: oklch(0.145 0 0);
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.145 0 0);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(0.145 0 0);
  --primary: oklch(0.205 0 0);
  --primary-foreground: oklch(0.985 0 0);
  --secondary: oklch(0.97 0 0);
  --secondary-foreground: oklch(0.205 0 0);
  --muted: oklch(0.97 0 0);
  --muted-foreground: oklch(0.556 0 0);
  --accent: oklch(0.97 0 0);
  --accent-foreground: oklch(0.205 0 0);
  --destructive: oklch(0.577 0.245 27.325);
  --border: oklch(0.922 0 0);
  --input: oklch(0.922 0 0);
  --ring: oklch(0.708 0 0);
  --chart-1: oklch(0.646 0.222 41.116);
  --chart-2: oklch(0.6 0.118 184.704);
  --chart-3: oklch(0.398 0.07 227.392);
  --chart-4: oklch(0.828 0.189 84.429);
  --chart-5: oklch(0.769 0.188 70.08);
  --sidebar: oklch(0.985 0 0);
  --sidebar-foreground: oklch(0.145 0 0);
  --sidebar-primary: oklch(0.205 0 0);
  --sidebar-primary-foreground: oklch(0.985 0 0);
  --sidebar-accent: oklch(0.97 0 0);
  --sidebar-accent-foreground: oklch(0.205 0 0);
  --sidebar-border: oklch(0.922 0 0);
  --sidebar-ring: oklch(0.708 0 0);
}

.dark {
  --background: oklch(0.145 0 0);
  --foreground: oklch(0.985 0 0);
  --card: oklch(0.205 0 0);
  --card-foreground: oklch(0.985 0 0);
  --popover: oklch(0.205 0 0);
  --popover-foreground: oklch(0.985 0 0);
  --primary: oklch(0.922 0 0);
  --primary-foreground: oklch(0.205 0 0);
  --secondary: oklch(0.269 0 0);
  --secondary-foreground: oklch(0.985 0 0);
  --muted: oklch(0.269 0 0);
  --muted-foreground: oklch(0.708 0 0);
  --accent: oklch(0.269 0 0);
  --accent-foreground: oklch(0.985 0 0);
  --destructive: oklch(0.704 0.191 22.216);
  --border: oklch(1 0 0 / 10%);
  --input: oklch(1 0 0 / 15%);
  --ring: oklch(0.556 0 0);
  --chart-1: oklch(0.488 0.243 264.376);
  --chart-2: oklch(0.696 0.17 162.48);
  --chart-3: oklch(0.769 0.188 70.08);
  --chart-4: oklch(0.627 0.265 303.9);
  --chart-5: oklch(0.645 0.246 16.439);
  --sidebar: oklch(0.205 0 0);
  --sidebar-foreground: oklch(0.985 0 0);
  --sidebar-primary: oklch(0.488 0.243 264.376);
  --sidebar-primary-foreground: oklch(0.985 0 0);
  --sidebar-accent: oklch(0.269 0 0);
  --sidebar-accent-foreground: oklch(0.985 0 0);
  --sidebar-border: oklch(1 0 0 / 10%);
  --sidebar-ring: oklch(0.556 0 0);
}

@layer base {
  * {
    @apply border-border outline-ring/50;
  }
  body {
    @apply bg-background text-foreground;
  }
}


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/src/app/layout.tsx
================================================
import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import "./globals.css";
import { CosmosKitProvider } from "@/components/cosmos-kit-provider";

const geistSans = Geist({
  variable: "--font-geist-sans",
  subsets: ["latin"],
});

const geistMono = Geist_Mono({
  variable: "--font-geist-mono",
  subsets: ["latin"],
});

export const metadata: Metadata = {
  title: "Create Next App",
  description: "Generated by create next app",
};

export default function RootLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  return (
    <html lang="en">
      <body
        className={`${geistSans.variable} ${geistMono.variable} antialiased`}
      >
        <CosmosKitProvider>{children}</CosmosKitProvider>
      </body>
    </html>
  );
}


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/src/app/page.tsx
================================================
import { ConnectWallet } from "@/components/connect-wallet";

export default function Home() {
  return (
    <div className="flex flex-col min-h-screen bg-gradient-to-b from-background to-background/80">
      <header className="container flex items-center justify-between py-8 mx-auto">
        <h1 className="text-xl font-bold">
          <span className="text-primary">Cosmos</span>Kit
        </h1>
        <nav className="flex gap-4">
          <a
            href="https://github.com/hyperweb-io/cosmos-kit"
            target="_blank"
            rel="noopener noreferrer"
            className="text-sm font-medium text-muted-foreground hover:text-foreground transition-colors"
          >
            GitHub
          </a>
          <a
            href="https://docs.cosmoskit.com/"
            target="_blank"
            rel="noopener noreferrer"
            className="text-sm font-medium text-muted-foreground hover:text-foreground transition-colors"
          >
            Docs
          </a>
        </nav>
      </header>

      <main className="flex-1 container py-12">
        <div className="flex flex-col items-center gap-12 max-w-2xl mx-auto">
          <div className="space-y-6 text-center">
            <h2 className="text-3xl md:text-4xl lg:text-5xl font-bold tracking-tight">
              <span className="text-primary">Cosmos Kit</span> Next.js Demo
            </h2>
            <p className="text-muted-foreground text-lg">
              A powerful wallet adapter for Cosmos-based chains. Integrate
              blockchain functionality into your Next.js application with ease.
            </p>
            <div className="flex justify-center gap-4">
              <a
                className="inline-flex h-10 items-center justify-center rounded-md border border-input bg-background px-6 py-2 text-sm font-medium shadow-sm transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-1"
                href="https://docs.cosmoskit.com/"
                target="_blank"
                rel="noopener noreferrer"
              >
                Read the docs
              </a>
            </div>
          </div>

          <div className="w-full max-w-md">
            <ConnectWallet />
          </div>
        </div>
      </main>

      <footer className="border-t bg-muted/40 mt-auto">
        <div className="container py-8 mx-auto">
          <div className="flex flex-col sm:flex-row justify-between items-center gap-4">
            <p className="text-sm text-muted-foreground">
              Built with{" "}
              <a
                href="https://nextjs.org"
                className="underline underline-offset-4 hover:text-foreground"
              >
                Next.js
              </a>{" "}
              and{" "}
              <a
                href="https://cosmoskit.com"
                className="underline underline-offset-4 hover:text-foreground"
              >
                Cosmos Kit
              </a>
            </p>
            <div className="flex gap-6">
              <a
                className="text-sm text-muted-foreground hover:text-foreground transition-colors"
                href="https://nextjs.org/learn"
                target="_blank"
                rel="noopener noreferrer"
              >
                Learn Next.js
              </a>
              <a
                className="text-sm text-muted-foreground hover:text-foreground transition-colors"
                href="https://nextjs.org"
                target="_blank"
                rel="noopener noreferrer"
              >
                Next.js Docs
              </a>
            </div>
          </div>
        </div>
      </footer>
    </div>
  );
}


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/src/components/connect-wallet.tsx
================================================
"use client";

import { useChain } from "@cosmos-kit/react";
import { Button } from "@/components/ui/button";
import { Card, CardContent } from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
import { Copy, ExternalLink } from "lucide-react";

export function ConnectWallet() {
  const { address, status, username, connect, disconnect } =
    useChain("cosmoshub");

  const isConnected = status === "Connected";

  console.log("cosmos kit state", { address, status, username });
  const truncateAddress = (addr: string) => {
    if (!addr) return "";
    return `${addr.slice(0, 6)}...${addr.slice(-6)}`;
  };

  const copyToClipboard = (text: string) => {
    navigator.clipboard.writeText(text);
  };

  return (
    <Card className="w-full">
      <CardContent className="pt-6">
        <div className="flex flex-col gap-4">
          <div className="flex items-center justify-between">
            <div className="flex items-center gap-2">
              <span className="font-medium text-sm">Status:</span>
              <Badge
                variant={isConnected ? "default" : "secondary"}
                className={isConnected ? "bg-green-500" : ""}
              >
                {status}
              </Badge>
            </div>
            {address && (
              <a
                href={`https://www.mintscan.io/cosmos/address/${address}`}
                target="_blank"
                rel="noopener noreferrer"
                className="text-xs text-muted-foreground hover:text-primary flex items-center gap-1"
              >
                View on Explorer <ExternalLink size={12} />
              </a>
            )}
          </div>

          {username && (
            <div className="flex items-center gap-2">
              <span className="font-medium text-sm">Username:</span>
              <span className="text-sm">{username}</span>
            </div>
          )}

          {address && (
            <div className="flex items-center justify-between">
              <div className="flex items-center gap-2">
                <span className="font-medium text-sm">Address:</span>
                <span className="text-sm font-mono">
                  {truncateAddress(address)}
                </span>
              </div>
              <Button
                variant="ghost"
                size="icon"
                className="h-8 w-8"
                onClick={() => copyToClipboard(address)}
                title="Copy address"
              >
                <Copy size={14} />
              </Button>
            </div>
          )}

          <div className="flex gap-3 mt-2">
            {!isConnected ? (
              <Button className="w-full" onClick={() => connect()}>
                Connect Wallet
              </Button>
            ) : (
              <Button
                variant="secondary"
                className="w-full"
                onClick={() => disconnect()}
              >
                Disconnect
              </Button>
            )}
          </div>
        </div>
      </CardContent>
    </Card>
  );
}


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/src/components/cosmos-kit-provider.tsx
================================================
"use client";

import "@interchain-ui/react/styles";
import { ChainProvider } from "@cosmos-kit/react";
import { chains, assets } from "chain-registry";
import { wallets } from "@cosmos-kit/keplr";

export function CosmosKitProvider({ children }: { children: React.ReactNode }) {
  return (
    <ChainProvider
      chains={chains}
      assetLists={assets}
      wallets={wallets}
      logLevel={"DEBUG"}
      throwErrors={false}
    >
      {children}
    </ChainProvider>
  );
}


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/src/components/ui/badge.tsx
================================================
import * as React from "react"
import { Slot } from "@radix-ui/react-slot"
import { cva, type VariantProps } from "class-variance-authority"

import { cn } from "@/lib/utils"

const badgeVariants = cva(
  "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
  {
    variants: {
      variant: {
        default:
          "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
        secondary:
          "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
        destructive:
          "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/70",
        outline:
          "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
      },
    },
    defaultVariants: {
      variant: "default",
    },
  }
)

function Badge({
  className,
  variant,
  asChild = false,
  ...props
}: React.ComponentProps<"span"> &
  VariantProps<typeof badgeVariants> & { asChild?: boolean }) {
  const Comp = asChild ? Slot : "span"

  return (
    <Comp
      data-slot="badge"
      className={cn(badgeVariants({ variant }), className)}
      {...props}
    />
  )
}

export { Badge, badgeVariants }


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/src/components/ui/button.tsx
================================================
import * as React from "react"
import { Slot } from "@radix-ui/react-slot"
import { cva, type VariantProps } from "class-variance-authority"

import { cn } from "@/lib/utils"

const buttonVariants = cva(
  "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
  {
    variants: {
      variant: {
        default:
          "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
        destructive:
          "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
        outline:
          "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
        secondary:
          "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
        ghost:
          "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
        link: "text-primary underline-offset-4 hover:underline",
      },
      size: {
        default: "h-9 px-4 py-2 has-[>svg]:px-3",
        sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
        lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
        icon: "size-9",
      },
    },
    defaultVariants: {
      variant: "default",
      size: "default",
    },
  }
)

function Button({
  className,
  variant,
  size,
  asChild = false,
  ...props
}: React.ComponentProps<"button"> &
  VariantProps<typeof buttonVariants> & {
    asChild?: boolean
  }) {
  const Comp = asChild ? Slot : "button"

  return (
    <Comp
      data-slot="button"
      className={cn(buttonVariants({ variant, size, className }))}
      {...props}
    />
  )
}

export { Button, buttonVariants }


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/src/components/ui/card.tsx
================================================
import * as React from "react"

import { cn } from "@/lib/utils"

function Card({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="card"
      className={cn(
        "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
        className
      )}
      {...props}
    />
  )
}

function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="card-header"
      className={cn(
        "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
        className
      )}
      {...props}
    />
  )
}

function CardTitle({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="card-title"
      className={cn("leading-none font-semibold", className)}
      {...props}
    />
  )
}

function CardDescription({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="card-description"
      className={cn("text-muted-foreground text-sm", className)}
      {...props}
    />
  )
}

function CardAction({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="card-action"
      className={cn(
        "col-start-2 row-span-2 row-start-1 self-start justify-self-end",
        className
      )}
      {...props}
    />
  )
}

function CardContent({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="card-content"
      className={cn("px-6", className)}
      {...props}
    />
  )
}

function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="card-footer"
      className={cn("flex items-center px-6 [.border-t]:pt-6", className)}
      {...props}
    />
  )
}

export {
  Card,
  CardHeader,
  CardFooter,
  CardTitle,
  CardAction,
  CardDescription,
  CardContent,
}


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/src/lib/utils.ts
================================================
import { clsx, type ClassValue } from "clsx"
import { twMerge } from "tailwind-merge"

export function cn(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs))
}


================================================
FILE: examples/cosmos-kit-nextjs-app-router-example/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ES2017",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "bundler",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve",
    "incremental": true,
    "plugins": [
      {
        "name": "next"
      }
    ],
    "paths": {
      "@/*": ["./src/*"]
    }
  },
  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
  "exclude": ["node_modules"]
}


================================================
FILE: examples/cosmos-kit-nextjs-pages-router-example/.eslintrc.json
================================================
{
  "plugins": ["@typescript-eslint", "simple-import-sort", "unused-imports"],
  "extends": [
    // "next",
    "eslint:recommended",
    "plugin:@typescript-eslint/recommended"
    // configures both eslint-plugin-prettier and eslint-config-prettier
    // "plugin:prettier/recommended"
  ],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": 2020,
    "sourceType": "module",
    "project": "tsconfig.json"
  },
  "env": {
    "es6": true,
    "browser": true,
    "node": true,
    "jest": true
  },
  "rules": {
    // "react-hooks/rules-of-hooks": "off",
    // "react/display-name": "off",
    "simple-import-sort/imports": 1,
    "simple-import-sort/exports": 2,
    // "prettier/prettier": 2,
    "quotes": "off",
    "unused-imports/no-unused-imports": 1,
    "no-console": 1,
    "no-debugger": 2,
    "no-alert": 2,
    "no-await-in-loop": 0,
    "no-prototype-builtins": 0,
    "no-return-assign": ["error", "except-parens"],
    "no-restricted-syntax": [
      2,
      "ForInStatement",
      "LabeledStatement",
      "WithStatement"
    ],
    "no-unused-vars": 0,
    "@typescript-eslint/no-unused-vars": [
      "warn",
      {
        "argsIgnorePattern": "React|res|next|^_"
      }
    ],
    "prefer-const": [
      "error",
      {
        "destructuring": "all"
      }
    ],
    "no-unused-expressions": [
      2,
      {
        "allowTaggedTemplates": true
      }
    ],
    "comma-dangle": 0,
    "jsx-quotes": [2, "prefer-double"],
    "linebreak-style": ["error", "unix"]
    // "quotes": [
    //   2,
    //   "single",
    //   {
    //     "avoidEscape": true,
    //     "allowTemplateLiterals": true
    //   }
    // ]
  }
}


================================================
FILE: examples/cosmos-kit-nextjs-pages-router-example/.gitignore
================================================
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# local env files
.env*.local

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts


================================================
FILE: examples/cosmos-kit-nextjs-pages-router-example/CHANGELOG.md
================================================
# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [2.33.1](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.33.0...example@2.33.1) (2026-01-28)

**Note:** Version bump only for package example

# [2.33.0](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.32.0...example@2.33.0) (2025-12-11)

**Note:** Version bump only for package example

# [2.32.0](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.31.9...example@2.32.0) (2025-12-11)

**Note:** Version bump only for package example

## [2.31.9](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.31.8...example@2.31.9) (2025-11-04)

**Note:** Version bump only for package example

## [2.31.8](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.31.7...example@2.31.8) (2025-10-29)

**Note:** Version bump only for package example

## [2.31.7](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.31.6...example@2.31.7) (2025-10-16)

**Note:** Version bump only for package example

## [2.31.6](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.31.5...example@2.31.6) (2025-10-16)

**Note:** Version bump only for package example

## [2.31.5](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.31.4...example@2.31.5) (2025-10-16)

**Note:** Version bump only for package example

## [2.31.4](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.31.3...example@2.31.4) (2025-10-15)

**Note:** Version bump only for package example

## [2.31.3](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.31.2...example@2.31.3) (2025-08-12)

**Note:** Version bump only for package example

## [2.31.2](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.31.1...example@2.31.2) (2025-07-22)

**Note:** Version bump only for package example

## [2.31.1](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.31.0...example@2.31.1) (2025-07-16)

**Note:** Version bump only for package example

# [2.31.0](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.30.10...example@2.31.0) (2025-03-25)

**Note:** Version bump only for package example

## [2.30.10](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.30.9...example@2.30.10) (2025-02-01)

**Note:** Version bump only for package example

## [2.30.9](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.30.8...example@2.30.9) (2025-01-28)

**Note:** Version bump only for package example

## [2.30.8](https://github.com/hyperweb-io/cosmos-kit/compare/example@2.
Download .txt
gitextract_s_2c4dhd/

├── .editorconfig
├── .gitattributes
├── .github/
│   └── workflows/
│       ├── docs.yml
│       └── run-tests.yml
├── .gitignore
├── .gitpod.yml
├── .vscode/
│   ├── cosmos-kit.code-workspace
│   └── settings.json
├── INTEGRATING-WALLETS.md
├── LICENSE
├── README.md
├── docs/
│   ├── _meta.json
│   ├── advanced.md
│   ├── cookbook/
│   │   ├── _meta.json
│   │   ├── connect-multi-chains.mdx
│   │   └── sign.mdx
│   ├── get-started.mdx
│   ├── hooks/
│   │   ├── _meta.json
│   │   ├── index.mdx
│   │   ├── use-chain-wallet.mdx
│   │   ├── use-chain.mdx
│   │   ├── use-chains.mdx
│   │   ├── use-iframe.mdx
│   │   ├── use-manager.mdx
│   │   ├── use-modal-theme.mdx
│   │   ├── use-name-service.mdx
│   │   ├── use-wallet-client.mdx
│   │   └── use-wallet.mdx
│   ├── index.mdx
│   ├── integrating-wallets/
│   │   ├── _meta.json
│   │   ├── adding-all-wallets.mdx
│   │   ├── adding-new-wallets.mdx
│   │   ├── compass.mdx
│   │   ├── cosmos-metamask-extension.mdx
│   │   ├── cosmostation.mdx
│   │   ├── exodus.mdx
│   │   ├── fin.mdx
│   │   ├── frontier.mdx
│   │   ├── index.mdx
│   │   ├── keplr.mdx
│   │   ├── leap-capsule-social-login.mdx
│   │   ├── leap-metamask-comos-snap.mdx
│   │   ├── leap.mdx
│   │   ├── ledger.mdx
│   │   ├── ninji.mdx
│   │   ├── oko.mdx
│   │   ├── okx.mdx
│   │   ├── omni.mdx
│   │   ├── shell.mdx
│   │   ├── station.mdx
│   │   ├── trust.mdx
│   │   ├── vectis.mdx
│   │   ├── web3auth.mdx
│   │   └── xdefi.mdx
│   ├── migration-to-v2.mdx
│   └── provider/
│       ├── _meta.json
│       └── chain-provider.mdx
├── examples/
│   ├── cosmos-kit-lite-nextjs-pages-router-example/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── components/
│   │   │   └── custom-modal.tsx
│   │   ├── next-env.d.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── cosmos-kit-nextjs-app-router-example/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── components.json
│   │   ├── eslint.config.mjs
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── postcss.config.mjs
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── globals.css
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── components/
│   │   │   │   ├── connect-wallet.tsx
│   │   │   │   ├── cosmos-kit-provider.tsx
│   │   │   │   └── ui/
│   │   │   │       ├── badge.tsx
│   │   │   │       ├── button.tsx
│   │   │   │       └── card.tsx
│   │   │   └── lib/
│   │   │       └── utils.ts
│   │   └── tsconfig.json
│   └── cosmos-kit-nextjs-pages-router-example/
│       ├── .eslintrc.json
│       ├── .gitignore
│       ├── CHANGELOG.md
│       ├── LICENSE
│       ├── README.md
│       ├── components/
│       │   ├── badge.tsx
│       │   ├── button.tsx
│       │   ├── card.tsx
│       │   ├── chain-wallet-card.tsx
│       │   ├── chains-tx-wallet.tsx
│       │   ├── custom-connected.tsx
│       │   ├── dropdown-menu.tsx
│       │   ├── index.ts
│       │   ├── layout.tsx
│       │   ├── mode-toggle.tsx
│       │   ├── react/
│       │   │   ├── address-card.tsx
│       │   │   ├── astronaut.tsx
│       │   │   ├── chain-card.tsx
│       │   │   ├── handleChangeColor.tsx
│       │   │   ├── index.ts
│       │   │   ├── send-tokens-card.tsx
│       │   │   ├── user-card.tsx
│       │   │   ├── wallet-connect.tsx
│       │   │   └── warn-block.tsx
│       │   ├── theme-provider.tsx
│       │   └── types.tsx
│       ├── components.json
│       ├── config/
│       │   ├── seo.js
│       │   └── site.js
│       ├── hooks/
│       │   └── index.ts
│       ├── lib/
│       │   └── utils.ts
│       ├── next.config.js
│       ├── package.json
│       ├── pages/
│       │   ├── _app.tsx
│       │   ├── add-chain.tsx
│       │   ├── add-cw20.tsx
│       │   ├── chain/
│       │   │   ├── [name].tsx
│       │   │   └── query.tsx
│       │   ├── cosmoshub.tsx
│       │   ├── endpoint.tsx
│       │   ├── event.tsx
│       │   ├── gov.tsx
│       │   ├── iframe-alert.tsx
│       │   ├── iframe.tsx
│       │   ├── index.tsx
│       │   ├── ledger.tsx
│       │   ├── ns.tsx
│       │   ├── ns2.tsx
│       │   ├── test.tsx
│       │   ├── tx.tsx
│       │   ├── use-chain-wallet.tsx
│       │   ├── use-chain.tsx
│       │   ├── use-chains.tsx
│       │   ├── use-wallet-client.tsx
│       │   ├── use-wallet.tsx
│       │   ├── user-agent.tsx
│       │   ├── wallet-manager/
│       │   │   ├── index.tsx
│       │   │   ├── main-wallets.tsx
│       │   │   ├── wallet-manager.tsx
│       │   │   ├── wallet-operate.tsx
│       │   │   ├── wallet-repo.tsx
│       │   │   └── wallet-repos.tsx
│       │   └── wc.tsx
│       ├── postcss.config.js
│       ├── seo/
│       │   ├── prepare.sh
│       │   └── seo.js
│       ├── style/
│       │   └── global.css
│       ├── tailwind.config.js
│       ├── tsconfig.json
│       └── wc/
│           └── client.ts
├── jest.config.js
├── lerna.json
├── package.json
├── packages/
│   ├── core/
│   │   ├── .editorconfig
│   │   ├── .eslintignore
│   │   ├── .eslintrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .npmrc
│   │   ├── .prettierrc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── bases/
│   │   │   │   ├── chain-wallet.test.ts
│   │   │   │   ├── main-wallet.test.ts
│   │   │   │   ├── state.test.ts
│   │   │   │   └── wallet.test.ts
│   │   │   ├── manager.test.ts
│   │   │   ├── name-serveice-class.test.ts
│   │   │   ├── repository.test.ts
│   │   │   └── utils/
│   │   │       ├── check.test.ts
│   │   │       ├── convert.test.ts
│   │   │       ├── endpoint.test.ts
│   │   │       ├── error.test.ts
│   │   │       ├── logger.test.ts
│   │   │       ├── map.test.ts
│   │   │       ├── math.test.ts
│   │   │       ├── name-service.test.ts
│   │   │       ├── session.test.ts
│   │   │       └── status.test.ts
│   │   ├── index.ts
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── bases/
│   │   │   │   ├── chain-wallet.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── main-wallet.ts
│   │   │   │   ├── state.ts
│   │   │   │   └── wallet.ts
│   │   │   ├── config.ts
│   │   │   ├── cosmiframe/
│   │   │   │   ├── constants.ts
│   │   │   │   ├── cosmiframe.ts
│   │   │   │   ├── extension/
│   │   │   │   │   ├── chain-wallet.ts
│   │   │   │   │   ├── client.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── main-wallet.ts
│   │   │   │   │   ├── registry.ts
│   │   │   │   │   └── types.ts
│   │   │   │   └── index.ts
│   │   │   ├── index.ts
│   │   │   ├── manager.ts
│   │   │   ├── name-service.ts
│   │   │   ├── repository.ts
│   │   │   ├── types/
│   │   │   │   ├── chain.ts
│   │   │   │   ├── common.ts
│   │   │   │   ├── hook.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── manager.ts
│   │   │   │   ├── view.ts
│   │   │   │   └── wallet.ts
│   │   │   └── utils/
│   │   │       ├── check.ts
│   │   │       ├── convert.ts
│   │   │       ├── endpoint.ts
│   │   │       ├── error.ts
│   │   │       ├── index.ts
│   │   │       ├── logger.ts
│   │   │       ├── map.ts
│   │   │       ├── math.ts
│   │   │       ├── name-service.ts
│   │   │       ├── session.ts
│   │   │       └── status.ts
│   │   ├── test-utils/
│   │   │   ├── mock-extension/
│   │   │   │   ├── constant.ts
│   │   │   │   ├── extension/
│   │   │   │   │   ├── chain-wallet.ts
│   │   │   │   │   ├── client.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── main-wallet.ts
│   │   │   │   │   ├── registry.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── mock.ts
│   │   │   └── mocker/
│   │   │       ├── index.ts
│   │   │       └── setup.ts
│   │   ├── tsconfig.esm.json
│   │   └── tsconfig.json
│   ├── cosmos-kit/
│   │   ├── .editorconfig
│   │   ├── .eslintignore
│   │   ├── .gitignore
│   │   ├── .npmrc
│   │   ├── .prettierrc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── wallets.ts
│   │   ├── test/
│   │   │   └── wallets.test.ts
│   │   ├── tsconfig.esm.json
│   │   └── tsconfig.json
│   ├── docs/
│   │   ├── .gitignore
│   │   ├── .markdownlint.json
│   │   ├── CHANGELOG.md
│   │   ├── components/
│   │   │   ├── card.tsx
│   │   │   ├── hooks.tsx
│   │   │   ├── index.tsx
│   │   │   ├── react/
│   │   │   │   ├── address-card.tsx
│   │   │   │   ├── astronaut.tsx
│   │   │   │   ├── chain-card.tsx
│   │   │   │   ├── choose-chain.tsx
│   │   │   │   ├── handleChangeColor.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── user-card.tsx
│   │   │   │   ├── wallet-connect.tsx
│   │   │   │   └── warn-block.tsx
│   │   │   ├── types.tsx
│   │   │   └── wallet.tsx
│   │   ├── config/
│   │   │   ├── seo.js
│   │   │   └── site.js
│   │   ├── next-env.d.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _meta.json
│   │   │   ├── advanced.md
│   │   │   ├── cookbook/
│   │   │   │   ├── _meta.json
│   │   │   │   ├── connect-multi-chains.mdx
│   │   │   │   └── sign.mdx
│   │   │   ├── get-started.mdx
│   │   │   ├── hooks/
│   │   │   │   ├── _meta.json
│   │   │   │   ├── index.mdx
│   │   │   │   ├── use-chain-wallet.mdx
│   │   │   │   ├── use-chain.mdx
│   │   │   │   ├── use-chains.mdx
│   │   │   │   ├── use-iframe.mdx
│   │   │   │   ├── use-manager.mdx
│   │   │   │   ├── use-modal-theme.mdx
│   │   │   │   ├── use-name-service.mdx
│   │   │   │   ├── use-wallet-client.mdx
│   │   │   │   └── use-wallet.mdx
│   │   │   ├── index.mdx
│   │   │   ├── integrating-wallets/
│   │   │   │   ├── _meta.json
│   │   │   │   ├── adding-all-wallets.mdx
│   │   │   │   ├── adding-new-wallets.mdx
│   │   │   │   ├── aria.mdx
│   │   │   │   ├── bitgetwallet.mdx
│   │   │   │   ├── cdc.mdx
│   │   │   │   ├── compass.mdx
│   │   │   │   ├── cosmos-metamask-extension.mdx
│   │   │   │   ├── cosmostation.mdx
│   │   │   │   ├── exodus.mdx
│   │   │   │   ├── fin.mdx
│   │   │   │   ├── foxwallet.mdx
│   │   │   │   ├── frontier.mdx
│   │   │   │   ├── galaxy-station.mdx
│   │   │   │   ├── imtoken.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── keplr.mdx
│   │   │   │   ├── leap-capsule-social-login.mdx
│   │   │   │   ├── leap-metamask-comos-snap.mdx
│   │   │   │   ├── leap.mdx
│   │   │   │   ├── ledger.mdx
│   │   │   │   ├── ninji.mdx
│   │   │   │   ├── okto.mdx
│   │   │   │   ├── okx.mdx
│   │   │   │   ├── omni.mdx
│   │   │   │   ├── shell.mdx
│   │   │   │   ├── station.mdx
│   │   │   │   ├── tailwind.mdx
│   │   │   │   ├── trust.mdx
│   │   │   │   ├── vectis.mdx
│   │   │   │   ├── web3auth.mdx
│   │   │   │   └── xdefi.mdx
│   │   │   ├── migration-to-v2.mdx
│   │   │   └── provider/
│   │   │       ├── _meta.json
│   │   │       └── chain-provider.mdx
│   │   ├── public/
│   │   │   └── favicon copy.ico.sb-8992bd4b-4LqWuo
│   │   ├── seo/
│   │   │   ├── prepare.sh
│   │   │   └── seo.js
│   │   ├── styles/
│   │   │   └── globals.css
│   │   ├── theme.config.tsx
│   │   └── tsconfig.json
│   ├── ins/
│   │   ├── .editorconfig
│   │   ├── .eslintignore
│   │   ├── .eslintrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .npmrc
│   │   ├── .prettierrc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.ts
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── __tests__/
│   │   │   │   └── name-service.test.ts
│   │   │   ├── config.ts
│   │   │   ├── index.ts
│   │   │   └── name-service.ts
│   │   ├── tsconfig.esm.json
│   │   └── tsconfig.json
│   ├── react/
│   │   ├── .editorconfig
│   │   ├── .eslintignore
│   │   ├── .eslintrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .npmrc
│   │   ├── .prettierrc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── REACT19_UPGRADE.md
│   │   ├── README.md
│   │   ├── index.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── context/
│   │   │   │   ├── index.ts
│   │   │   │   └── useSelectedWalletContext.tsx
│   │   │   ├── hooks/
│   │   │   │   ├── index.ts
│   │   │   │   └── useModalTheme.ts
│   │   │   ├── index.ts
│   │   │   ├── modal/
│   │   │   │   ├── components/
│   │   │   │   │   ├── Astronaut.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── views/
│   │   │   │   │       ├── Connected.tsx
│   │   │   │   │       ├── Connecting.tsx
│   │   │   │   │       ├── Error.tsx
│   │   │   │   │       ├── NotExist.tsx
│   │   │   │   │       ├── QRCode.tsx
│   │   │   │   │       ├── Rejected.tsx
│   │   │   │   │       ├── WalletList.tsx
│   │   │   │   │       ├── config.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── constant.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── modal.tsx
│   │   │   └── provider.tsx
│   │   ├── tsconfig.esm.json
│   │   └── tsconfig.json
│   ├── react-lite/
│   │   ├── .editorconfig
│   │   ├── .eslintignore
│   │   ├── .eslintrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .npmrc
│   │   ├── .prettierrc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── REACT19_UPGRADE.md
│   │   ├── README.md
│   │   ├── __test__/
│   │   │   ├── useChain.test.tsx
│   │   │   ├── useChainWallet.test.tsx
│   │   │   ├── useChains.test.tsx
│   │   │   ├── useManager.test.tsx
│   │   │   ├── useNameService.test.tsx
│   │   │   ├── useWallet.test.tsx
│   │   │   └── useWalletClient.test.tsx
│   │   ├── index.ts
│   │   ├── jest.config.js
│   │   ├── jest.setup.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── hooks/
│   │   │   │   ├── index.ts
│   │   │   │   ├── useChain.ts
│   │   │   │   ├── useChainWallet.ts
│   │   │   │   ├── useChains.ts
│   │   │   │   ├── useIframe.ts
│   │   │   │   ├── useManager.ts
│   │   │   │   ├── useNameService.ts
│   │   │   │   ├── useWallet.ts
│   │   │   │   └── useWalletClient.ts
│   │   │   ├── index.ts
│   │   │   ├── provider.tsx
│   │   │   └── utils.ts
│   │   ├── test-utils/
│   │   │   ├── chain-provider-wrapper.tsx
│   │   │   ├── custom-render-hook.tsx
│   │   │   └── index.ts
│   │   ├── tsconfig.esm.json
│   │   └── tsconfig.json
│   └── walletconnect/
│       ├── .editorconfig
│       ├── .eslintignore
│       ├── .eslintrc.json
│       ├── .gitignore
│       ├── .npmignore
│       ├── .npmrc
│       ├── .prettierrc.json
│       ├── CHANGELOG.md
│       ├── LICENSE
│       ├── README.md
│       ├── index.ts
│       ├── package.json
│       ├── src/
│       │   ├── chain-wallet.ts
│       │   ├── client.ts
│       │   ├── index.ts
│       │   ├── main-wallet.ts
│       │   ├── types.ts
│       │   └── utils/
│       │       ├── core.ts
│       │       └── index.ts
│       ├── tsconfig.esm.json
│       └── tsconfig.json
├── pnpm-workspace.yaml
├── tsconfig.json
└── wallets/
    ├── arculus/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── arculus-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── arculus.ts
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       ├── registry.ts
    │   │       └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── aria/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── aria-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── aria.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   ├── tsconfig.json
    │   └── tsconfig.standalone.json
    ├── aria-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── aria.ts
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       ├── registry.ts
    │   │       └── types.ts
    │   ├── tsconfig.build.json
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── bitgetwallet/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── bitgetwallet-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── bitget.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── cdcwallet/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── cdcwallet-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── cdcwallet.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── coin98/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── coin98-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── coin98.ts
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── compass/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── compass-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── compass.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── cosmos-extension-metamask/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── cosmos-metamask-extension.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── cosmostation/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── cosmostation-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── cosmostation.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── cosmostation-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── cosmostation.ts
    │   │   ├── index.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       └── registry.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── ctrl/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── ctrl-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── ctrl.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── exodus/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── exodus-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── constants.ts
    │   │   ├── exodus.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── figure-markets/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── figure-markets-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── figure-markets.ts
    │   │   ├── index.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       └── registry.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── fin/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── fin-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── fin.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── foxwallet/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── foxwallet-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── foxwallet.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── frontier/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── frontier-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── frontier.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── galaxy-station/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── galaxy-station-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── galaxy-station.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── galaxy-station-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── galaxy-station.ts
    │   │   ├── index.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       ├── registry.ts
    │   │       └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── gatewallet/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── gatewallet-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── gatewallet.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── imtoken/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── imtoken-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── imToken.ts
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── initia/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── initia-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── type.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── initia.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── keplr/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── keplr-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   └── session.ts
    │   │   ├── index.ts
    │   │   └── keplr.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── keplr-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── keplr.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       └── registry.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── leap/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── leap-capsule-social-login/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── chain-wallet.ts
    │   │   ├── client.ts
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── leap-social.ts
    │   │   ├── main-wallet.ts
    │   │   ├── registry.ts
    │   │   └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── leap-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── leap.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── leap-metamask-cosmos-snap/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── leap-metamask-cosmos-snap.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── leap-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── leap.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       ├── registry.ts
    │   │       └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── ledger/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── ledger.ts
    │   │   └── web-usb-hid/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       ├── registry.ts
    │   │       └── utils.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── ninji/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── ninji-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── ninji.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── oko/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── chain-wallet.ts
    │   │   ├── client.ts
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── main-wallet.ts
    │   │   ├── registry.ts
    │   │   └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── okto-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── okto.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── okxwallet/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── okxwallet-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── okxwallet.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── omni/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── omni-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── omni.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       └── registry.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── owallet/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── owallet-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── owallet.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── owallet-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── owallet.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       ├── registry.ts
    │   │       └── types.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── prax-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   └── registry.ts
    │   │   ├── index.ts
    │   │   └── prax.ts
    │   └── tsconfig.json
    ├── shell/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── shell-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── config.ts
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── shell.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── station/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── station-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── station.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── tailwind/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── tailwind-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constants.ts
    │   │   ├── extension/
    │   │   │   ├── index.ts
    │   │   │   ├── utils.ts
    │   │   │   └── wallet.ts
    │   │   ├── index.ts
    │   │   └── tailwind.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── trust/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── trust-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── trust.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── trust-mobile/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── index.ts
    │   │   ├── trust.ts
    │   │   └── wallet-connect/
    │   │       ├── chain-wallet.ts
    │   │       ├── client.ts
    │   │       ├── index.ts
    │   │       ├── main-wallet.ts
    │   │       └── registry.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── vectis/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── vectis-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── vectis.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── vultisig/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   └── index.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    ├── vultisig-extension/
    │   ├── .editorconfig
    │   ├── .eslintignore
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .npmrc
    │   ├── .prettierrc.json
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── index.ts
    │   ├── package.json
    │   ├── src/
    │   │   ├── constant.ts
    │   │   ├── extension/
    │   │   │   ├── chain-wallet.ts
    │   │   │   ├── client.ts
    │   │   │   ├── index.ts
    │   │   │   ├── main-wallet.ts
    │   │   │   ├── registry.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── index.ts
    │   │   └── vultisig.ts
    │   ├── tsconfig.esm.json
    │   └── tsconfig.json
    └── web3auth/
        ├── .editorconfig
        ├── .eslintignore
        ├── .eslintrc.json
        ├── .gitignore
        ├── .npmignore
        ├── .npmrc
        ├── .prettierrc.json
        ├── CHANGELOG.md
        ├── LICENSE
        ├── README.md
        ├── index.ts
        ├── package.json
        ├── src/
        │   ├── constant.ts
        │   ├── extension/
        │   │   ├── chain-wallet.ts
        │   │   ├── client.ts
        │   │   ├── index.ts
        │   │   ├── main-wallet.ts
        │   │   ├── registry.ts
        │   │   ├── signer.ts
        │   │   ├── types.ts
        │   │   ├── utils.ts
        │   │   └── web3auth.worker.ts
        │   ├── index.ts
        │   └── web3auth.ts
        ├── tsconfig.esm.json
        └── tsconfig.json
Download .txt
SYMBOL INDEX (1477 symbols across 339 files)

FILE: examples/cosmos-kit-lite-nextjs-pages-router-example/pages/_app.tsx
  function MyApp (line 11) | function MyApp({ Component, pageProps }: AppProps) {

FILE: examples/cosmos-kit-nextjs-app-router-example/src/app/layout.tsx
  function RootLayout (line 21) | function RootLayout({

FILE: examples/cosmos-kit-nextjs-app-router-example/src/app/page.tsx
  function Home (line 3) | function Home() {

FILE: examples/cosmos-kit-nextjs-app-router-example/src/components/connect-wallet.tsx
  function ConnectWallet (line 9) | function ConnectWallet() {

FILE: examples/cosmos-kit-nextjs-app-router-example/src/components/cosmos-kit-provider.tsx
  function CosmosKitProvider (line 8) | function CosmosKitProvider({ children }: { children: React.ReactNode }) {

FILE: examples/cosmos-kit-nextjs-app-router-example/src/components/ui/badge.tsx
  function Badge (line 28) | function Badge({

FILE: examples/cosmos-kit-nextjs-app-router-example/src/components/ui/button.tsx
  function Button (line 38) | function Button({

FILE: examples/cosmos-kit-nextjs-app-router-example/src/components/ui/card.tsx
  function Card (line 5) | function Card({ className, ...props }: React.ComponentProps<"div">) {
  function CardHeader (line 18) | function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
  function CardTitle (line 31) | function CardTitle({ className, ...props }: React.ComponentProps<"div">) {
  function CardDescription (line 41) | function CardDescription({ className, ...props }: React.ComponentProps<"...
  function CardAction (line 51) | function CardAction({ className, ...props }: React.ComponentProps<"div">) {
  function CardContent (line 64) | function CardContent({ className, ...props }: React.ComponentProps<"div"...
  function CardFooter (line 74) | function CardFooter({ className, ...props }: React.ComponentProps<"div">) {

FILE: examples/cosmos-kit-nextjs-app-router-example/src/lib/utils.ts
  function cn (line 4) | function cn(...inputs: ClassValue[]) {

FILE: examples/cosmos-kit-nextjs-pages-router-example/components/badge.tsx
  type BadgeProps (line 26) | interface BadgeProps
  function Badge (line 30) | function Badge({ className, variant, ...props }: BadgeProps) {

FILE: examples/cosmos-kit-nextjs-pages-router-example/components/button.tsx
  type ButtonProps (line 37) | interface ButtonProps

FILE: examples/cosmos-kit-nextjs-pages-router-example/components/chains-tx-wallet.tsx
  function ChainsTXWalletSection (line 22) | function ChainsTXWalletSection({ chainName }: { chainName: ChainName }) {

FILE: examples/cosmos-kit-nextjs-pages-router-example/components/custom-connected.tsx
  function CustomConnectedView (line 4) | function CustomConnectedView(props: WalletViewProps): ModalViewImpl {

FILE: examples/cosmos-kit-nextjs-pages-router-example/components/layout.tsx
  type RootLayoutProps (line 4) | interface RootLayoutProps {
  function RootLayout (line 8) | function RootLayout({ children }: RootLayoutProps) {

FILE: examples/cosmos-kit-nextjs-pages-router-example/components/mode-toggle.tsx
  function ModeToggle (line 13) | function ModeToggle() {

FILE: examples/cosmos-kit-nextjs-pages-router-example/components/react/address-card.tsx
  function stringTruncateFromdiv (line 7) | function stringTruncateFromdiv(str: string, maxLength: number) {

FILE: examples/cosmos-kit-nextjs-pages-router-example/components/react/handleChangeColor.tsx
  function handleChangeColorModeValue (line 2) | function handleChangeColorModeValue(

FILE: examples/cosmos-kit-nextjs-pages-router-example/components/theme-provider.tsx
  function ThemeProvider (line 5) | function ThemeProvider({ children, ...props }: ThemeProviderProps) {

FILE: examples/cosmos-kit-nextjs-pages-router-example/components/types.tsx
  type ChainDivProps (line 4) | interface ChainDivProps {
  type ConnectWalletType (line 9) | interface ConnectWalletType {
  type ChooseChainInfo (line 17) | interface ChooseChainInfo {
  type ConnectWalletType (line 25) | interface ConnectWalletType {
  type ConnectedUserdivType (line 33) | interface ConnectedUserdivType {
  type OptionBase (line 38) | interface OptionBase {
  type ChainOption (line 45) | interface ChainOption extends OptionBase {
  type handleSelectChainDropdown (line 54) | type handleSelectChainDropdown = (value: ChainOption | null) => void;
  type ChangeChainDropdownType (line 56) | interface ChangeChainDropdownType {
  type ChangeChainMenuType (line 63) | interface ChangeChainMenuType {
  type CopyAddressType (line 71) | type CopyAddressType = {

FILE: examples/cosmos-kit-nextjs-pages-router-example/hooks/index.ts
  function useIsClient (line 3) | function useIsClient() {

FILE: examples/cosmos-kit-nextjs-pages-router-example/lib/utils.ts
  function cn (line 4) | function cn(...inputs: ClassValue[]) {

FILE: examples/cosmos-kit-nextjs-pages-router-example/pages/_app.tsx
  function MyApp (line 32) | function MyApp({ Component, pageProps }: AppProps) {
  function CustomCapsuleModalViewX (line 192) | function CustomCapsuleModalViewX() {

FILE: examples/cosmos-kit-nextjs-pages-router-example/pages/chain/[name].tsx
  function ChainLayout (line 15) | function ChainLayout({
  function ChainTable (line 61) | function ChainTable({
  function ChainPage (line 98) | function ChainPage(props: { name: string; prettyName: string }) {
  function getStaticPaths (line 116) | async function getStaticPaths() {
  function getStaticProps (line 127) | async function getStaticProps({ params }: { params: { name: string } }) {

FILE: examples/cosmos-kit-nextjs-pages-router-example/pages/index.tsx
  function IndexPage (line 24) | function IndexPage() {

FILE: examples/cosmos-kit-nextjs-pages-router-example/pages/ledger.tsx
  constant DEFAULT_TO_ADDRESS (line 7) | const DEFAULT_TO_ADDRESS = "cosmos1xane5m7g6a845pfwldh6kparm357wu3grrt7hc";
  type SignResult (line 9) | type SignResult = {
  type Account (line 14) | type Account = {
  function getAccountURL (line 22) | function getAccountURL(address: string) {
  function sign (line 62) | async function sign() {

FILE: examples/cosmos-kit-nextjs-pages-router-example/pages/test.tsx
  function TestPage (line 4) | function TestPage() {

FILE: examples/cosmos-kit-nextjs-pages-router-example/pages/tx.tsx
  function prettifyJson (line 229) | function prettifyJson(jsonString: string) {

FILE: examples/cosmos-kit-nextjs-pages-router-example/pages/use-chains.tsx
  constant CHAIN_NAMES (line 6) | const CHAIN_NAMES = ['cosmoshub', 'osmosis', 'juno', 'akash', 'stargaze'];
  constant CHAIN_BUTTONS (line 7) | const CHAIN_BUTTONS = [
  function onReset (line 19) | function onReset() {
  function onAddChain (line 23) | function onAddChain(e: MouseEvent) {

FILE: examples/cosmos-kit-nextjs-pages-router-example/pages/use-wallet.tsx
  function Page (line 4) | function Page() {

FILE: examples/cosmos-kit-nextjs-pages-router-example/pages/wc.tsx
  function HomePage (line 11) | function HomePage() {

FILE: examples/cosmos-kit-nextjs-pages-router-example/seo/seo.js
  constant PAGE_DIR (line 5) | const PAGE_DIR = __dirname + '/../pages/';
  constant IGNORE (line 9) | const IGNORE = [
  constant LEGAL_FILES (line 21) | const LEGAL_FILES = [
  function formatDate (line 83) | function formatDate(date) {
  constant BAD_AGENTS (line 130) | const BAD_AGENTS = [

FILE: examples/cosmos-kit-nextjs-pages-router-example/wc/client.ts
  type Web3ModalConfig (line 7) | type Web3ModalConfig = Omit<ConfigCtrlState, "enableStandaloneMode">;
  class Web3Modal (line 12) | class Web3Modal {
    method constructor (line 13) | public constructor(config: Web3ModalConfig) {
    method initUi (line 18) | private async initUi() {

FILE: packages/core/__tests__/bases/chain-wallet.test.ts
  function storageMock (line 16) | function storageMock() {

FILE: packages/core/__tests__/bases/main-wallet.test.ts
  function storageMock (line 12) | function storageMock() {

FILE: packages/core/__tests__/bases/wallet.test.ts
  class WalletBaseImplement (line 7) | class WalletBaseImplement extends WalletBase {
    method initClient (line 9) | initClient(options?: any): void | Promise<void> {
    method update (line 12) | update(): void | Promise<void> {
  function storageMock (line 17) | function storageMock() {

FILE: packages/core/__tests__/manager.test.ts
  function storageMock (line 16) | function storageMock() {

FILE: packages/core/src/bases/chain-wallet.ts
  class ChainWalletBase (line 27) | class ChainWalletBase extends WalletBase {
    method constructor (line 37) | constructor(walletInfo: Wallet, chainRecord: ChainRecord) {
    method chain (line 44) | get chain() {
    method assetList (line 48) | get assetList() {
    method isTestNet (line 52) | get isTestNet() {
    method preferredEndpoints (line 56) | get preferredEndpoints() {
    method rpcEndpoints (line 60) | get rpcEndpoints() {
    method restEndpoints (line 64) | get restEndpoints() {
    method isLazy (line 71) | get isLazy() {
    method addEndpoints (line 75) | addEndpoints(endpoints?: Endpoints) {
    method chainName (line 86) | get chainName() {
    method chainLogoUrl (line 90) | get chainLogoUrl(): string | undefined {
    method stargateOptions (line 102) | get stargateOptions(): StargateClientOptions | undefined {
    method signingStargateOptions (line 106) | get signingStargateOptions(): SigningStargateClientOptions | undefined {
    method signingCosmwasmOptions (line 113) | get signingCosmwasmOptions(): SigningCosmWasmClientOptions | undefined {
    method assets (line 117) | get assets() {
    method chainId (line 121) | get chainId() {
    method cosmwasmEnabled (line 125) | get cosmwasmEnabled() {
    method username (line 129) | get username(): string | undefined {
    method address (line 133) | get address(): string | undefined {
    method setData (line 137) | setData(data: SimpleAccount | undefined) {
    method initClient (line 167) | initClient(_options?: any): void | Promise<void> {
    method update (line 171) | async update(options = { connect: true }) {
    method initOfflineSigner (line 320) | async initOfflineSigner(preferredSignType?: SignType) {

FILE: packages/core/src/bases/main-wallet.ts
  method constructor (line 25) | constructor(walletInfo: Wallet, ChainWallet: IChainWallet) {
  method initingClient (line 67) | initingClient() {
  method initClientDone (line 78) | initClientDone(client: WalletClient | undefined) {
  method initClientError (line 89) | initClientError(error: Error | undefined) {
  method onSetChainsDone (line 102) | protected onSetChainsDone(): void { }
  method makeFinalEndpoints (line 104) | private makeFinalEndpoints(chain: ChainRecord) {
  method addEnpoints (line 128) | addEnpoints(endpoints?: EndpointOptions['endpoints']) {
  method setChains (line 134) | setChains(chains: ChainRecord[], overwrite = true): void {
  method chainWalletMap (line 158) | get chainWalletMap() {
  method update (line 195) | async update() {
  method reset (line 213) | reset() {
  method connectAll (line 220) | async connectAll(activeOnly = true, exclude?: ChainName) {
  method disconnectAll (line 240) | async disconnectAll(

FILE: packages/core/src/bases/state.ts
  class StateBase (line 5) | class StateBase {
    method constructor (line 11) | constructor() {
    method env (line 15) | get env() {
    method setEnv (line 19) | setEnv(env?: DappEnv) {
    method isMobile (line 27) | get isMobile() {
    method mutable (line 31) | get mutable() {
    method state (line 35) | get state() {
    method isInit (line 39) | get isInit() {
    method isDone (line 43) | get isDone() {
    method isError (line 47) | get isError() {
    method isPending (line 51) | get isPending() {
    method data (line 55) | get data() {
    method message (line 59) | get message() {
    method setState (line 63) | setState(state: State) {
    method setData (line 73) | setData(data: Data | undefined) {
    method setMessage (line 78) | setMessage(message: string | undefined) {
    method reset (line 88) | reset() {
    method walletStatus (line 94) | get walletStatus(): WalletStatus {
    method isWalletOnceConnect (line 98) | get isWalletOnceConnect() {
    method isWalletConnecting (line 102) | get isWalletConnecting() {
    method isWalletConnected (line 106) | get isWalletConnected() {
    method isWalletDisconnected (line 110) | get isWalletDisconnected() {
    method isWalletRejected (line 114) | get isWalletRejected() {
    method isWalletNotExist (line 118) | get isWalletNotExist() {
    method isWalletError (line 122) | get isWalletError() {

FILE: packages/core/src/bases/wallet.ts
  method constructor (line 35) | constructor(walletInfo: Wallet) {
  method appUrl (line 40) | get appUrl() {
  method qrUrl (line 44) | get qrUrl() {
  method activate (line 48) | activate() {
  method inactivate (line 52) | inactivate() {
  method client (line 56) | get client() {
  method initingClient (line 60) | initingClient() {
  method initClientDone (line 66) | initClientDone(client: WalletClient | undefined) {
  method initClientError (line 72) | initClientError(error: Error | undefined) {
  method walletInfo (line 85) | get walletInfo(): Wallet {
  method isModeExtension (line 89) | get isModeExtension() {
  method isModeWalletConnect (line 93) | get isModeWalletConnect() {
  method downloadInfo (line 97) | get downloadInfo(): DownloadInfo | undefined {
  method walletName (line 121) | get walletName() {
  method walletPrettyName (line 125) | get walletPrettyName() {
  method rejectMessageSource (line 129) | get rejectMessageSource() {
  method rejectMessageTarget (line 137) | get rejectMessageTarget() {
  method rejectCode (line 145) | get rejectCode() {
  method rejectMatched (line 149) | rejectMatched(e: Error) {
  method updateCallbacks (line 156) | updateCallbacks(callbacks: Callbacks) {
  method setClientNotExist (line 183) | setClientNotExist(e?: Error) {
  method setRejected (line 189) | setRejected(e?: Error) {
  method setError (line 195) | setError(e?: Error | string) {

FILE: packages/core/src/cosmiframe/constants.ts
  constant COSMIFRAME_WALLET_ID (line 1) | const COSMIFRAME_WALLET_ID = 'cosmiframe';
  constant COSMIFRAME_KEYSTORECHANGE_EVENT (line 2) | const COSMIFRAME_KEYSTORECHANGE_EVENT = 'cosmiframe_keystorechange';
  constant COSMIFRAME_NOT_CONNECTED_MESSAGE (line 3) | const COSMIFRAME_NOT_CONNECTED_MESSAGE = 'Cosmiframe not connected.';

FILE: packages/core/src/cosmiframe/extension/chain-wallet.ts
  class ChainWalletCosmiframe (line 4) | class ChainWalletCosmiframe extends ChainWalletBase {
    method constructor (line 5) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: packages/core/src/cosmiframe/extension/client.ts
  class CosmiframeClient (line 11) | class CosmiframeClient implements WalletClient {
    method constructor (line 12) | constructor(private cosmiframe: Cosmiframe) {}
    method getSimpleAccount (line 14) | async getSimpleAccount(...params) {
    method connect (line 18) | async connect(...params) {
    method enable (line 34) | async enable(...params) {
    method suggestToken (line 38) | async suggestToken(...params) {
    method addChain (line 42) | async addChain(...params) {
    method getAccount (line 61) | async getAccount(...params) {
    method getOfflineSigner (line 65) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 73) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 77) | getOfflineSignerDirect(chainId: string) {
    method sign (line 81) | async sign(...params) {
    method signAmino (line 85) | async signAmino(...params) {
    method signDirect (line 89) | async signDirect(...params) {
    method signArbitrary (line 93) | async signArbitrary(...params): Promise<StdSignature> {
    method getEnigmaPubKey (line 97) | async getEnigmaPubKey(...params) {
    method getEnigmaTxEncryptionKey (line 101) | async getEnigmaTxEncryptionKey(...params) {
    method enigmaEncrypt (line 105) | async enigmaEncrypt(...params) {
    method enigmaDecrypt (line 109) | async enigmaDecrypt(...params) {
    method sendTx (line 113) | async sendTx(...params) {

FILE: packages/core/src/cosmiframe/extension/main-wallet.ts
  class CosmiframeWallet (line 8) | class CosmiframeWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: CosmiframeWalletInfo) {
    method walletInfo (line 13) | get walletInfo(): CosmiframeWalletInfo {
    method initClient (line 17) | async initClient() {

FILE: packages/core/src/cosmiframe/extension/types.ts
  type CosmiframeWalletInfo (line 5) | type CosmiframeWalletInfo = Wallet & {

FILE: packages/core/src/manager.ts
  class WalletManager (line 34) | class WalletManager extends StateBase {
    method constructor (line 49) | constructor(
    method init (line 109) | init(
    method checkEndpoints (line 160) | private checkEndpoints(endpoints?: EndpointOptions['endpoints']) {
    method setWalletRepel (line 170) | setWalletRepel(value: boolean) {
    method activeRepos (line 264) | get activeRepos(): WalletRepo[] {

FILE: packages/core/src/name-service.ts
  class NameService (line 4) | class NameService {
    method constructor (line 8) | constructor(client: CosmWasmClient, registry: NameServiceRegistry) {
    method resolveName (line 13) | async resolveName(address: Bech32Address): Promise<any | undefined> {

FILE: packages/core/src/repository.ts
  class WalletRepo (line 23) | class WalletRepo extends StateBase {
    method constructor (line 33) | constructor(chainRecord: ChainRecord, wallets: ChainWalletBase[] = []) {
    method setCallbackOptions (line 105) | setCallbackOptions(options?: CallbackOptions) {
    method setEnv (line 109) | setEnv(env?: DappEnv): void {
    method activate (line 114) | activate() {
    method chainName (line 119) | get chainName() {
    method chainLogo (line 123) | get chainLogo(): string | undefined {
    method wallets (line 135) | get wallets(): ChainWalletBase[] {
    method platformEnabledWallets (line 139) | get platformEnabledWallets(): ChainWalletBase[] {
    method isSingleWallet (line 149) | get isSingleWallet() {
    method current (line 153) | get current(): ChainWalletBase | undefined {

FILE: packages/core/src/types/chain.ts
  type ChainName (line 11) | type ChainName = string;
  type ChainRecord (line 13) | interface ChainRecord {

FILE: packages/core/src/types/common.ts
  type State (line 5) | enum State {
  type Mutable (line 12) | interface Mutable<T> {
  type Dispatch (line 18) | type Dispatch<T> = (value: T) => void;
  type Actions (line 20) | interface Actions {
  type Data (line 24) | type Data = Record<string, any>;
  type StateActions (line 26) | interface StateActions<T> extends Actions {
  type WalletClientActions (line 35) | interface WalletClientActions {
  type Callbacks (line 40) | interface Callbacks {
  type OS (line 47) | type OS = 'android' | 'ios' | 'windows' | 'macos';
  type BrowserName (line 48) | type BrowserName = 'chrome' | 'firefox' | 'safari' | string;
  type DeviceType (line 49) | type DeviceType = 'desktop' | 'mobile';
  type DappEnv (line 51) | interface DappEnv {
  type CosmosClientType (line 57) | type CosmosClientType = 'stargate' | 'cosmwasm';
  type SignType (line 58) | type SignType = 'amino' | 'direct';
  type LogLevel (line 60) | type LogLevel = 'TRACE' | 'DEBUG' | 'INFO' | 'WARN' | 'ERROR' | 'NONE';
  type ModalTheme (line 62) | type ModalTheme = 'light' | 'dark';

FILE: packages/core/src/types/hook.ts
  type ChainWalletContext (line 51) | interface ChainWalletContext {
  type ChainContext (line 132) | interface ChainContext extends ChainWalletContext {
  type ManagerContext (line 139) | interface ManagerContext {
  type ModalThemeContext (line 159) | interface ModalThemeContext {
  type WalletContext (line 164) | interface WalletContext {
  type WalletClientContext (line 172) | interface WalletClientContext {

FILE: packages/core/src/types/manager.ts
  type SignerOptions (line 15) | interface SignerOptions {
  type SessionOptions (line 26) | interface SessionOptions {
  type ExtendedHttpEndpoint (line 34) | interface ExtendedHttpEndpoint extends HttpEndpoint {
  type Endpoints (line 38) | interface Endpoints {
  type EndpointOptions (line 44) | interface EndpointOptions {
  type ManagerActions (line 49) | interface ManagerActions<T> extends StateActions<T> {
  type EventName (line 55) | type EventName = 'refresh_connection';

FILE: packages/core/src/types/view.ts
  type ModalView (line 7) | enum ModalView {
  type WalletModalProps (line 17) | interface WalletModalProps {
  type WalletViewProps (line 23) | interface WalletViewProps {
  type RefObject (line 30) | interface RefObject<T> {
  type WalletListViewProps (line 34) | interface WalletListViewProps {
  type SingleWalletView (line 40) | type SingleWalletView = `${Exclude<ModalView, ModalView.WalletList>}`;
  type ModalViews (line 42) | type ModalViews = {

FILE: packages/core/src/types/wallet.ts
  type Key (line 20) | interface Key {
  type SimpleAccount (line 30) | interface SimpleAccount {
  type WalletName (line 37) | type WalletName = string;
  type WalletStatus (line 39) | enum WalletStatus {
  type DownloadInfo (line 48) | interface DownloadInfo extends DappEnv {
  type WalletMode (line 53) | type WalletMode =
  type Metadata (line 59) | interface Metadata {
  type AppUrl (line 66) | interface AppUrl {
  type Wallet (line 78) | interface Wallet {
  type Bech32Address (line 120) | type Bech32Address = string;
  type WalletAccount (line 122) | interface WalletAccount extends AccountData {
  type SignOptions (line 128) | interface SignOptions {
  type DirectSignDoc (line 134) | interface DirectSignDoc {
  type BroadcastMode (line 145) | enum BroadcastMode {
  type SuggestCW20Token (line 154) | interface SuggestCW20Token {
  type SuggestTokenType (line 166) | type SuggestTokenType =
  type SuggestToken (line 169) | interface SuggestToken {
  type WalletClient (line 176) | interface WalletClient {
  type WalletAdapter (line 246) | type WalletAdapter = ChainWalletBase | MainWalletBase;
  type IChainWallet (line 248) | interface IChainWallet {
  type NameServiceName (line 252) | type NameServiceName = string;
  type NameServiceRegistry (line 254) | interface NameServiceRegistry {
  type WalletConnectOptions (line 262) | interface WalletConnectOptions {
  type DisconnectOptions (line 266) | interface DisconnectOptions {
  type ModalOptions (line 272) | interface ModalOptions {
  type CallbackOptions (line 278) | interface CallbackOptions {

FILE: packages/core/src/utils/check.ts
  function checkInit (line 1) | function checkInit(target: unknown, targetName?: string, msg?: string) {
  function checkKey (line 7) | function checkKey(

FILE: packages/core/src/utils/convert.ts
  function convertChain (line 7) | function convertChain(

FILE: packages/core/src/utils/endpoint.ts
  type NodeType (line 6) | type NodeType = 'rest' | 'rpc';

FILE: packages/core/src/utils/error.ts
  class WalletNotProvidedError (line 8) | class WalletNotProvidedError extends Error {
    method constructor (line 11) | constructor(walletName: string) {
  class ConnectError (line 17) | class ConnectError extends Error {
    method constructor (line 20) | constructor(message?: string) {

FILE: packages/core/src/utils/logger.ts
  function wrap (line 3) | function wrap(logLevel: LogLevel, message?: any) {
  class Logger (line 18) | class Logger {
    method constructor (line 30) | public constructor(level: LogLevel = 'INFO') {
    method compare (line 35) | private compare(a: LogLevel, b: LogLevel) {
    method trace (line 47) | public trace(message?: any, ...optionalParams: any[]): void {
    method debug (line 53) | public debug(message?: any, ...optionalParams: any[]): void {
    method info (line 59) | public info(message?: any, ...optionalParams: any[]): void {
    method warn (line 65) | public warn(message?: any, ...optionalParams: any[]): void {
    method error (line 71) | public error(message?: any, ...optionalParams: any[]): void {

FILE: packages/core/src/utils/map.ts
  function valuesApply (line 1) | function valuesApply<K, V, R>(

FILE: packages/core/src/utils/math.ts
  function sum (line 1) | function sum<T>(

FILE: packages/core/src/utils/session.ts
  class Session (line 3) | class Session {
    method constructor (line 7) | constructor(sessionOptions: SessionOptions) {
    method update (line 11) | update() {

FILE: packages/core/test-utils/mock-extension/constant.ts
  constant ICON (line 1) | const ICON =

FILE: packages/core/test-utils/mock-extension/extension/chain-wallet.ts
  class ChainMockExtension (line 4) | class ChainMockExtension extends ChainWalletBase {
    method constructor (line 5) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: packages/core/test-utils/mock-extension/extension/client.ts
  class MockClient (line 17) | class MockClient implements WalletClient {
    method defaultSignOptions (line 25) | get defaultSignOptions() {
    method setDefaultSignOptions (line 29) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 33) | constructor(client: Mock) {
    method enable (line 37) | async enable(chainIds: string | string[]) {
    method suggestToken (line 41) | async suggestToken({ chainId, tokens, type }: SuggestToken) {
    method addChain (line 49) | async addChain(chainInfo: ChainRecord) {
    method disconnect (line 68) | async disconnect() {
    method getSimpleAccount (line 72) | async getSimpleAccount(chainId: string) {
    method getAccount (line 82) | async getAccount(chainId: string) {
    method getOfflineSigner (line 93) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 105) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 109) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 113) | async signAmino(
    method signArbitrary (line 127) | async signArbitrary(
    method signDirect (line 135) | async signDirect(
    method sendTx (line 152) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: packages/core/test-utils/mock-extension/extension/main-wallet.ts
  class MockExtensionWallet (line 8) | class MockExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: packages/core/test-utils/mock-extension/extension/types.ts
  type Key (line 13) | interface Key {
  type MockSignOptions (line 21) | interface MockSignOptions {
  type Mock (line 27) | interface Mock {

FILE: packages/core/test-utils/mock-extension/extension/utils.ts
  type MockWindow (line 4) | interface MockWindow {

FILE: packages/core/test-utils/mocker/index.ts
  class MockWallet (line 16) | class MockWallet implements Mock {
    method disconnect (line 27) | async disconnect(): Promise<void> {
    method enable (line 31) | async enable(chainIds: string | string[]): Promise<void> {
    method suggestToken (line 35) | async suggestToken(chainId: string, contractAddress: string): Promise<...
    method suggestCW20Token (line 39) | async suggestCW20Token(
    method getKey (line 46) | async getKey(chainId: string): Promise<Key> {
    method getOfflineSigner (line 57) | async getOfflineSigner(
    method getOfflineSignerOnlyAmino (line 67) | async getOfflineSignerOnlyAmino(
    method getOfflineSignerAuto (line 77) | async getOfflineSignerAuto(chainId: string): Promise<OfflineSigner> {
    method signAmino (line 85) | async signAmino(
    method signDirect (line 97) | async signDirect(
    method signArbitrary (line 114) | async signArbitrary(
    method getEnigmaPubKey (line 125) | async getEnigmaPubKey(chainId: string): Promise<Uint8Array> {
    method getEnigmaTxEncryptionKey (line 129) | async getEnigmaTxEncryptionKey(
    method enigmaEncrypt (line 136) | async enigmaEncrypt(
    method enigmaDecrypt (line 144) | async enigmaDecrypt(
    method sendTx (line 152) | async sendTx(
    method experimentalSuggestChain (line 160) | async experimentalSuggestChain(chainInfo: ChainInfo): Promise<void> {

FILE: packages/core/test-utils/mocker/setup.ts
  function setupWallet (line 4) | async function setupWallet() {

FILE: packages/cosmos-kit/src/wallets.ts
  type WalletName (line 29) | type WalletName =
  type WalletList (line 50) | type WalletList<
  function createWalletList (line 64) | function createWalletList<
  type SubWalletList (line 111) | type SubWalletList = MainWalletBase[] & {
  type AllWalletList (line 116) | type AllWalletList = SubWalletList & {
  function defineGetters (line 139) | function defineGetters(wallets: MainWalletBase[]) {
  function createAllWalletList (line 156) | function createAllWalletList(ws: MainWalletBase[]) {

FILE: packages/docs/components/hooks.tsx
  type UseNextraThemeOptions (line 3) | interface UseNextraThemeOptions {

FILE: packages/docs/components/react/address-card.tsx
  constant SIZES (line 6) | const SIZES = {
  type CopyAddressType (line 21) | type CopyAddressType = {
  function stringTruncateFromCenter (line 105) | function stringTruncateFromCenter(str: string, maxLength: number) {

FILE: packages/docs/components/react/chain-card.tsx
  type IChainCard (line 4) | interface IChainCard {

FILE: packages/docs/components/react/choose-chain.tsx
  type Option (line 14) | type Option = {
  type ChainInfo (line 19) | interface ChainInfo {
  type ChooseChainProps (line 28) | interface ChooseChainProps {
  method keySelector (line 88) | keySelector(s) {

FILE: packages/docs/components/react/handleChangeColor.tsx
  function handleChangeColorModeValue (line 2) | function handleChangeColorModeValue(

FILE: packages/docs/components/react/wallet-connect.tsx
  type IConnectWalletButton (line 13) | interface IConnectWalletButton {

FILE: packages/docs/components/types.tsx
  type WalletStatus (line 4) | enum WalletStatus {
  type OptionBase (line 12) | interface OptionBase {
  type ChangeChainDropdownType (line 19) | interface ChangeChainDropdownType {
  type ChangeChainMenuType (line 26) | interface ChangeChainMenuType {
  type ChooseChainInfo (line 34) | interface ChooseChainInfo {
  type ChainOption (line 43) | interface ChainOption extends OptionBase {
  type handleSelectChainDropdown (line 52) | type handleSelectChainDropdown = (value: ChainOption | null) => void;
  type ConnectWalletType (line 54) | interface ConnectWalletType {
  type ConnectedUserCardType (line 62) | interface ConnectedUserCardType {
  type FeatureProps (line 68) | interface FeatureProps {
  type ChainCardProps (line 74) | interface ChainCardProps {
  type CopyAddressType (line 79) | type CopyAddressType = {

FILE: packages/docs/pages/_app.tsx
  function MyApp (line 13) | function MyApp({ Component, pageProps }: AppProps) {

FILE: packages/docs/seo/seo.js
  constant PAGE_DIR (line 5) | const PAGE_DIR = __dirname + '/../pages/';
  constant IGNORE (line 9) | const IGNORE = [
  constant LEGAL_FILES (line 21) | const LEGAL_FILES = [
  function formatDate (line 82) | function formatDate(date) {
  constant BAD_AGENTS (line 129) | const BAD_AGENTS = [

FILE: packages/docs/theme.config.tsx
  method useNextSeoProps (line 20) | useNextSeoProps() {

FILE: packages/ins/src/name-service.ts
  type NameServiceName (line 4) | type NameServiceName = string;
  type NameServiceInfo (line 6) | interface NameServiceInfo {
  type NameServiceRegistry (line 17) | type NameServiceRegistry = NameServiceInfo[];
  type ParsedInsName (line 19) | type ParsedInsName =
  class INS (line 46) | class INS {
    method constructor (line 53) | constructor(chains: Chain[], ins_registry: NameServiceRegistry) {
    method resolveInsName (line 63) | async resolveInsName(
    method resolveINSAddress (line 110) | async resolveINSAddress(insName: string): Promise<string | undefined> {

FILE: packages/react-lite/jest.setup.js
  method getSimpleAccount (line 10) | async getSimpleAccount(chainId) {
  method getAccount (line 19) | async getAccount(chainId) {
  method getKey (line 29) | async getKey(chainId) {
  method getSimpleAccount (line 41) | async getSimpleAccount(chainId) {
  method getAccount (line 50) | async getAccount(chainId) {
  method getKey (line 60) | async getKey(chainId) {
  method disconnect (line 69) | async disconnect() {
  method getSimpleAccount (line 82) | async getSimpleAccount(chainId) {
  method getAccount (line 91) | async getAccount(chainId) {
  method getKey (line 101) | async getKey() {
  method disconnect (line 110) | async disconnect() {

FILE: packages/react-lite/src/hooks/useChains.ts
  function useChains (line 7) | function useChains(chainNames: ChainName[], sync = true) {

FILE: packages/react-lite/src/hooks/useIframe.ts
  type FunctionKeys (line 20) | type FunctionKeys<T> = {
  type UseIframeSignerOverrides (line 24) | type UseIframeSignerOverrides = Partial<{
  type UseIframeOptions (line 30) | type UseIframeOptions = {
  type UseIframeReturn (line 68) | type UseIframeReturn = {

FILE: packages/react-lite/src/provider.tsx
  function ChainProvider (line 33) | function ChainProvider({

FILE: packages/react-lite/src/utils.ts
  function getChainWalletContext (line 8) | function getChainWalletContext(

FILE: packages/react/src/context/useSelectedWalletContext.tsx
  type SelectedWalletRepoContextType (line 4) | type SelectedWalletRepoContextType = {

FILE: packages/react/src/hooks/useModalTheme.ts
  function useModalTheme (line 4) | function useModalTheme() {

FILE: packages/react/src/modal/components/Astronaut.tsx
  function AstronautSvg (line 3) | function AstronautSvg(props: SVGProps<SVGSVGElement>) {

FILE: packages/react/src/modal/components/views/Connected.tsx
  function ConnectedView (line 7) | function ConnectedView({

FILE: packages/react/src/modal/components/views/Connecting.tsx
  function ConnectingView (line 6) | function ConnectingView({

FILE: packages/react/src/modal/components/views/Error.tsx
  function ErrorView (line 6) | function ErrorView({

FILE: packages/react/src/modal/components/views/NotExist.tsx
  function NotExistView (line 11) | function NotExistView({
  function getIcon (line 55) | function getIcon(downloadInfo: WalletViewProps['wallet']['downloadInfo']) {

FILE: packages/react/src/modal/components/views/QRCode.tsx
  function QRCodeView (line 10) | function QRCodeView({

FILE: packages/react/src/modal/components/views/Rejected.tsx
  function RejectedView (line 6) | function RejectedView({

FILE: packages/react/src/modal/components/views/WalletList.tsx
  type DynamicWalletListProps (line 8) | interface DynamicWalletListProps {
  function DynamicWalletList (line 13) | function DynamicWalletList({ wallets, onClose }: DynamicWalletListProps) {
  function WalletListView (line 89) | function WalletListView({

FILE: packages/react/src/modal/components/views/config.ts
  type ModalViewImpl (line 16) | type ModalViewImpl = {
  type WalletViewImplGetter (line 21) | type WalletViewImplGetter = (props: WalletViewProps) => ModalViewImpl;
  type WalletListImplGetter (line 23) | type WalletListImplGetter = (
  function getWalletProp (line 40) | function getWalletProp(wallet: Wallet) {

FILE: packages/react/src/modal/constant.ts
  constant WC_ICON (line 1) | const WC_ICON =

FILE: packages/react/src/modal/modal.tsx
  type ModalCustomizationProps (line 31) | type ModalCustomizationProps = {
  type ThemeCustomizationProps (line 38) | type ThemeCustomizationProps = ModalCustomizationProps &
  type WalletModalComponentProps (line 44) | type WalletModalComponentProps = WalletModalProps &
  function WalletModal (line 51) | function WalletModal({
  function DefaultModal (line 236) | function DefaultModal({

FILE: packages/walletconnect/src/chain-wallet.ts
  class ChainWC (line 13) | class ChainWC extends ChainWalletBase {
    method constructor (line 18) | constructor(walletInfo: Wallet, chainInfo: ChainRecord, WCClient: IWCC...
    method setClientNotExist (line 23) | setClientNotExist() {

FILE: packages/walletconnect/src/client.ts
  constant EXPLORER_API (line 40) | const EXPLORER_API = 'https://explorer-api.walletconnect.com';
  class WCClient (line 42) | class WCClient implements WalletClient {
    method constructor (line 68) | constructor(walletInfo: Wallet) {
    method defaultSignOptions (line 82) | get defaultSignOptions() {
    method setDefaultSignOptions (line 86) | setDefaultSignOptions(options: SignOptions) {
    method isMobile (line 90) | get isMobile() {
    method wcName (line 95) | get wcName(): string {
    method wcEncoding (line 100) | get wcEncoding(): BufferEncoding {
    method wcProjectId (line 105) | get wcProjectId(): string {
    method wcMobile (line 110) | get wcMobile() {
    method accounts (line 114) | get accounts(): SimpleAccount[] {
    method deleteSession (line 131) | deleteSession(topic: string) {
    method subscribeToEvents (line 148) | subscribeToEvents() {
    method deleteInactivePairings (line 204) | async deleteInactivePairings() {
    method deleteAllPairings (line 218) | async deleteAllPairings() {
    method restorePairings (line 232) | restorePairings() {
    method pairing (line 246) | get pairing(): PairingTypes.Struct | undefined {
    method restoreSessions (line 250) | restoreSessions() {
    method getSession (line 264) | async getSession(namespace: string, chainId: string) {
    method walletName (line 275) | get walletName() {
    method dappProjectId (line 279) | get dappProjectId() {
    method setActions (line 283) | setActions(actions: WalletClientActions) {
    method setQRState (line 287) | setQRState(state: State) {
    method setQRError (line 292) | setQRError(e?: Error | string) {
    method init (line 301) | async init() {
    method initSignClient (line 308) | async initSignClient() {
    method initWCCloudInfo (line 329) | async initWCCloudInfo() {
    method initAppUrl (line 337) | async initAppUrl() {
    method nativeUrl (line 350) | get nativeUrl() {
    method universalUrl (line 371) | get universalUrl() {
    method redirectHref (line 375) | get redirectHref(): string | undefined {
    method redirectHrefWithWCUri (line 379) | get redirectHrefWithWCUri(): string | undefined {
    method displayQRCode (line 395) | get displayQRCode() {
    method redirect (line 403) | get redirect() {
    method openApp (line 407) | openApp(withWCUri = true) {
    method connect (line 417) | async connect(
    method disconnect (line 506) | async disconnect(options?: DisconnectOptions) {
    method getSimpleAccount (line 538) | async getSimpleAccount(chainId: string): Promise<SimpleAccount> {
    method getOfflineSignerAmino (line 548) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 556) | getOfflineSignerDirect(chainId: string) {
    method getOfflineSigner (line 564) | async getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method _getAccount (line 576) | protected async _getAccount(chainId: string) {
    method getAccount (line 593) | async getAccount(chainId: string): Promise<WalletAccount> {
    method _signAmino (line 604) | protected async _signAmino(
    method signAmino (line 632) | async signAmino(
    method _signDirect (line 647) | protected async _signDirect(
    method signDirect (line 683) | async signDirect(

FILE: packages/walletconnect/src/main-wallet.ts
  class WCWallet (line 7) | class WCWallet extends MainWalletBase {
    method constructor (line 11) | constructor(walletInfo: Wallet, ChainWC: IChainWC, WCClient: IWCClient) {
    method initClient (line 21) | async initClient(options?: WalletConnectOptions) {

FILE: packages/walletconnect/src/types.ts
  type IChainWC (line 7) | interface IChainWC {
  type IWCClient (line 11) | interface IWCClient {
  type WCDirectSignDoc (line 15) | interface WCDirectSignDoc {
  type WCSignDirectRequest (line 22) | interface WCSignDirectRequest {
  type WCSignDirectResponse (line 27) | interface WCSignDirectResponse {
  type WCAccount (line 32) | interface WCAccount {

FILE: packages/walletconnect/src/utils/core.ts
  constant WALLETCONNECT_DEEPLINK_CHOICE (line 3) | const WALLETCONNECT_DEEPLINK_CHOICE = 'WALLETCONNECT_DEEPLINK_CHOICE';
  method isHttpUrl (line 6) | isHttpUrl(url: string) {
  method formatNativeUrl (line 10) | formatNativeUrl(appUrl: string, wcUri: string, os: OS, name: string): st...
  method formatUniversalUrl (line 21) | formatUniversalUrl(appUrl: string, wcUri: string, name: string): string {
  method wait (line 35) | async wait(milliseconds: number) {
  method openHref (line 41) | openHref(href: string, target = '_self') {
  method setWalletConnectDeepLink (line 45) | setWalletConnectDeepLink(href: string, name: string) {
  method removeWalletConnectDeepLink (line 52) | removeWalletConnectDeepLink() {

FILE: wallets/arculus-mobile/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/arculus-mobile/src/wallet-connect/chain-wallet.ts
  class ChainArculusMobile (line 5) | class ChainArculusMobile extends ChainWC {
    method constructor (line 6) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/arculus-mobile/src/wallet-connect/client.ts
  class ArculusClient (line 4) | class ArculusClient extends WCClient {
    method constructor (line 5) | constructor(walletInfo: Wallet) {

FILE: wallets/arculus-mobile/src/wallet-connect/main-wallet.ts
  class ArculusMobileWallet (line 7) | class ArculusMobileWallet extends WCWallet {
    method constructor (line 8) | constructor(walletInfo: Wallet, preferredEndpoints?: EndpointOptions['...

FILE: wallets/arculus-mobile/src/wallet-connect/types.ts
  type LeapAccount (line 1) | interface LeapAccount {

FILE: wallets/aria-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/aria-extension/src/extension/chain-wallet.ts
  class ChainAriaExtension (line 3) | class ChainAriaExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/aria-extension/src/extension/client.ts
  class AriaClient (line 41) | class AriaClient implements WalletClient {
    method defaultSignOptions (line 50) | get defaultSignOptions() {
    method setDefaultSignOptions (line 54) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 58) | constructor(client: Aria) {
    method disconnect (line 62) | async disconnect() {
    method enable (line 68) | async enable(chainIds: string | string[]) {
    method addChain (line 72) | async addChain(chainInfo: ChainRecord) {
    method on (line 78) | on(type: string, listener: EventListenerOrEventListenerObject): void {
    method off (line 84) | off(type: string, listener: EventListenerOrEventListenerObject): void {
    method disable (line 90) | async disable(chainIds?: string | string[]) {
    method ping (line 96) | async ping() {
    method verifyArbitrary (line 102) | async verifyArbitrary(
    method getSimpleAccount (line 114) | async getSimpleAccount(chainId: string) {
    method getAccount (line 124) | async getAccount(chainId: string): Promise<WalletAccount> {
    method suggestToken (line 135) | async suggestToken({ chainId, tokens, type }: SuggestToken) {
    method signAmino (line 147) | async signAmino(
    method signArbitrary (line 161) | async signArbitrary(
    method signDirect (line 169) | async signDirect(
    method getOfflineSigner (line 183) | getOfflineSigner(
    method getOfflineSignerAmino (line 198) | getOfflineSignerAmino(chainId: string): OfflineAminoSigner {
    method getOfflineSignerDirect (line 202) | getOfflineSignerDirect(chainId: string): OfflineDirectSigner {
    method sendTx (line 206) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {
    method getKeysSettled (line 214) | async getKeysSettled(chainIds: string[]): Promise<SettledResponse<Aria...
    method getChainInfosWithoutEndpoints (line 229) | async getChainInfosWithoutEndpoints(): Promise<ChainInfoWithoutEndpoin...
    method getChainInfoWithoutEndpoints (line 236) | async getChainInfoWithoutEndpoints(
    method getConnectedApps (line 245) | async getConnectedApps(): Promise<ConnectedApp[]> {
    method disconnectApp (line 252) | async disconnectApp(origin: string): Promise<void> {
    method getEnigmaPubKey (line 262) | async getEnigmaPubKey(chainId: string): Promise<Uint8Array> {
    method getEnigmaTxEncryptionKey (line 269) | async getEnigmaTxEncryptionKey(
    method enigmaEncrypt (line 279) | async enigmaEncrypt(
    method enigmaDecrypt (line 290) | async enigmaDecrypt(
    method getSecret20ViewingKey (line 301) | async getSecret20ViewingKey(
    method getEnigmaUtils (line 311) | getEnigmaUtils(chainId: string): SecretUtils | undefined {
    method signEthereum (line 322) | async signEthereum(
    method sendEthereumTx (line 334) | async sendEthereumTx(chainId: string, tx: Uint8Array): Promise<string> {
    method suggestERC20 (line 341) | async suggestERC20(chainId: string, contractAddress: string): Promise<...
    method signDirectAux (line 351) | async signDirectAux(
    method experimentalSignEIP712CosmosTx_v0 (line 362) | async experimentalSignEIP712CosmosTx_v0(
    method signICNSAdr36 (line 381) | async signICNSAdr36(
    method getStarknetKey (line 405) | async getStarknetKey(chainId: string): Promise<StarknetKey> {
    method signStarknetTx (line 412) | async signStarknetTx(
    method getBitcoinKey (line 424) | async getBitcoinKey(chainId: string): Promise<BitcoinKey> {
    method getBitcoinKeysSettled (line 431) | async getBitcoinKeysSettled(
    method signPsbt (line 454) | async signPsbt(
    method signPsbts (line 465) | async signPsbts(
    method getSolanaKey (line 480) | async getSolanaKey(chainId: string): Promise<SolanaKey> {
    method signSolanaTransaction (line 487) | async signSolanaTransaction(
    method signSolanaMessage (line 497) | async signSolanaMessage(
    method sendSolanaTransaction (line 507) | async sendSolanaTransaction(
    method initLedger (line 521) | async initLedger(transport?: LedgerTransportType): Promise<void> {
    method getLedgerAddress (line 529) | async getLedgerAddress(
    method signWithLedger (line 539) | async signWithLedger(
    method isLedgerConnected (line 549) | isLedgerConnected(): boolean {

FILE: wallets/aria-extension/src/extension/main-wallet.ts
  class AriaExtensionWallet (line 8) | class AriaExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/aria-extension/src/extension/types.ts
  type SettledResponse (line 14) | interface SettledResponse<T> {
  type AriaKey (line 20) | interface AriaKey {
  type ChainInfoWithoutEndpoints (line 30) | interface ChainInfoWithoutEndpoints {
  type ConnectedApp (line 42) | interface ConnectedApp {
  type SecretUtils (line 52) | interface SecretUtils {
  type EthSignType (line 63) | type EthSignType = 'message' | 'transaction' | 'eip-712';
  type DirectAuxSignResponse (line 69) | interface DirectAuxSignResponse {
  type EIP712Doc (line 83) | interface EIP712Doc {
  type ICNSAdr36Signatures (line 90) | interface ICNSAdr36Signatures {
  type BitcoinKey (line 105) | interface BitcoinKey {
  type SignPsbtOptions (line 113) | interface SignPsbtOptions {
  type StarknetKey (line 125) | interface StarknetKey {
  type SolanaKey (line 136) | interface SolanaKey {
  type LedgerTransportType (line 147) | type LedgerTransportType = 'WebUSB' | 'WebHID';
  type Aria (line 149) | interface Aria {
  type Window (line 349) | interface Window {

FILE: wallets/aria-mobile/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/aria-mobile/src/wallet-connect/chain-wallet.ts
  class ChainAriaMobile (line 5) | class ChainAriaMobile extends ChainWC {
    method constructor (line 6) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/aria-mobile/src/wallet-connect/client.ts
  class AriaClient (line 37) | class AriaClient extends WCClient {
    method constructor (line 38) | constructor(walletInfo: Wallet) {
    method capabilities (line 50) | get capabilities(): AriaWCCapabilities {
    method getOfflineSigner (line 81) | async getOfflineSigner(
    method getOfflineSignerAmino (line 95) | getOfflineSignerAmino(chainId: string): OfflineAminoSigner {
    method getOfflineSignerDirect (line 103) | getOfflineSignerDirect(chainId: string): OfflineDirectSigner {
    method signArbitrary (line 115) | async signArbitrary(
    method sendTx (line 154) | async sendTx(
    method verifyArbitrary (line 188) | async verifyArbitrary(
    method enable (line 231) | async enable(_chainIds: string | string[]): Promise<void> {
    method disable (line 235) | async disable(_chainIds?: string | string[]): Promise<void> {
    method addChain (line 241) | async addChain(_chainInfo: ChainRecord): Promise<void> {
    method ping (line 248) | async ping(): Promise<void> {
    method on (line 254) | on(type: string, listener: EventListenerOrEventListenerObject): void {
    method off (line 259) | off(type: string, listener: EventListenerOrEventListenerObject): void {
    method suggestToken (line 263) | async suggestToken(_suggestToken: SuggestToken): Promise<void> {
    method getKeysSettled (line 274) | async getKeysSettled(chainIds: string[]): Promise<SettledResponse<Aria...
    method getChainInfosWithoutEndpoints (line 296) | async getChainInfosWithoutEndpoints(): Promise<ChainInfoWithoutEndpoin...
    method getChainInfoWithoutEndpoints (line 322) | async getChainInfoWithoutEndpoints(
    method getConnectedApps (line 329) | async getConnectedApps(): Promise<ConnectedApp[]> {
    method disconnectApp (line 336) | async disconnectApp(_origin: string): Promise<void> {
    method getEnigmaPubKey (line 347) | async getEnigmaPubKey(_chainId: string): Promise<Uint8Array> {
    method getEnigmaTxEncryptionKey (line 354) | async getEnigmaTxEncryptionKey(
    method enigmaEncrypt (line 364) | async enigmaEncrypt(
    method enigmaDecrypt (line 375) | async enigmaDecrypt(
    method getSecret20ViewingKey (line 386) | async getSecret20ViewingKey(
    method getEnigmaUtils (line 396) | getEnigmaUtils(_chainId: string): SecretUtils | undefined {
    method signEthereum (line 404) | async signEthereum(
    method sendEthereumTx (line 445) | async sendEthereumTx(_chainId: string, _tx: Uint8Array): Promise<strin...
    method suggestERC20 (line 452) | async suggestERC20(_chainId: string, _contractAddress: string): Promis...
    method signDirectAux (line 463) | async signDirectAux(
    method experimentalSignEIP712CosmosTx_v0 (line 506) | async experimentalSignEIP712CosmosTx_v0(
    method signICNSAdr36 (line 544) | async signICNSAdr36(
    method getBitcoinKey (line 561) | async getBitcoinKey(_chainId: string): Promise<BitcoinKey> {
    method getBitcoinKeysSettled (line 569) | async getBitcoinKeysSettled(
    method signPsbt (line 578) | async signPsbt(
    method signPsbts (line 589) | async signPsbts(
    method getStarknetKey (line 604) | async getStarknetKey(_chainId: string): Promise<StarknetKey> {
    method signStarknetTx (line 612) | async signStarknetTx(
    method getSolanaKey (line 627) | async getSolanaKey(_chainId: string): Promise<SolanaKey> {
    method signSolanaTransaction (line 635) | async signSolanaTransaction(
    method signSolanaMessage (line 645) | async signSolanaMessage(
    method sendSolanaTransaction (line 655) | async sendSolanaTransaction(
    method initLedger (line 669) | async initLedger(_transport?: LedgerTransportType): Promise<void> {
    method getLedgerAddress (line 676) | async getLedgerAddress(
    method signWithLedger (line 686) | async signWithLedger(
    method isLedgerConnected (line 696) | isLedgerConnected(): boolean {

FILE: wallets/aria-mobile/src/wallet-connect/main-wallet.ts
  class AriaMobileWallet (line 15) | class AriaMobileWallet extends WCWallet {
    method constructor (line 16) | constructor(
    method initClient (line 25) | async initClient(options?: WalletConnectOptions): Promise<void> {

FILE: wallets/aria-mobile/src/wallet-connect/types.ts
  type AriaWCCapabilities (line 29) | interface AriaWCCapabilities {

FILE: wallets/bitgetwallet-extension/src/constant.ts
  constant ICON (line 1) | const ICON = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9...

FILE: wallets/bitgetwallet-extension/src/extension/chain-wallet.ts
  class ChainBitgetwalletExtension (line 3) | class ChainBitgetwalletExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/bitgetwallet-extension/src/extension/client.ts
  class BitgetWalletClient (line 12) | class BitgetWalletClient implements WalletClient {
    method defaultSignOptions (line 20) | get defaultSignOptions() {
    method setDefaultSignOptions (line 24) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 28) | constructor(client: Bitgetwallet) {
    method enable (line 32) | async enable(chainIds: string | string[]) {
    method getSimpleAccount (line 36) | async getSimpleAccount(chainId: string) {
    method getAccount (line 46) | async getAccount(chainId: string) {
    method getOfflineSigner (line 57) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 69) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 73) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 77) | async signAmino(
    method signArbitrary (line 91) | async signArbitrary(
    method signDirect (line 99) | async signDirect(
    method sendTx (line 116) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/bitgetwallet-extension/src/extension/main-wallet.ts
  class BitgetwalletExtensionWallet (line 8) | class BitgetwalletExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/bitgetwallet-extension/src/extension/types.ts
  type Key (line 12) | interface Key {
  type Bitgetwallet (line 21) | interface Bitgetwallet {

FILE: wallets/bitgetwallet-extension/src/extension/utils.ts
  type BitgetwalletWindow (line 5) | interface BitgetwalletWindow {
  type BitgetwalletExtension (line 9) | interface BitgetwalletExtension {

FILE: wallets/cdcwallet-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/cdcwallet-extension/src/extension/chain-wallet.ts
  class ChainCdcwalletExtension (line 3) | class ChainCdcwalletExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/cdcwallet-extension/src/extension/client.ts
  class CdcwalletClient (line 16) | class CdcwalletClient implements WalletClient {
    method defaultSignOptions (line 24) | get defaultSignOptions() {
    method setDefaultSignOptions (line 28) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 32) | constructor(client: Cdcwallet) {
    method enable (line 36) | async enable(chainIds: string | string[]) {
    method suggestToken (line 40) | async suggestToken({ chainId, tokens, type }: SuggestToken) {
    method addChain (line 48) | async addChain(chainInfo: ChainRecord) {
    method disconnect (line 67) | async disconnect() {
    method getSimpleAccount (line 71) | async getSimpleAccount(chainId: string) {
    method getAccount (line 81) | async getAccount(chainId: string) {
    method getOfflineSigner (line 92) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 104) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 108) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 112) | async signAmino(
    method signArbitrary (line 126) | async signArbitrary(
    method signDirect (line 134) | async signDirect(
    method sendTx (line 151) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/cdcwallet-extension/src/extension/main-wallet.ts
  class CdcwalletExtensionWallet (line 8) | class CdcwalletExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/cdcwallet-extension/src/extension/types.ts
  type Key (line 12) | interface Key {
  type CdcwalletSignOptions (line 20) | interface CdcwalletSignOptions {
  type Cdcwallet (line 26) | interface Cdcwallet {

FILE: wallets/cdcwallet-extension/src/extension/utils.ts
  type CdcwalletWindow (line 5) | interface CdcwalletWindow {

FILE: wallets/coin98-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/coin98-extension/src/extension/chain-wallet.ts
  class ChainCoin98Extension (line 3) | class ChainCoin98Extension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/coin98-extension/src/extension/client.ts
  class Coin98Client (line 18) | class Coin98Client implements WalletClient {
    method defaultSignOptions (line 26) | get defaultSignOptions() {
    method setDefaultSignOptions (line 30) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 34) | constructor(client: Coin98) {
    method enable (line 38) | async enable(chainIds: string | string[]) {
    method connect (line 42) | async connect(chainIds: string | string[]) {
    method getSimpleAccount (line 46) | async getSimpleAccount(chainId: string) {
    method getAccount (line 57) | async getAccount(chainId: string) {
    method getOfflineSigner (line 68) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 80) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 84) | getOfflineSignerDirect(chainId: string) {
    method addChain (line 94) | async addChain(chainInfo: ChainRecord) {
    method signAmino (line 113) | async signAmino(
    method signDirect (line 127) | async signDirect(
    method signArbitrary (line 151) | async signArbitrary(
    method sendTx (line 159) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/coin98-extension/src/extension/main-wallet.ts
  class Coin98ExtensionWallet (line 8) | class Coin98ExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(
    method initClient (line 17) | async initClient() {

FILE: wallets/coin98-extension/src/extension/types.ts
  type Coin98 (line 3) | type Coin98 = Omit<Keplr, 'experimentalSignEIP712CosmosTx_v0'>

FILE: wallets/coin98-extension/src/extension/utils.ts
  type Coin98Window (line 6) | interface Coin98Window {

FILE: wallets/compass-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/compass-extension/src/extension/chain-wallet.ts
  class ChainCompassExtension (line 3) | class ChainCompassExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/compass-extension/src/extension/client.ts
  class CompassClient (line 16) | class CompassClient implements WalletClient {
    method defaultSignOptions (line 24) | get defaultSignOptions() {
    method setDefaultSignOptions (line 28) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 32) | constructor(client: Compass) {
    method enable (line 36) | async enable(chainIds: string | string[]) {
    method suggestToken (line 40) | async suggestToken({ chainId, tokens, type }: SuggestToken) {
    method addChain (line 48) | async addChain(chainInfo: ChainRecord) {
    method disconnect (line 67) | async disconnect() {
    method getSimpleAccount (line 71) | async getSimpleAccount(chainId: string) {
    method getAccount (line 81) | async getAccount(chainId: string) {
    method getOfflineSigner (line 92) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 104) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 108) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 112) | async signAmino(
    method signArbitrary (line 126) | async signArbitrary(
    method signDirect (line 134) | async signDirect(
    method sendTx (line 151) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/compass-extension/src/extension/main-wallet.ts
  class CompassExtensionWallet (line 8) | class CompassExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/compass-extension/src/extension/types.ts
  type Key (line 12) | interface Key {
  type CompassSignOptions (line 20) | interface CompassSignOptions {
  type Compass (line 26) | interface Compass {

FILE: wallets/compass-extension/src/extension/utils.ts
  type CompassWindow (line 5) | interface CompassWindow {

FILE: wallets/cosmos-extension-metamask/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/cosmos-extension-metamask/src/extension/chain-wallet.ts
  class ChainCosmosExtensionMetamaskSnap (line 3) | class ChainCosmosExtensionMetamaskSnap extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/cosmos-extension-metamask/src/extension/client.ts
  class CosmosExtensionClient (line 16) | class CosmosExtensionClient implements WalletClient {
    method defaultSignOptions (line 24) | get defaultSignOptions() {
    method setDefaultSignOptions (line 28) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 32) | constructor() {
    method addChain (line 36) | async addChain(chainInfo: ChainRecord) {
    method getSimpleAccount (line 40) | async getSimpleAccount(chainId: string) {
    method getAccount (line 49) | async getAccount(chainId: string) {
    method getOfflineSigner (line 59) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 70) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 74) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 105) | async signAmino(
    method signArbitrary (line 114) | async signArbitrary(
    method signDirect (line 123) | async signDirect(

FILE: wallets/cosmos-extension-metamask/src/extension/main-wallet.ts
  class CosmosMetamaskExtensionWallet (line 7) | class CosmosMetamaskExtensionWallet extends MainWalletBase {
    method constructor (line 8) | constructor(walletInfo: Wallet) {
    method initClient (line 12) | async initClient() {

FILE: wallets/cosmos-extension-metamask/src/extension/types.ts
  type Key (line 1) | interface Key {

FILE: wallets/cosmos-extension-metamask/src/extension/utils.ts
  type SnapWindow (line 4) | interface SnapWindow {

FILE: wallets/cosmostation-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/cosmostation-extension/src/extension/chain-wallet.ts
  class ChainCosmostationExtension (line 4) | class ChainCosmostationExtension extends ChainWalletBase {
    method constructor (line 5) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/cosmostation-extension/src/extension/client.ts
  class CosmostationClient (line 19) | class CosmostationClient implements WalletClient {
    method defaultSignOptions (line 31) | get defaultSignOptions() {
    method setDefaultSignOptions (line 35) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 39) | constructor(client: Cosmostation) {
    method cosmos (line 43) | get cosmos() {
    method ikeplr (line 47) | get ikeplr() {
    method suggestToken (line 51) | async suggestToken({ chainName, tokens, type }: SuggestToken) {
    method getSimpleAccount (line 63) | async getSimpleAccount(chainId: string) {
    method getAccount (line 73) | async getAccount(chainId: string) {
    method disconnect (line 86) | async disconnect() {
    method on (line 92) | on(type: string, listener: EventListenerOrEventListenerObject): void {
    method off (line 100) | off(type: string, listener: EventListenerOrEventListenerObject): void {
    method getOfflineSigner (line 107) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 119) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 123) | getOfflineSignerDirect(chainId: string) {
    method addChain (line 133) | async addChain(chainInfo: ChainRecord) {
    method signAmino (line 152) | async signAmino(
    method signDirect (line 178) | async signDirect(
    method signArbitrary (line 217) | async signArbitrary(
    method sendTx (line 239) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/cosmostation-extension/src/extension/main-wallet.ts
  class CosmostationExtensionWallet (line 8) | class CosmostationExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/cosmostation-extension/src/extension/types.ts
  type CosmostationSignOptions (line 5) | interface CosmostationSignOptions {
  type Request (line 11) | interface Request {
  type Cosmos (line 16) | interface Cosmos {
  type Cosmostation (line 22) | interface Cosmostation {
  type RequestAccountResponse (line 29) | type RequestAccountResponse = {

FILE: wallets/cosmostation-extension/src/extension/utils.ts
  type CosmostationWindow (line 5) | interface CosmostationWindow {

FILE: wallets/cosmostation-mobile/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/cosmostation-mobile/src/wallet-connect/chain-wallet.ts
  class ChainCosmostationMobile (line 5) | class ChainCosmostationMobile extends ChainWC {
    method constructor (line 6) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/cosmostation-mobile/src/wallet-connect/client.ts
  class CosmostationClient (line 4) | class CosmostationClient extends WCClient {
    method constructor (line 5) | constructor(walletInfo: Wallet) {

FILE: wallets/cosmostation-mobile/src/wallet-connect/main-wallet.ts
  class CosmostationMobileWallet (line 7) | class CosmostationMobileWallet extends WCWallet {
    method constructor (line 8) | constructor(

FILE: wallets/ctrl-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/ctrl-extension/src/extension/chain-wallet.ts
  class ChainCTRLExtension (line 3) | class ChainCTRLExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/ctrl-extension/src/extension/client.ts
  class CTRLClient (line 9) | class CTRLClient implements WalletClient {
    method defaultSignOptions (line 17) | get defaultSignOptions() {
    method setDefaultSignOptions (line 21) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 25) | constructor(client: CTRL) {
    method enable (line 29) | async enable(chainIds: string | string[]) {
    method disconnect (line 33) | async disconnect() {
    method getSimpleAccount (line 37) | async getSimpleAccount(chainId: string) {
    method getAccount (line 47) | async getAccount(chainId: string) {
    method getOfflineSigner (line 57) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 69) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 73) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 77) | async signAmino(
    method signDirect (line 91) | async signDirect(
    method signArbitrary (line 108) | async signArbitrary(
    method sendTx (line 116) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/ctrl-extension/src/extension/main-wallet.ts
  class CTRLExtensionWallet (line 8) | class CTRLExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/ctrl-extension/src/extension/types.ts
  type CTRLSignOptions (line 11) | interface CTRLSignOptions {
  type CTRL (line 17) | interface CTRL {

FILE: wallets/ctrl-extension/src/extension/utils.ts
  type CTRLWindow (line 5) | interface CTRLWindow {

FILE: wallets/exodus-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/exodus-extension/src/constants.ts
  constant EXODUS_ICON (line 1) | const EXODUS_ICON =

FILE: wallets/exodus-extension/src/extension/chain-wallet.ts
  class ChainExodusExtension (line 3) | class ChainExodusExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/exodus-extension/src/extension/client.ts
  class ExodusClient (line 10) | class ExodusClient implements WalletClient {
    method constructor (line 13) | constructor(client: ExodusCosmosProvider) {
    method connect (line 17) | async connect(chainId: string | string[]) {
    method getSimpleAccount (line 23) | async getSimpleAccount(chainId: string) {
    method getAccount (line 32) | async getAccount(chainId: string) {
    method getOfflineSigner (line 41) | async getOfflineSigner(chainId: string) {
    method signAmino (line 55) | async signAmino(chainId: string, signer: string, signDoc: StdSignDoc) {
    method sendTx (line 59) | async sendTx(chainId: string, transaction: Uint8Array, mode: Broadcast...

FILE: wallets/exodus-extension/src/extension/main-wallet.ts
  class ExodusExtensionWallet (line 8) | class ExodusExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(
    method initClient (line 17) | async initClient() {

FILE: wallets/exodus-extension/src/types.ts
  type Chain (line 5) | type Chain = string;
  type ConnectionOptions (line 7) | interface ConnectionOptions {
  type Account (line 11) | type Account = AccountData & { publicKey: Uint8Array };
  type ExodusCosmosProvider (line 13) | interface ExodusCosmosProvider {
  type Exodus (line 26) | interface Exodus {
  type ExodusWindow (line 30) | interface ExodusWindow {

FILE: wallets/figure-markets-mobile/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/figure-markets-mobile/src/wallet-connect/chain-wallet.ts
  class ChainFigureMarketsMobile (line 6) | class ChainFigureMarketsMobile extends ChainWC {
    method constructor (line 7) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/figure-markets-mobile/src/wallet-connect/client.ts
  class FigureMarketsClient (line 4) | class FigureMarketsClient extends WCClient {
    method constructor (line 5) | constructor(walletInfo: Wallet) {

FILE: wallets/figure-markets-mobile/src/wallet-connect/main-wallet.ts
  class FigureMarketsMobileWallet (line 7) | class FigureMarketsMobileWallet extends WCWallet {
    method constructor (line 8) | constructor(

FILE: wallets/fin-extension/src/extension/chain-wallet.ts
  class ChainFinExtension (line 3) | class ChainFinExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/fin-extension/src/extension/client.ts
  class FinClient (line 17) | class FinClient implements WalletClient {
    method defaultSignOptions (line 25) | get defaultSignOptions() {
    method setDefaultSignOptions (line 29) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 33) | constructor(client: Fin) {
    method enable (line 37) | async enable(chainIds: string | string[]) {
    method connect (line 41) | async connect(chainIds: string | string[]) {
    method getSimpleAccount (line 45) | async getSimpleAccount(chainId: string) {
    method getAccount (line 56) | async getAccount(chainId: string) {
    method getOfflineSigner (line 67) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 79) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 83) | getOfflineSignerDirect(chainId: string) {
    method addChain (line 87) | async addChain(chainInfo: ChainRecord) {
    method signAmino (line 106) | async signAmino(
    method signDirect (line 120) | async signDirect(
    method sendTx (line 137) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {
    method signArbitrary (line 141) | async signArbitrary(

FILE: wallets/fin-extension/src/extension/main-wallet.ts
  class FinExtensionWallet (line 8) | class FinExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(
    method initClient (line 17) | async initClient() {

FILE: wallets/fin-extension/src/extension/types.ts
  type Key (line 12) | interface Key {
  type FinSignOptions (line 20) | interface FinSignOptions {
  type Fin (line 26) | interface Fin {

FILE: wallets/fin-extension/src/extension/utils.ts
  type FinWindow (line 5) | interface FinWindow {

FILE: wallets/foxwallet-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/foxwallet-extension/src/extension/chain-wallet.ts
  class ChainFoxWalletExtension (line 3) | class ChainFoxWalletExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/foxwallet-extension/src/extension/client.ts
  class FoxWalletClient (line 9) | class FoxWalletClient implements WalletClient {
    method defaultSignOptions (line 17) | get defaultSignOptions() {
    method setDefaultSignOptions (line 21) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 25) | constructor(client: FoxWallet) {
    method enable (line 29) | async enable(chainIds: string | string[]) {
    method getSimpleAccount (line 33) | async getSimpleAccount(chainId: string) {
    method getAccount (line 43) | async getAccount(chainId: string) {
    method signAmino (line 53) | async signAmino(
    method signDirect (line 67) | async signDirect(
    method signArbitrary (line 84) | async signArbitrary(
    method getOfflineSigner (line 92) | getOfflineSigner(chainId: string) {
    method sendTx (line 96) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/foxwallet-extension/src/extension/main-wallet.ts
  class FoxWalletExtensionWallet (line 8) | class FoxWalletExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/foxwallet-extension/src/extension/types.ts
  type FoxWallet (line 7) | interface FoxWallet {

FILE: wallets/foxwallet-extension/src/extension/utils.ts
  type FoxWalletWindow (line 5) | interface FoxWalletWindow {
  type FoxWalletExtension (line 9) | interface FoxWalletExtension {

FILE: wallets/frontier-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/frontier-extension/src/extension/chain-wallet.ts
  class ChainFrontierExtension (line 3) | class ChainFrontierExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/frontier-extension/src/extension/client.ts
  class FrontierClient (line 9) | class FrontierClient implements WalletClient {
    method defaultSignOptions (line 17) | get defaultSignOptions() {
    method setDefaultSignOptions (line 21) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 25) | constructor(client: Frontier) {
    method enable (line 29) | async enable(chainIds: string | string[]) {
    method disconnect (line 33) | async disconnect() {
    method getSimpleAccount (line 37) | async getSimpleAccount(chainId: string) {
    method getAccount (line 47) | async getAccount(chainId: string) {
    method getOfflineSigner (line 57) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 69) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 73) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 77) | async signAmino(
    method signDirect (line 91) | async signDirect(
    method signArbitrary (line 108) | async signArbitrary(
    method sendTx (line 116) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/frontier-extension/src/extension/main-wallet.ts
  class FrontierExtensionWallet (line 8) | class FrontierExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/frontier-extension/src/extension/types.ts
  type FrontierSignOptions (line 11) | interface FrontierSignOptions {
  type Frontier (line 17) | interface Frontier {

FILE: wallets/frontier-extension/src/extension/utils.ts
  type FrontierWindow (line 5) | interface FrontierWindow {

FILE: wallets/galaxy-station-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/galaxy-station-extension/src/extension/chain-wallet.ts
  class ChainStationExtension (line 3) | class ChainStationExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/galaxy-station-extension/src/extension/client.ts
  class GalaxyStationClient (line 14) | class GalaxyStationClient implements WalletClient {
    method defaultSignOptions (line 22) | get defaultSignOptions() {
    method constructor (line 26) | constructor(client: Station) {
    method disconnect (line 30) | async disconnect() {
    method getSimpleAccount (line 34) | async getSimpleAccount(chainId: string) {
    method getAccount (line 52) | async getAccount(chainId: string): Promise<WalletAccount> {
    method signAmino (line 80) | async signAmino(
    method getOfflineSigner (line 89) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 100) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 104) | getOfflineSignerDirect(chainId: string) {
    method signArbitrary (line 114) | async signArbitrary(
    method signDirect (line 122) | async signDirect(

FILE: wallets/galaxy-station-extension/src/extension/main-wallet.ts
  class GalaxyStationExtensionWallet (line 8) | class GalaxyStationExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/galaxy-station-extension/src/extension/types.ts
  type ChainId (line 1) | type ChainId = string;
  type Addresses (line 3) | type Addresses = Record<ChainId, string>;
  type CoinType (line 5) | type CoinType = number;
  type Pubkeys (line 7) | type Pubkeys = Record<CoinType, string>;
  type NetworkInfo (line 9) | interface NetworkInfo {

FILE: wallets/galaxy-station-extension/src/extension/utils.ts
  type StationWindow (line 4) | interface StationWindow {

FILE: wallets/galaxy-station-mobile/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/galaxy-station-mobile/src/wallet-connect/chain-wallet.ts
  class ChainGalaxyStationMobile (line 5) | class ChainGalaxyStationMobile extends ChainWC {
    method constructor (line 6) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/galaxy-station-mobile/src/wallet-connect/client.ts
  class GalaxyStationClient (line 4) | class GalaxyStationClient extends WCClient {
    method constructor (line 5) | constructor(walletInfo: Wallet) {

FILE: wallets/galaxy-station-mobile/src/wallet-connect/main-wallet.ts
  class GalaxyStationMobileWallet (line 7) | class GalaxyStationMobileWallet extends WCWallet {
    method constructor (line 8) | constructor(walletInfo: Wallet, preferredEndpoints?: EndpointOptions['...

FILE: wallets/galaxy-station-mobile/src/wallet-connect/types.ts
  type GalaxyStationAccount (line 1) | interface GalaxyStationAccount {

FILE: wallets/gatewallet-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/gatewallet-extension/src/extension/chain-wallet.ts
  class ChainGatewalletExtension (line 3) | class ChainGatewalletExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/gatewallet-extension/src/extension/client.ts
  class GatewalletClient (line 8) | class GatewalletClient implements WalletClient {
    method defaultSignOptions (line 16) | get defaultSignOptions() {
    method setDefaultSignOptions (line 20) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 24) | constructor(client: Gatewallet) {
    method enable (line 28) | async enable(chainIds: string | string[]) {
    method getSimpleAccount (line 32) | async getSimpleAccount(chainId: string) {
    method getAccount (line 42) | async getAccount(chainId: string) {
    method signAmino (line 52) | async signAmino(
    method signDirect (line 66) | async signDirect(
    method signArbitrary (line 83) | async signArbitrary(
    method getOfflineSigner (line 91) | getOfflineSigner(chainId: string) {

FILE: wallets/gatewallet-extension/src/extension/main-wallet.ts
  class GatewalletExtensionWallet (line 8) | class GatewalletExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/gatewallet-extension/src/extension/types.ts
  type Gatewallet (line 7) | interface Gatewallet {

FILE: wallets/gatewallet-extension/src/extension/utils.ts
  type GatewalltWindow (line 5) | interface GatewalltWindow {
  type GatewalletExtension (line 9) | interface GatewalletExtension {

FILE: wallets/imtoken-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/imtoken-extension/src/extension/chain-wallet.ts
  class ChainIMTokenExtension (line 3) | class ChainIMTokenExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/imtoken-extension/src/extension/client.ts
  class IMTokenClient (line 16) | class IMTokenClient implements WalletClient {
    method defaultSignOptions (line 24) | get defaultSignOptions() {
    method setDefaultSignOptions (line 28) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 32) | constructor(client: IMToken) {
    method enable (line 36) | async enable(chainIds: string | string[]) {
    method suggestToken (line 40) | async suggestToken({ chainId, tokens, type }: SuggestToken) {
    method addChain (line 48) | async addChain(chainInfo: ChainRecord) {
    method disconnect (line 67) | async disconnect() {
    method getSimpleAccount (line 71) | async getSimpleAccount(chainId: string) {
    method getAccount (line 81) | async getAccount(chainId: string) {
    method getOfflineSigner (line 92) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 103) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 107) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 111) | async signAmino(
    method signArbitrary (line 125) | async signArbitrary(
    method signDirect (line 133) | async signDirect(
    method sendTx (line 150) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/imtoken-extension/src/extension/main-wallet.ts
  class IMTokenWallet (line 8) | class IMTokenWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/imtoken-extension/src/extension/types.ts
  type Key (line 12) | interface Key {
  type SignOptions (line 20) | interface SignOptions {
  type IMToken (line 26) | interface IMToken {

FILE: wallets/imtoken-extension/src/extension/utils.ts
  type IMTokenWindow (line 5) | interface IMTokenWindow {

FILE: wallets/initia-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/initia-extension/src/extension/chain-wallet.ts
  class ChainInitiaExtension (line 3) | class ChainInitiaExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/initia-extension/src/extension/client.ts
  class InitiaClient (line 11) | class InitiaClient implements WalletClient {
    method defaultSignOptions (line 19) | get defaultSignOptions() {
    method setDefaultSignOptions (line 23) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 27) | constructor(client: InitiaWallet) {
    method getSimpleAccount (line 31) | async getSimpleAccount(chainId: string) {
    method getOfflineSigner (line 40) | getOfflineSigner(chainId: string) {
    method getAccount (line 44) | async getAccount(chainId: string): Promise<WalletAccount> {
    method signDirect (line 55) | async signDirect(chainId: string, signer: string, signDoc: DirectSignD...

FILE: wallets/initia-extension/src/extension/main-wallet.ts
  class InitiaExtensionWallet (line 8) | class InitiaExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/initia-extension/src/extension/type.ts
  type InitiaWallet (line 5) | interface InitiaWallet {

FILE: wallets/initia-extension/src/extension/utils.ts
  type InitiaWindow (line 5) | interface InitiaWindow {

FILE: wallets/keplr-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/keplr-extension/src/extension/chain-wallet.ts
  class ChainKeplrExtension (line 3) | class ChainKeplrExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/keplr-extension/src/extension/client.ts
  class KeplrClient (line 19) | class KeplrClient implements WalletClient {
    method defaultSignOptions (line 27) | get defaultSignOptions() {
    method setDefaultSignOptions (line 31) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 35) | constructor(client: Keplr) {
    method enable (line 39) | async enable(chainIds: string | string[]) {
    method suggestToken (line 43) | async suggestToken({ chainId, tokens, type }: SuggestToken) {
    method getSimpleAccount (line 51) | async getSimpleAccount(chainId: string) {
    method getAccount (line 61) | async getAccount(chainId: string): Promise<WalletAccount> {
    method getOfflineSigner (line 72) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 84) | getOfflineSignerAmino(chainId: string): OfflineAminoSigner {
    method getOfflineSignerDirect (line 101) | getOfflineSignerDirect(chainId: string): OfflineDirectSigner {
    method addChain (line 125) | async addChain(chainInfo: ChainRecord) {
    method signAmino (line 165) | async signAmino(
    method signArbitrary (line 179) | async signArbitrary(
    method signDirect (line 187) | async signDirect(
    method sendTx (line 211) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/keplr-extension/src/extension/main-wallet.ts
  class KeplrExtensionWallet (line 8) | class KeplrExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(
    method initClient (line 17) | async initClient() {

FILE: wallets/keplr-extension/src/extension/session.ts
  class ExpiringLocalStorage (line 1) | class ExpiringLocalStorage {
    method addItem (line 8) | static addItem(key, value, ttl) {
    method getItems (line 33) | static getItems(key) {
    method removeItem (line 71) | static removeItem(key, value) {

FILE: wallets/keplr-mobile/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/keplr-mobile/src/wallet-connect/chain-wallet.ts
  class ChainKeplrMobile (line 6) | class ChainKeplrMobile extends ChainWC {
    method constructor (line 7) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/keplr-mobile/src/wallet-connect/client.ts
  class KeplrClient (line 22) | class KeplrClient extends WCClient {
    method constructor (line 25) | constructor(walletInfo: Wallet) {
    method initKeplrWCClient (line 29) | initKeplrWCClient(
    method connect (line 58) | async connect(
    method enable (line 169) | async enable(chainIds: string | string[]): Promise<void> {
    method getSimpleAccount (line 177) | async getSimpleAccount(chainId: string): Promise<SimpleAccount> {
    method getAccount (line 192) | async getAccount(chainId: string): Promise<WalletAccount> {
    method getOfflineSigner (line 207) | async getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 222) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 230) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 240) | async signAmino(
    method signDirect (line 255) | async signDirect(
    method signArbitrary (line 278) | async signArbitrary(

FILE: wallets/keplr-mobile/src/wallet-connect/main-wallet.ts
  class KeplrMobileWallet (line 13) | class KeplrMobileWallet extends WCWallet {
    method constructor (line 14) | constructor(
    method initClient (line 24) | async initClient(options?: WalletConnectOptions): Promise<void> {

FILE: wallets/leap-capsule-social-login/src/chain-wallet.ts
  class ChainCosmosSocial (line 3) | class ChainCosmosSocial extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/leap-capsule-social-login/src/client.ts
  class CosmosCapsuleClient (line 19) | class CosmosCapsuleClient implements WalletClient {
    method constructor (line 22) | constructor(options: { loginProvider: CapsuleProvider }) {
    method disconnect (line 26) | async disconnect() {
    method getSimpleAccount (line 30) | async getSimpleAccount(chainId: string) {
    method enable (line 40) | async enable() {
    method handleConnect (line 44) | async handleConnect() {
    method getAccount (line 48) | async getAccount(chainId: string) {
    method getOfflineSigner (line 52) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 56) | getOfflineSignerAmino(chainId: string): any {
    method getOfflineSignerDirect (line 60) | getOfflineSignerDirect(chainId: string): any {
    method signAmino (line 64) | async signAmino(
    method signArbitrary (line 73) | async signArbitrary(
    method signDirect (line 111) | async signDirect(

FILE: wallets/leap-capsule-social-login/src/constant.ts
  constant LEAP_SOCIAL_LOGIN_LOGO (line 1) | const LEAP_SOCIAL_LOGIN_LOGO =

FILE: wallets/leap-capsule-social-login/src/main-wallet.ts
  class LeapCapsuleWallet (line 11) | class LeapCapsuleWallet extends MainWalletBase {
    method constructor (line 12) | constructor(walletInfo: Wallet) {
    method initClient (line 16) | async initClient() {

FILE: wallets/leap-capsule-social-login/src/types.ts
  type LeapAccount (line 5) | interface LeapAccount {
  type capsuleOptions (line 14) | type capsuleOptions = {
  type CosmosCapsule (line 18) | type CosmosCapsule = {

FILE: wallets/leap-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/leap-extension/src/extension/chain-wallet.ts
  class ChainLeapExtension (line 3) | class ChainLeapExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/leap-extension/src/extension/client.ts
  class LeapClient (line 16) | class LeapClient implements WalletClient {
    method defaultSignOptions (line 24) | get defaultSignOptions() {
    method setDefaultSignOptions (line 28) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 32) | constructor(client: Leap) {
    method enable (line 36) | async enable(chainIds: string | string[]) {
    method suggestToken (line 40) | async suggestToken({ chainId, tokens, type }: SuggestToken) {
    method addChain (line 48) | async addChain(chainInfo: ChainRecord) {
    method disconnect (line 67) | async disconnect() {
    method getSimpleAccount (line 71) | async getSimpleAccount(chainId: string) {
    method getAccount (line 81) | async getAccount(chainId: string) {
    method getOfflineSigner (line 92) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 104) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 108) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 112) | async signAmino(
    method signArbitrary (line 126) | async signArbitrary(
    method signDirect (line 134) | async signDirect(
    method sendTx (line 151) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/leap-extension/src/extension/main-wallet.ts
  class LeapExtensionWallet (line 8) | class LeapExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/leap-extension/src/extension/types.ts
  type Key (line 12) | interface Key {
  type LeapSignOptions (line 20) | interface LeapSignOptions {
  type Leap (line 26) | interface Leap {

FILE: wallets/leap-extension/src/extension/utils.ts
  type LeapWindow (line 5) | interface LeapWindow {

FILE: wallets/leap-metamask-cosmos-snap/src/constant.ts
  constant LEAP_LOGO (line 1) | const LEAP_LOGO =
  constant METAMASK_LOGO (line 4) | const METAMASK_LOGO =

FILE: wallets/leap-metamask-cosmos-snap/src/extension/chain-wallet.ts
  class ChainMetamaskCosmosSnap (line 3) | class ChainMetamaskCosmosSnap extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/leap-metamask-cosmos-snap/src/extension/client.ts
  class CosmosSnapClient (line 26) | class CosmosSnapClient implements WalletClient {
    method defaultSignOptions (line 34) | get defaultSignOptions() {
    method setDefaultSignOptions (line 38) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 42) | constructor() {
    method getSimpleAccount (line 46) | async getSimpleAccount(chainId: string) {
    method handleConnect (line 56) | async handleConnect() {
    method getAccount (line 63) | async getAccount(chainId: string) {
    method getOfflineSigner (line 74) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 85) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 89) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 99) | async signAmino(
    method signDirect (line 108) | async signDirect(
    method signArbitrary (line 139) | async signArbitrary(
    method addChain (line 151) | async addChain(chainRecord: ChainRecord): Promise<void> {

FILE: wallets/leap-metamask-cosmos-snap/src/extension/main-wallet.ts
  class MetamaskCosmosSnapWallet (line 8) | class MetamaskCosmosSnapWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/leap-metamask-cosmos-snap/src/extension/utils.ts
  type MetamaskWindow (line 3) | interface MetamaskWindow {

FILE: wallets/leap-mobile/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/leap-mobile/src/wallet-connect/chain-wallet.ts
  class ChainLeapMobile (line 5) | class ChainLeapMobile extends ChainWC {
    method constructor (line 6) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/leap-mobile/src/wallet-connect/client.ts
  class LeapClient (line 4) | class LeapClient extends WCClient {
    method constructor (line 5) | constructor(walletInfo: Wallet) {

FILE: wallets/leap-mobile/src/wallet-connect/main-wallet.ts
  class LeapMobileWallet (line 7) | class LeapMobileWallet extends WCWallet {
    method constructor (line 8) | constructor(walletInfo: Wallet, preferredEndpoints?: EndpointOptions['...

FILE: wallets/leap-mobile/src/wallet-connect/types.ts
  type LeapAccount (line 1) | interface LeapAccount {

FILE: wallets/ledger/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/ledger/src/web-usb-hid/chain-wallet.ts
  class LedgerChainWallet (line 3) | class LedgerChainWallet extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/ledger/src/web-usb-hid/client.ts
  class LedgerClient (line 19) | class LedgerClient implements WalletClient {
    method constructor (line 22) | constructor(client?: Cosmos) {
    method initClient (line 26) | async initClient() {
    method getSimpleAccount (line 32) | async getSimpleAccount(chainId: string, accountIndex = 0) {
    method getAccount (line 42) | async getAccount(chainId: string, accountIndex = 0, username?: string) {
    method getOfflineSigner (line 59) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 67) | getOfflineSignerAmino(chainId: string): OfflineAminoSigner {
    method sign (line 87) | async sign(signDoc: StdSignDoc, accountIndex = 0) {

FILE: wallets/ledger/src/web-usb-hid/main-wallet.ts
  class LedgerMainWallet (line 7) | class LedgerMainWallet extends MainWalletBase {
    method constructor (line 9) | constructor(
    method initClient (line 19) | async initClient() {

FILE: wallets/ledger/src/web-usb-hid/utils.ts
  type TransportType (line 6) | type TransportType = 'WebUSB' | 'WebHID';
  function getCosmosApp (line 8) | async function getCosmosApp(type: TransportType = 'WebUSB') {
  function getCosmosPath (line 18) | function getCosmosPath(accountIndex = 0) {
  function sortedObject (line 27) | function sortedObject(obj: any): any {
  function sortedJsonStringify (line 44) | function sortedJsonStringify(obj: any): string {

FILE: wallets/ninji-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/ninji-extension/src/extension/chain-wallet.ts
  class ChainNinjiExtension (line 3) | class ChainNinjiExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/ninji-extension/src/extension/client.ts
  class NinjiClient (line 16) | class NinjiClient implements WalletClient {
    method defaultSignOptions (line 24) | get defaultSignOptions() {
    method setDefaultSignOptions (line 28) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 32) | constructor(client: Ninji) {
    method enable (line 36) | async enable(chainIds: string | string[]) {
    method suggestToken (line 40) | async suggestToken({ chainId, tokens, type }: SuggestToken) {
    method addChain (line 48) | async addChain(chainInfo: ChainRecord) {
    method getSimpleAccount (line 67) | async getSimpleAccount(chainId: string) {
    method getAccount (line 77) | async getAccount(chainId: string) {
    method getOfflineSigner (line 88) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 100) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 104) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 108) | async signAmino(
    method signDirect (line 122) | async signDirect(
    method sendTx (line 139) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/ninji-extension/src/extension/main-wallet.ts
  class NinjiExtensionWallet (line 8) | class NinjiExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/ninji-extension/src/extension/types.ts
  type Key (line 11) | interface Key {
  type NinjiSignOptions (line 19) | interface NinjiSignOptions {
  type Ninji (line 25) | interface Ninji {

FILE: wallets/ninji-extension/src/extension/utils.ts
  type NinjiWindow (line 5) | interface NinjiWindow {

FILE: wallets/oko/src/chain-wallet.ts
  class OkoChainWallet (line 5) | class OkoChainWallet extends ChainWalletBase {
    method constructor (line 6) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {
    method update (line 10) | async update() {

FILE: wallets/oko/src/client.ts
  class OkoWalletClient (line 25) | class OkoWalletClient implements WalletClient {
    method defaultSignOptions (line 34) | get defaultSignOptions() {
    method setDefaultSignOptions (line 38) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 42) | constructor(
    method enable (line 64) | async enable(_chainIds: string | string[]) {}
    method suggestToken (line 66) | async suggestToken(_suggestToken: SuggestToken) {}
    method getSimpleAccount (line 68) | async getSimpleAccount(chainId: string) {
    method getAccount (line 78) | async getAccount(chainId: string): Promise<WalletAccount> {
    method getOfflineSigner (line 89) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 100) | getOfflineSignerAmino(chainId: string): OfflineAminoSigner {
    method getOfflineSignerDirect (line 116) | getOfflineSignerDirect(chainId: string): OfflineDirectSigner {
    method addChain (line 142) | async addChain(_chainInfo: ChainRecord) {}
    method signAmino (line 144) | async signAmino(
    method signArbitrary (line 158) | async signArbitrary(
    method signDirect (line 166) | async signDirect(
    method sendTx (line 193) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/oko/src/constant.ts
  constant OKO_ICON (line 1) | const OKO_ICON =
  constant GOOGLE_LOGO (line 4) | const GOOGLE_LOGO =
  constant PROVIDER_CONFIG (line 7) | const PROVIDER_CONFIG: Record<string, { logo: string; name: string }> = {

FILE: wallets/oko/src/main-wallet.ts
  class OkoMainWallet (line 13) | class OkoMainWallet extends MainWalletBase {
    method constructor (line 14) | constructor(walletInfo: OkoWalletInfo) {
    method walletInfo (line 18) | get walletInfo(): OkoWalletInfo {
    method initClient (line 22) | async initClient() {
    method disconnectAll (line 67) | async disconnectAll(

FILE: wallets/oko/src/types.ts
  type OkoLoginProvider (line 3) | type OkoLoginProvider = 'google';
  type OkoLoginMethod (line 5) | interface OkoLoginMethod {
  type OkoWalletOptions (line 9) | interface OkoWalletOptions {
  type OkoWalletInternalOptions (line 15) | interface OkoWalletInternalOptions {
  type OkoWalletInfo (line 21) | type OkoWalletInfo = Wallet & { options: OkoWalletInternalOptions };

FILE: wallets/okto-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/okto-extension/src/extension/chain-wallet.ts
  class ChainOktoExtension (line 3) | class ChainOktoExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/okto-extension/src/extension/client.ts
  class OktoClient (line 16) | class OktoClient implements WalletClient {
    method defaultSignOptions (line 24) | get defaultSignOptions() {
    method setDefaultSignOptions (line 28) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 32) | constructor(client: Okto) {
    method enable (line 36) | async enable(chainIds: string | string[]) {
    method suggestToken (line 40) | async suggestToken({ chainId, tokens, type }: SuggestToken) {
    method addChain (line 48) | async addChain(chainInfo: ChainRecord) {
    method disconnect (line 65) | async disconnect() {
    method getSimpleAccount (line 69) | async getSimpleAccount(chainId: string) {
    method getAccount (line 79) | async getAccount(chainId: string) {
    method getOfflineSigner (line 91) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 102) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 106) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 110) | async signAmino(
    method signArbitrary (line 124) | async signArbitrary(
    method signDirect (line 132) | async signDirect(
    method sendTx (line 149) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/okto-extension/src/extension/main-wallet.ts
  class OktoExtensionWallet (line 8) | class OktoExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/okto-extension/src/extension/types.ts
  type Key (line 15) | interface Key {
  type OktoSignOptions (line 24) | interface OktoSignOptions {
  type Okto (line 30) | interface Okto {

FILE: wallets/okto-extension/src/extension/utils.ts
  type OktoWindow (line 5) | interface OktoWindow {

FILE: wallets/okxwallet-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/okxwallet-extension/src/extension/chain-wallet.ts
  class ChainOkxwalletExtension (line 3) | class ChainOkxwalletExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/okxwallet-extension/src/extension/client.ts
  class OkxwalletClient (line 8) | class OkxwalletClient implements WalletClient {
    method defaultSignOptions (line 16) | get defaultSignOptions() {
    method setDefaultSignOptions (line 20) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 24) | constructor(client: Okxwallet) {
    method enable (line 28) | async enable(chainIds: string | string[]) {
    method getSimpleAccount (line 32) | async getSimpleAccount(chainId: string) {
    method getAccount (line 42) | async getAccount(chainId: string) {
    method signAmino (line 52) | async signAmino(
    method signDirect (line 66) | async signDirect(
    method signArbitrary (line 83) | async signArbitrary(
    method getOfflineSigner (line 91) | getOfflineSigner(chainId: string) {

FILE: wallets/okxwallet-extension/src/extension/main-wallet.ts
  class OkxwalletExtensionWallet (line 8) | class OkxwalletExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/okxwallet-extension/src/extension/types.ts
  type Okxwallet (line 7) | interface Okxwallet {

FILE: wallets/okxwallet-extension/src/extension/utils.ts
  type OkxwalltWindow (line 5) | interface OkxwalltWindow {
  type OkxwalletExtension (line 9) | interface OkxwalletExtension {

FILE: wallets/omni-mobile/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/omni-mobile/src/wallet-connect/chain-wallet.ts
  class ChainOmniMobile (line 5) | class ChainOmniMobile extends ChainWC {
    method constructor (line 6) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/omni-mobile/src/wallet-connect/client.ts
  class OmniClient (line 6) | class OmniClient extends WCClient {
    method constructor (line 7) | constructor(walletInfo: Wallet) {
    method signAmino (line 11) | async signAmino(
    method signDirect (line 29) | async signDirect(

FILE: wallets/omni-mobile/src/wallet-connect/main-wallet.ts
  class OmniMobileWallet (line 7) | class OmniMobileWallet extends WCWallet {
    method constructor (line 8) | constructor(

FILE: wallets/owallet-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/owallet-extension/src/extension/chain-wallet.ts
  class ChainOwalletExtension (line 3) | class ChainOwalletExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/owallet-extension/src/extension/client.ts
  class OwalletClient (line 17) | class OwalletClient implements WalletClient {
    method defaultSignOptions (line 25) | get defaultSignOptions() {
    method setDefaultSignOptions (line 29) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 33) | constructor(client: Keplr) {
    method enable (line 37) | async enable(chainIds: string | string[]) {
    method suggestToken (line 41) | async suggestToken({ chainId, tokens, type }: SuggestToken) {
    method getSimpleAccount (line 49) | async getSimpleAccount(chainId: string) {
    method getAccount (line 59) | async getAccount(chainId: string): Promise<WalletAccount> {
    method getOfflineSigner (line 70) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 82) | getOfflineSignerAmino(chainId: string): OfflineAminoSigner {
    method getOfflineSignerDirect (line 99) | getOfflineSignerDirect(chainId: string): OfflineDirectSigner {
    method addChain (line 123) | async addChain(chainInfo: ChainRecord) {
    method signAmino (line 142) | async signAmino(
    method signArbitrary (line 156) | async signArbitrary(
    method signDirect (line 164) | async signDirect(
    method sendTx (line 188) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/owallet-extension/src/extension/main-wallet.ts
  class OwalletExtensionWallet (line 8) | class OwalletExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(
    method initClient (line 17) | async initClient() {

FILE: wallets/owallet-mobile/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/owallet-mobile/src/wallet-connect/chain-wallet.ts
  class ChainOWalletMobile (line 5) | class ChainOWalletMobile extends ChainWC {
    method constructor (line 6) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/owallet-mobile/src/wallet-connect/client.ts
  class OWalletClient (line 4) | class OWalletClient extends WCClient {
    method constructor (line 5) | constructor(walletInfo: Wallet) {

FILE: wallets/owallet-mobile/src/wallet-connect/main-wallet.ts
  class OWalletMobileWallet (line 7) | class OWalletMobileWallet extends WCWallet {
    method constructor (line 8) | constructor(

FILE: wallets/owallet-mobile/src/wallet-connect/types.ts
  type OWalletAccount (line 1) | interface OWalletAccount {

FILE: wallets/prax-extension/src/constant.ts
  constant PRAX_ORIGIN (line 1) | const PRAX_ORIGIN = new URL(
  constant ICON (line 5) | const ICON =

FILE: wallets/prax-extension/src/extension/chain-wallet.ts
  class ChainPraxExtension (line 3) | class ChainPraxExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/prax-extension/src/extension/client.ts
  class PraxClient (line 6) | class PraxClient implements WalletClient {
    method constructor (line 9) | constructor(client: PenumbraClient) {
    method enable (line 14) | async enable() {
    method connect (line 19) | async connect() {
    method disconnect (line 24) | async disconnect() {
    method getAccountInfo (line 28) | private async getAccountInfo(): Promise<{
    method getSimpleAccount (line 50) | async getSimpleAccount() {
    method on (line 63) | on(
    method off (line 71) | off(

FILE: wallets/prax-extension/src/extension/main-wallet.ts
  class PraxExtensionWallet (line 9) | class PraxExtensionWallet extends MainWalletBase {
    method constructor (line 10) | constructor(walletInfo: Wallet) {
    method initClient (line 14) | async initClient() {

FILE: wallets/shell-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/shell-extension/src/extension/chain-wallet.ts
  class ChainShellExtension (line 3) | class ChainShellExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/shell-extension/src/extension/client.ts
  class ShellClient (line 18) | class ShellClient implements WalletClient {
    method defaultSignOptions (line 26) | get defaultSignOptions() {
    method setDefaultSignOptions (line 30) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 34) | constructor(client: Shell) {
    method enable (line 38) | async enable(chainIds: string | string[]) {
    method suggestToken (line 42) | async suggestToken({ chainId, tokens, type }: SuggestToken) {
    method getSimpleAccount (line 50) | async getSimpleAccount(chainId: string) {
    method getAccount (line 60) | async getAccount(chainId: string) {
    method getOfflineSigner (line 70) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 82) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 86) | getOfflineSignerDirect(chainId: string) {
    method addChain (line 90) | async addChain(chainInfo: ChainRecord) {
    method signAmino (line 109) | async signAmino(
    method signArbitrary (line 123) | async signArbitrary(
    method signDirect (line 131) | async signDirect(
    method sendTx (line 148) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/shell-extension/src/extension/main-wallet.ts
  class ShellExtensionWallet (line 8) | class ShellExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(
    method initClient (line 17) | async initClient() {

FILE: wallets/shell-extension/src/extension/types.ts
  type Key (line 15) | interface Key {
  type ShellMode (line 23) | type ShellMode =
  type ShellIntereactionOptions (line 28) | interface ShellIntereactionOptions {
  type ShellSignOptions (line 31) | interface ShellSignOptions {
  type Shell (line 36) | interface Shell {

FILE: wallets/shell-extension/src/extension/utils.ts
  type ShellWindow (line 10) | interface ShellWindow {

FILE: wallets/station-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/station-extension/src/extension/chain-wallet.ts
  class ChainStationExtension (line 3) | class ChainStationExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/station-extension/src/extension/client.ts
  class StationClient (line 6) | class StationClient implements WalletClient {
    method constructor (line 9) | constructor(client: Station) {
    method disconnect (line 13) | async disconnect() {
    method getSimpleAccount (line 17) | async getSimpleAccount(chainId: string) {
    method getAccount (line 35) | async getAccount(chainId: string): Promise<WalletAccount> {
    method signAmino (line 63) | async signAmino(
    method getOfflineSigner (line 72) | async getOfflineSigner(chainId: string) {
    method signArbitrary (line 76) | async signArbitrary(

FILE: wallets/station-extension/src/extension/main-wallet.ts
  class StationExtensionWallet (line 8) | class StationExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/station-extension/src/extension/types.ts
  type ChainId (line 1) | type ChainId = string;
  type Addresses (line 3) | type Addresses = Record<ChainId, string>;
  type CoinType (line 5) | type CoinType = number;
  type Pubkeys (line 7) | type Pubkeys = Record<CoinType, string>;
  type NetworkInfo (line 9) | interface NetworkInfo {

FILE: wallets/station-extension/src/extension/utils.ts
  type StationWindow (line 4) | interface StationWindow {

FILE: wallets/tailwind-extension/src/constants.ts
  constant ICON (line 3) | const ICON =

FILE: wallets/tailwind-extension/src/extension/wallet.ts
  class ChainTailwindExtension (line 19) | class ChainTailwindExtension extends ChainWalletBase {
    method constructor (line 20) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {
  class TailwindClient (line 25) | class TailwindClient implements WalletClient {
    method constructor (line 26) | constructor(private tailwind: TailwindWallet) {
    method getAccount (line 30) | async getAccount(chainId: string): Promise<WalletAccount> {
    method getSimpleAccount (line 40) | async getSimpleAccount(chainId: string): Promise<SimpleAccount> {
    method getOfflineSigner (line 50) | async getOfflineSigner(chainId: string): Promise<OfflineSigner> {
  class TailwindExtensionWallet (line 55) | class TailwindExtensionWallet extends MainWalletBase {
    method constructor (line 56) | constructor(wallet_info: Wallet) {
    method initClient (line 60) | async initClient(): Promise<void> {

FILE: wallets/trust-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/trust-extension/src/extension/chain-wallet.ts
  class ChainTrustExtension (line 3) | class ChainTrustExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/trust-extension/src/extension/client.ts
  class TrustClient (line 6) | class TrustClient implements WalletClient {
    method constructor (line 9) | constructor(client: Trust) {
    method enable (line 13) | async enable(chainIds: string | string[]) {
    method getSimpleAccount (line 17) | async getSimpleAccount(chainId: string) {
    method getAccount (line 27) | async getAccount(chainId: string) {
    method getOfflineSigner (line 37) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {

FILE: wallets/trust-extension/src/extension/main-wallet.ts
  class TrustExtensionWallet (line 8) | class TrustExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/trust-extension/src/extension/types.ts
  type Trust (line 6) | interface Trust {

FILE: wallets/trust-extension/src/extension/utils.ts
  type TrustWindow (line 5) | interface TrustWindow {
  type TrustExtension (line 9) | interface TrustExtension {

FILE: wallets/trust-mobile/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/trust-mobile/src/wallet-connect/chain-wallet.ts
  class ChainTrustMobile (line 5) | class ChainTrustMobile extends ChainWC {
    method constructor (line 6) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/trust-mobile/src/wallet-connect/client.ts
  class TrustClient (line 6) | class TrustClient extends WCClient {
    method constructor (line 7) | constructor(walletInfo: Wallet) {
    method signAmino (line 13) | async signAmino(
    method signDirect (line 22) | async signDirect(

FILE: wallets/trust-mobile/src/wallet-connect/main-wallet.ts
  class TrustMobileWallet (line 7) | class TrustMobileWallet extends WCWallet {
    method constructor (line 8) | constructor(

FILE: wallets/vectis-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/vectis-extension/src/extension/chain-wallet.ts
  class ChainVectisExtension (line 3) | class ChainVectisExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/vectis-extension/src/extension/client.ts
  class VectisClient (line 16) | class VectisClient implements WalletClient {
    method constructor (line 19) | constructor(client: Vectis) {
    method enable (line 23) | async enable(chainIds: string | string[]) {
    method getSimpleAccount (line 27) | async getSimpleAccount(chainId: string) {
    method getAccount (line 37) | async getAccount(chainId: string) {
    method getOfflineSigner (line 50) | async getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 61) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 65) | getOfflineSignerDirect(chainId: string) {
    method addChain (line 69) | async addChain({ chain, name, assetList, preferredEndpoints }: ChainRe...
    method signAmino (line 88) | async signAmino(
    method signDirect (line 97) | async signDirect(
    method signArbitrary (line 106) | async signArbitrary(
    method sendTx (line 114) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/vectis-extension/src/extension/main-wallet.ts
  class VectisExtensionWallet (line 8) | class VectisExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/vectis-extension/src/extension/types.ts
  type VectisWindow (line 18) | interface VectisWindow extends Window {
  type Vectis (line 25) | interface Vectis {
  type KeyInfo (line 51) | type KeyInfo = {

FILE: wallets/vultisig-extension/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/vultisig-extension/src/extension/chain-wallet.ts
  class ChainVultisigExtension (line 3) | class ChainVultisigExtension extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/vultisig-extension/src/extension/client.ts
  class VultisigClient (line 9) | class VultisigClient implements WalletClient {
    method defaultSignOptions (line 17) | get defaultSignOptions() {
    method setDefaultSignOptions (line 21) | setDefaultSignOptions(options: SignOptions) {
    method constructor (line 25) | constructor(client: Vultisig) {
    method enable (line 29) | async enable(chainIds: string | string[]) {
    method disconnect (line 33) | async disconnect() {
    method getSimpleAccount (line 37) | async getSimpleAccount(chainId: string) {
    method getAccount (line 47) | async getAccount(chainId: string) {
    method getOfflineSigner (line 57) | getOfflineSigner(chainId: string, preferredSignType?: SignType) {
    method getOfflineSignerAmino (line 69) | getOfflineSignerAmino(chainId: string) {
    method getOfflineSignerDirect (line 73) | getOfflineSignerDirect(chainId: string) {
    method signAmino (line 77) | async signAmino(
    method signDirect (line 91) | async signDirect(
    method signArbitrary (line 108) | async signArbitrary(
    method sendTx (line 116) | async sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode) {

FILE: wallets/vultisig-extension/src/extension/main-wallet.ts
  class VultisigExtensionWallet (line 8) | class VultisigExtensionWallet extends MainWalletBase {
    method constructor (line 9) | constructor(walletInfo: Wallet) {
    method initClient (line 13) | async initClient() {

FILE: wallets/vultisig-extension/src/extension/types.ts
  type VultisigSignOptions (line 11) | interface VultisigSignOptions {
  type Vultisig (line 17) | interface Vultisig {

FILE: wallets/vultisig-extension/src/extension/utils.ts
  type VultisigWindow (line 5) | interface VultisigWindow {

FILE: wallets/web3auth/src/constant.ts
  constant ICON (line 1) | const ICON =

FILE: wallets/web3auth/src/extension/chain-wallet.ts
  class Web3AuthChainWallet (line 3) | class Web3AuthChainWallet extends ChainWalletBase {
    method constructor (line 4) | constructor(walletInfo: Wallet, chainInfo: ChainRecord) {

FILE: wallets/web3auth/src/extension/client.ts
  class Web3AuthClient (line 22) | class Web3AuthClient implements WalletClient {
    method constructor (line 39) | constructor(
    method setLoginHint (line 49) | setLoginHint(hint: string) {
    method getLoginHint (line 53) | getLoginHint() {
    method ensureSetup (line 57) | async ensureSetup(): Promise<void> {
    method connect (line 176) | async connect(_chainIds: string | string[]) {
    method disconnect (line 209) | async disconnect() {
    method getSimpleAccount (line 246) | async getSimpleAccount(chainId: string) {
    method getAccount (line 256) | async getAccount(chainId: string) {
    method getOfflineSigner (line 273) | getOfflineSigner(chainId: string) {
    method getOfflineSignerAmino (line 281) | getOfflineSignerAmino(chainId: string): OfflineAminoSigner {
    method getOfflineSignerDirect (line 285) | getOfflineSignerDirect(chainId: string): OfflineDirectSigner {
    method signArbitrary (line 289) | async signArbitrary(

FILE: wallets/web3auth/src/extension/main-wallet.ts
  class Web3AuthWallet (line 10) | class Web3AuthWallet extends MainWalletBase {
    method constructor (line 11) | constructor(walletInfo: Web3AuthWalletInfo) {
    method walletInfo (line 15) | get walletInfo(): Web3AuthWalletInfo {
    method initClient (line 19) | async initClient() {
    method setLoginHint (line 96) | setLoginHint(hint: string) {

FILE: wallets/web3auth/src/extension/signer.ts
  class Web3AuthSigner (line 18) | class Web3AuthSigner implements OfflineDirectSigner, OfflineAminoSigner {
    method constructor (line 25) | constructor(
    method getAccounts (line 39) | async getAccounts(): Promise<readonly AccountData[]> {
    method signDirect (line 80) | async signDirect(
    method signAmino (line 146) | async signAmino(

FILE: wallets/web3auth/src/extension/types.ts
  type Web3AuthWalletInfo (line 8) | type Web3AuthWalletInfo = Wallet & { options: Web3AuthClientOptions };
  type Web3AuthLoginMethod (line 10) | type Web3AuthLoginMethod = {
  type Web3AuthClientOptions (line 16) | type Web3AuthClientOptions = {
  type PromptSign (line 34) | type PromptSign = (
  type SignData (line 39) | type SignData =
  type ToWorkerMessage (line 50) | type ToWorkerMessage =
  type FromWorkerMessage (line 82) | type FromWorkerMessage =

FILE: wallets/web3auth/src/extension/utils.ts
  constant WEB3AUTH_REDIRECT_AUTO_CONNECT_KEY (line 22) | const WEB3AUTH_REDIRECT_AUTO_CONNECT_KEY =
Condensed preview — 1907 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (6,536K chars).
[
  {
    "path": ".editorconfig",
    "chars": 188,
    "preview": "root = true\n\n[*]\nindent_style = space\nindent_size = 2\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ni"
  },
  {
    "path": ".gitattributes",
    "chars": 28,
    "preview": "* text=auto\n*.js text eol=lf"
  },
  {
    "path": ".github/workflows/docs.yml",
    "chars": 1265,
    "preview": "name: Docs\n\non:\n  push:\n    branches:\n      - main\n    paths:\n      - \"docs/**\"\n      - \".github/workflows/docs.yaml\"\n\ne"
  },
  {
    "path": ".github/workflows/run-tests.yml",
    "chars": 520,
    "preview": "name: Run Tests\n\non:\n  push:\n\n  pull_request:\n    types: [opened, reopened]\n\n  workflow_dispatch:\n\njobs:\n  run-tests:\n  "
  },
  {
    "path": ".gitignore",
    "chars": 401,
    "preview": ".DS_Store\n.eslintcache\n*.log\npnpm-debug.log*\n**/node_modules\ncoverage\npackages/**/build\npackages/**/main\npackages/**/mod"
  },
  {
    "path": ".gitpod.yml",
    "chars": 443,
    "preview": "# This configuration file was automatically generated by Gitpod.\n# Please adjust to your needs (see https://www.gitpod.i"
  },
  {
    "path": ".vscode/cosmos-kit.code-workspace",
    "chars": 513,
    "preview": "{\n  \"folders\": [\n    {\n      \"path\": \"../packages/core/\"\n    },\n    {\n      \"path\": \"../packages/docs/\"\n    },\n    {\n   "
  },
  {
    "path": ".vscode/settings.json",
    "chars": 1036,
    "preview": "{\n  \"editor.quickSuggestions\": {\n    \"comments\": \"inline\",\n    \"strings\": \"inline\"\n  },\n  \"[markdown]\": {\n    \"editor.qu"
  },
  {
    "path": "INTEGRATING-WALLETS.md",
    "chars": 241,
    "preview": "# Integrating Wallets\n\n[supported wallets](https://docs.hyperweb.io/cosmos-kit/integrating-wallets#supported-wallets)\n\n["
  },
  {
    "path": "LICENSE",
    "chars": 1756,
    "preview": "The Clear BSD License\n\nCopyright (c) 2024 Cosmos Kit Contributors\nCopyright (c) 2025 Constructive <developers@constructi"
  },
  {
    "path": "README.md",
    "chars": 13320,
    "preview": "# cosmos-kit\n\n<p align=\"center\" width=\"100%\">\n    <img height=\"90\" src=\"https://user-images.githubusercontent.com/545047"
  },
  {
    "path": "docs/_meta.json",
    "chars": 247,
    "preview": "{\n  \"index\": \"Introduction\",\n  \"get-started\": \"Get Started\",\n  \"migration-to-v2\": \"Migration to V2\",\n  \"provider\": \"Prov"
  },
  {
    "path": "docs/advanced.md",
    "chars": 6160,
    "preview": "# Advanced\n\n## Code Structure\n\nTo make user better understand the whole design structure of CosmosKit, here to briefly i"
  },
  {
    "path": "docs/cookbook/_meta.json",
    "chars": 74,
    "preview": "{\n  \"connect-multi-chains\": \"Connect Multiple Chains\",\n  \"sign\": \"Sign\"\n}\n"
  },
  {
    "path": "docs/cookbook/connect-multi-chains.mdx",
    "chars": 1764,
    "preview": "## How to connect multiple chains?\n\n### 1. Use `useChains` Hook\nCosmosKit introduces **[`useChains`](../hooks/use-chains"
  },
  {
    "path": "docs/cookbook/sign.mdx",
    "chars": 915,
    "preview": "# Sign\n\n## Global Settings\n\n```ts\n<ChainProvider\n    ...\n    signerOptions={{\n        preferredSignType: (chain: Chain) "
  },
  {
    "path": "docs/get-started.mdx",
    "chars": 3041,
    "preview": "# How to use CosmosKit\n\n> 💡 Make sure you are using `React18`\n>\n> `CosmosKit V1` is deprecated, we suggest using [`Cosmo"
  },
  {
    "path": "docs/hooks/_meta.json",
    "chars": 352,
    "preview": "{\n  \"index\": \"Introduction\",\n  \"use-chain\": \"- useChain\",\n  \"use-chains\": \"- useChains\",\n  \"use-chain-wallet\": \"- useCha"
  },
  {
    "path": "docs/hooks/index.mdx",
    "chars": 1930,
    "preview": "There are multiple hooks provided in CosmosKit. They all require [**ChainProvider**](./provider/chain-provider) from eit"
  },
  {
    "path": "docs/hooks/use-chain-wallet.mdx",
    "chars": 12346,
    "preview": "## Hook - useChainWallet\n\n- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit/"
  },
  {
    "path": "docs/hooks/use-chain.mdx",
    "chars": 13144,
    "preview": "## Hook - useChain\n\n- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit/react`"
  },
  {
    "path": "docs/hooks/use-chains.mdx",
    "chars": 2059,
    "preview": "## Hook - useChains\n\n- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit/react"
  },
  {
    "path": "docs/hooks/use-iframe.mdx",
    "chars": 2198,
    "preview": "## Hook - useIframe\n\n- required provider: [**ChainProvider**](../provider/chain-provider) from either\n  `@cosmos-kit/rea"
  },
  {
    "path": "docs/hooks/use-manager.mdx",
    "chars": 4949,
    "preview": "## Hook - useManager\n\n- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit/reac"
  },
  {
    "path": "docs/hooks/use-modal-theme.mdx",
    "chars": 790,
    "preview": "## Hook - useModalTheme\n\nIf you're using default modal provided by CosmosKit, you might need this hook to get and set mo"
  },
  {
    "path": "docs/hooks/use-name-service.mdx",
    "chars": 859,
    "preview": "## Hook - useNameService\n\n- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit/"
  },
  {
    "path": "docs/hooks/use-wallet-client.mdx",
    "chars": 1113,
    "preview": "## Hook - useWalletClient\n\n- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit"
  },
  {
    "path": "docs/hooks/use-wallet.mdx",
    "chars": 1931,
    "preview": "## Hook - useWallet\n\n- required provider: [**ChainProvider**](../provider/chain-provider) from either `@cosmos-kit/react"
  },
  {
    "path": "docs/index.mdx",
    "chars": 3201,
    "preview": "import React from \"react\";\nimport { WalletSection } from \"../../components\";\nimport { DownloadButton } from '../../compo"
  },
  {
    "path": "docs/integrating-wallets/_meta.json",
    "chars": 807,
    "preview": "{\n  \"index\": \"Introduction\",\n  \"adding-new-wallets\": \"Adding New Wallets\",\n  \"adding-all-wallets\": \"Adding All Wallets\","
  },
  {
    "path": "docs/integrating-wallets/adding-all-wallets.mdx",
    "chars": 1446,
    "preview": "# How to Add All Wallets at Once\n\nThe `cosmos-kit` package exports all supported `wallets` in CosmosKit.\n\n## Add `cosmos"
  },
  {
    "path": "docs/integrating-wallets/adding-new-wallets.mdx",
    "chars": 11098,
    "preview": "# How to Integrate New Wallets into CosmosKit\n\n## Quickly Add Extension Wallets\n\n1. Copy files in [Leap Extension](https"
  },
  {
    "path": "docs/integrating-wallets/compass.mdx",
    "chars": 1002,
    "preview": "# How to Add Compass Wallet to CosmosKit\n\nThere are two packages for compass\n\n- `@cosmos-kit/compass`\n- `@cosmos-kit/com"
  },
  {
    "path": "docs/integrating-wallets/cosmos-metamask-extension.mdx",
    "chars": 804,
    "preview": "# How to Add Cosmos MetaMask Extension to CosmosKit\n\n- `@cosmos-kit/cosmos-extension-metamask`\n\n`@cosmos-kit/cosmos-exte"
  },
  {
    "path": "docs/integrating-wallets/cosmostation.mdx",
    "chars": 1149,
    "preview": "# How to Add Cosmostation Wallet to CosmosKit\n\nThere are three packages for cosmostation\n\n- `@cosmos-kit/cosmostation`\n-"
  },
  {
    "path": "docs/integrating-wallets/exodus.mdx",
    "chars": 989,
    "preview": "# How to Add Exodus Wallet to CosmosKit\n\nThere are two packages for exodus\n\n- `@cosmos-kit/exodus`\n- `@cosmos-kit/exodus"
  },
  {
    "path": "docs/integrating-wallets/fin.mdx",
    "chars": 950,
    "preview": "# How to Add Fin Wallet to CosmosKit\n\nThere are two packages for fin\n\n- `@cosmos-kit/fin`\n- `@cosmos-kit/fin-extension`\n"
  },
  {
    "path": "docs/integrating-wallets/frontier.mdx",
    "chars": 1015,
    "preview": "# How to Add Frontier Wallet to CosmosKit\n\nThere are two packages for frontier\n\n- `@cosmos-kit/frontier`\n- `@cosmos-kit/"
  },
  {
    "path": "docs/integrating-wallets/index.mdx",
    "chars": 389,
    "preview": "# Wallet Integrations\n\n## Wallet Providers\n\nIf you are a wallet provider, please see the docs for adding your wallet to "
  },
  {
    "path": "docs/integrating-wallets/keplr.mdx",
    "chars": 1004,
    "preview": "# How to Add Keplr Wallet to CosmosKit\n\nThere are three packages for keplr\n\n- `@cosmos-kit/keplr`\n- `@cosmos-kit/keplr-e"
  },
  {
    "path": "docs/integrating-wallets/leap-capsule-social-login.mdx",
    "chars": 3407,
    "preview": "# @cosmos-kit/leap-capsule-social-login\n\n\n`@cosmos-kit/leap-capsule-social-login` is the social login integration for Co"
  },
  {
    "path": "docs/integrating-wallets/leap-metamask-comos-snap.mdx",
    "chars": 803,
    "preview": "# How to Add Leap Metamask Cosmos Snap to CosmosKit\n\n- `@cosmos-kit/leap-metamask-cosmos-snap`\n\n`@cosmos-kit/leap-metama"
  },
  {
    "path": "docs/integrating-wallets/leap.mdx",
    "chars": 1070,
    "preview": "# How to Add Leap Wallet to CosmosKit\n\nThere are three packages for leap\n\n- `@cosmos-kit/leap`\n- `@cosmos-kit/leap-exten"
  },
  {
    "path": "docs/integrating-wallets/ledger.mdx",
    "chars": 1138,
    "preview": "# How to Add Ledger to CosmosKit\n\n## Prerequisites\n\n1. Connect your Ledger device via an USB cable and unlock it.\n2. Ope"
  },
  {
    "path": "docs/integrating-wallets/ninji.mdx",
    "chars": 976,
    "preview": "# How to Add Ninji Wallet to CosmosKit\n\nThere are two packages for ninji\n\n- `@cosmos-kit/ninji`\n- `@cosmos-kit/ninji-ext"
  },
  {
    "path": "docs/integrating-wallets/oko.mdx",
    "chars": 904,
    "preview": "# How to Add Oko Wallet to CosmosKit\n\nOko makes onboarding to your application easy, fast, and secure. Users can sign up"
  },
  {
    "path": "docs/integrating-wallets/okx.mdx",
    "chars": 989,
    "preview": "# How to Add Okx Wallet to CosmosKit\n\nThere are two packages for okxwallet\n\n- `@cosmos-kit/okxwallet`\n- `@cosmos-kit/okx"
  },
  {
    "path": "docs/integrating-wallets/omni.mdx",
    "chars": 954,
    "preview": "# How to Add Omni Wallet to CosmosKit\n\nThere are two packages for omni\n\n- `@cosmos-kit/omni`\n- `@cosmos-kit/omni-mobile`"
  },
  {
    "path": "docs/integrating-wallets/shell.mdx",
    "chars": 945,
    "preview": "# How to Add Shell Wallet to CosmosKit\n\nThere are three packages for shell\n\n- `@cosmos-kit/shell`\n- `@cosmos-kit/shell-e"
  },
  {
    "path": "docs/integrating-wallets/station.mdx",
    "chars": 1002,
    "preview": "# How to Add Station Wallet to CosmosKit\n\nThere are two packages for station\n\n- `@cosmos-kit/station`\n- `@cosmos-kit/sta"
  },
  {
    "path": "docs/integrating-wallets/trust.mdx",
    "chars": 1250,
    "preview": "# How to Add Trust Wallet to CosmosKit\n\nThere are three packages for Trust\n\n- `@cosmos-kit/trust`\n- `@cosmos-kit/trust-e"
  },
  {
    "path": "docs/integrating-wallets/vectis.mdx",
    "chars": 989,
    "preview": "# How to Add Vectis Wallet to CosmosKit\n\nThere are two packages for vectis\n\n- `@cosmos-kit/vectis`\n- `@cosmos-kit/vectis"
  },
  {
    "path": "docs/integrating-wallets/web3auth.mdx",
    "chars": 2526,
    "preview": "# How to Add Web3Auth Wallet to CosmosKit\n\n> ### Note! This package is still on progress. it doesn't work on mobile yet "
  },
  {
    "path": "docs/integrating-wallets/xdefi.mdx",
    "chars": 976,
    "preview": "# How to Add Xdefi Wallet to CosmosKit\n\nThere are two packages for xdefi\n\n- `@cosmos-kit/xdefi`\n- `@cosmos-kit/xdefi-ext"
  },
  {
    "path": "docs/migration-to-v2.mdx",
    "chars": 10019,
    "preview": "# Migration from V1 to V2\n\n## Major Changes\n\n1. `ChakraUI` Removed\n\nIn CosmosKit V2, we discard the dependency on `Chakr"
  },
  {
    "path": "docs/provider/_meta.json",
    "chars": 40,
    "preview": "{\n  \"chain-provider\": \"Chain Provider\"\n}"
  },
  {
    "path": "docs/provider/chain-provider.mdx",
    "chars": 15405,
    "preview": "Chain Provider provides necessary information for [hooks](../hooks).\n\nThere are two `ChainProvider` from two packages (`"
  },
  {
    "path": "examples/cosmos-kit-lite-nextjs-pages-router-example/.gitignore",
    "chars": 5,
    "preview": ".next"
  },
  {
    "path": "examples/cosmos-kit-lite-nextjs-pages-router-example/CHANGELOG.md",
    "chars": 9939,
    "preview": "# Change Log\n\nAll notable changes to this project will be documented in this file.\nSee [Conventional Commits](https://co"
  },
  {
    "path": "examples/cosmos-kit-lite-nextjs-pages-router-example/components/custom-modal.tsx",
    "chars": 2200,
    "preview": "import { WalletModalProps, WalletStatus } from \"@cosmos-kit/core\";\nimport React from \"react\";\nimport { Badge, Button, Mo"
  },
  {
    "path": "examples/cosmos-kit-lite-nextjs-pages-router-example/next-env.d.ts",
    "chars": 201,
    "preview": "/// <reference types=\"next\" />\n/// <reference types=\"next/image-types/global\" />\n\n// NOTE: This file should not be edite"
  },
  {
    "path": "examples/cosmos-kit-lite-nextjs-pages-router-example/next.config.js",
    "chars": 574,
    "preview": "module.exports = {\n  webpack: (config) => {\n    config.module.rules.push({\n      test: /\\.(ts|tsx)$/,\n      use: [\n     "
  },
  {
    "path": "examples/cosmos-kit-lite-nextjs-pages-router-example/package.json",
    "chars": 785,
    "preview": "{\n  \"name\": \"example-lite\",\n  \"private\": true,\n  \"description\": \"nextjs project using react lite (custom modal)\",\n  \"ver"
  },
  {
    "path": "examples/cosmos-kit-lite-nextjs-pages-router-example/pages/_app.tsx",
    "chars": 865,
    "preview": "import \"bootstrap/dist/css/bootstrap.min.css\";\nimport \"@interchain-ui/react/styles\";\nimport { wallets as keplrWallets } "
  },
  {
    "path": "examples/cosmos-kit-lite-nextjs-pages-router-example/pages/index.tsx",
    "chars": 362,
    "preview": "import { useChain } from \"@cosmos-kit/react-lite\";\nimport React from \"react\";\nimport { Button, Container } from \"react-b"
  },
  {
    "path": "examples/cosmos-kit-lite-nextjs-pages-router-example/tsconfig.json",
    "chars": 537,
    "preview": "{\n  \"compilerOptions\": {\n    \"lib\": [\n      \"dom\",\n      \"dom.iterable\",\n      \"esnext\"\n    ],\n    \"allowJs\": true,\n    "
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/.gitignore",
    "chars": 480,
    "preview": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n/.pn"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/CHANGELOG.md",
    "chars": 3168,
    "preview": "# Change Log\n\nAll notable changes to this project will be documented in this file.\nSee [Conventional Commits](https://co"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/README.md",
    "chars": 1406,
    "preview": "This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-re"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/components.json",
    "chars": 430,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema.json\",\n  \"style\": \"new-york\",\n  \"rsc\": true,\n  \"tsx\": true,\n  \"tailwind\": {"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/eslint.config.mjs",
    "chars": 393,
    "preview": "import { dirname } from \"path\";\nimport { fileURLToPath } from \"url\";\nimport { FlatCompat } from \"@eslint/eslintrc\";\n\ncon"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/next.config.ts",
    "chars": 219,
    "preview": "import type { NextConfig } from \"next\";\n\nconst nextConfig: NextConfig = {\n  experimental: {\n    externalDir: true,\n  },\n"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/package.json",
    "chars": 1070,
    "preview": "{\n  \"name\": \"cosmos-kit-nextjs-app-router-example\",\n  \"version\": \"0.4.1\",\n  \"private\": true,\n  \"scripts\": {\n    \"dev\": \""
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/postcss.config.mjs",
    "chars": 81,
    "preview": "const config = {\n  plugins: [\"@tailwindcss/postcss\"],\n};\n\nexport default config;\n"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/src/app/globals.css",
    "chars": 4168,
    "preview": "@import \"tailwindcss\";\n@import \"tw-animate-css\";\n\n@custom-variant dark (&:is(.dark *));\n\n@theme inline {\n  --color-backg"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/src/app/layout.tsx",
    "chars": 798,
    "preview": "import type { Metadata } from \"next\";\nimport { Geist, Geist_Mono } from \"next/font/google\";\nimport \"./globals.css\";\nimpo"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/src/app/page.tsx",
    "chars": 3768,
    "preview": "import { ConnectWallet } from \"@/components/connect-wallet\";\n\nexport default function Home() {\n  return (\n    <div class"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/src/components/connect-wallet.tsx",
    "chars": 3109,
    "preview": "\"use client\";\n\nimport { useChain } from \"@cosmos-kit/react\";\nimport { Button } from \"@/components/ui/button\";\nimport { C"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/src/components/cosmos-kit-provider.tsx",
    "chars": 484,
    "preview": "\"use client\";\n\nimport \"@interchain-ui/react/styles\";\nimport { ChainProvider } from \"@cosmos-kit/react\";\nimport { chains,"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/src/components/ui/badge.tsx",
    "chars": 1631,
    "preview": "import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/src/components/ui/button.tsx",
    "chars": 2123,
    "preview": "import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/src/components/ui/card.tsx",
    "chars": 1989,
    "preview": "import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Card({ className, ...props }: React.Component"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/src/lib/utils.ts",
    "chars": 166,
    "preview": "import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: Cla"
  },
  {
    "path": "examples/cosmos-kit-nextjs-app-router-example/tsconfig.json",
    "chars": 602,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ES2017\",\n    \"lib\": [\"dom\", \"dom.iterable\", \"esnext\"],\n    \"allowJs\": true,\n    "
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/.eslintrc.json",
    "chars": 1696,
    "preview": "{\n  \"plugins\": [\"@typescript-eslint\", \"simple-import-sort\", \"unused-imports\"],\n  \"extends\": [\n    // \"next\",\n    \"eslint"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/.gitignore",
    "chars": 385,
    "preview": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n/.pn"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/CHANGELOG.md",
    "chars": 52719,
    "preview": "# Change Log\n\nAll notable changes to this project will be documented in this file.\nSee [Conventional Commits](https://co"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/LICENSE",
    "chars": 1075,
    "preview": "MIT License\n\nCopyright (c) 2022 COSMOS-KIT AUTHORS\n\nPermission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/README.md",
    "chars": 3752,
    "preview": "## Getting Started\n\nFirst, run the development server:\n\n```bash\npnpm dev\n```\n\nOpen [http://localhost:3000](http://localh"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/badge.tsx",
    "chars": 1144,
    "preview": "import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \""
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/button.tsx",
    "chars": 1806,
    "preview": "import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"cla"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/card.tsx",
    "chars": 1874,
    "preview": "import * as React from \"react\";\n\nimport { cn } from \"lib/utils\";\n\nconst Card = React.forwardRef<\n  HTMLDivElement,\n  Rea"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/chain-wallet-card.tsx",
    "chars": 1535,
    "preview": "import { ChainName } from \"@cosmos-kit/core\";\nimport { useChain } from \"@cosmos-kit/react\";\nimport { Badge } from \"compo"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/chains-tx-wallet.tsx",
    "chars": 2521,
    "preview": "import { ChainName } from \"@cosmos-kit/core\";\nimport { useChain } from \"@cosmos-kit/react\";\nimport React, { MouseEventHa"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/custom-connected.tsx",
    "chars": 999,
    "preview": "import { WalletViewProps } from \"@cosmos-kit/core\";\nimport { ModalViewImpl } from \"@cosmos-kit/react\";\n\nexport function "
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/dropdown-menu.tsx",
    "chars": 7398,
    "preview": "\"use client\";\n\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\ni"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/index.ts",
    "chars": 123,
    "preview": "export * from \"./chain-wallet-card\";\nexport * from \"./chains-tx-wallet\";\nexport * from \"./react\";\nexport * from \"./types"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/layout.tsx",
    "chars": 528,
    "preview": "import { ThemeProvider } from \"components/theme-provider\";\nimport { ModeToggle } from \"./mode-toggle\";\n\ninterface RootLa"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/mode-toggle.tsx",
    "chars": 1712,
    "preview": "import { useModalTheme } from \"@cosmos-kit/react\";\nimport { MoonIcon, SunIcon } from \"@radix-ui/react-icons\";\nimport { B"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/react/address-card.tsx",
    "chars": 2074,
    "preview": "import { WalletStatus } from \"@cosmos-kit/core\";\nimport { Badge } from \"components/badge\";\nimport React, { ReactNode, us"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/react/astronaut.tsx",
    "chars": 10943,
    "preview": "export const Astronaut = (props: any) => (\n  <svg\n    viewdiv=\"0 0 278 255\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/react/chain-card.tsx",
    "chars": 341,
    "preview": "import { Badge } from \"components/badge\";\nimport { ChainDivProps } from \"../types\";\n\nexport const ChainDiv = (props: Cha"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/react/handleChangeColor.tsx",
    "chars": 232,
    "preview": "// use for let color mode value fit Rules of Hooks\nexport function handleChangeColorModeValue(\n  colorMode: string,\n  li"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/react/index.ts",
    "chars": 220,
    "preview": "export * from \"./address-card\";\nexport * from \"./astronaut\";\nexport * from \"./chain-card\";\nexport * from \"./send-tokens-"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/react/send-tokens-card.tsx",
    "chars": 1647,
    "preview": "import React from \"react\";\n\nimport { Badge } from \"components/badge\";\nimport { Button } from \"components/button\";\nimport"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/react/user-card.tsx",
    "chars": 699,
    "preview": "import React from \"react\";\n\nimport { Card, CardHeader, CardTitle } from \"components/card\";\nimport { Badge } from \"compon"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/react/wallet-connect.tsx",
    "chars": 3182,
    "preview": "import { WalletStatus } from \"@cosmos-kit/core\";\nimport React, { MouseEventHandler, ReactNode } from \"react\";\n\nimport { "
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/react/warn-block.tsx",
    "chars": 839,
    "preview": "import { WalletStatus } from \"@cosmos-kit/core\";\nimport React, { ReactNode } from \"react\";\n\nexport const WarnBlock = ({\n"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/theme-provider.tsx",
    "chars": 317,
    "preview": "import * as React from \"react\";\nimport { ThemeProvider as NextThemesProvider } from \"next-themes\";\nimport { type ThemePr"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components/types.tsx",
    "chars": 1702,
    "preview": "import { MouseEventHandler, ReactNode, RefObject } from \"react\";\nimport { IconType } from \"react-icons\";\n\nexport interfa"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/components.json",
    "chars": 307,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema.json\",\n  \"style\": \"new-york\",\n  \"rsc\": false,\n  \"tailwind\": {\n    \"config\":"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/config/seo.js",
    "chars": 707,
    "preview": "const siteUrl = \"https://test.cosmoskit.com\";\nconst siteAddress = new URL(siteUrl);\nconst canonical = siteAddress.href.s"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/config/site.js",
    "chars": 703,
    "preview": "const siteUrl = 'https://test.cosmoskit.com';\nconst siteAddress = new URL(siteUrl);\nconst canonical = siteAddress.href.s"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/hooks/index.ts",
    "chars": 204,
    "preview": "import * as React from \"react\";\n\nexport function useIsClient() {\n  const [isClient, setIsClient] = React.useState(false)"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/lib/utils.ts",
    "chars": 167,
    "preview": "import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n \nexport function cn(...inputs: Cl"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/next.config.js",
    "chars": 1893,
    "preview": "// const withBundleAnalyzer = require(\"@next/bundle-analyzer\")({\n//   enabled: process.env.ANALYZE === \"true\",\n// });\n\n/"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/package.json",
    "chars": 2954,
    "preview": "{\n  \"name\": \"example\",\n  \"version\": \"2.33.1\",\n  \"private\": true,\n  \"scripts\": {\n    \"dev\": \"next dev\",\n    \"build\": \"nex"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/_app.tsx",
    "chars": 7453,
    "preview": "/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-imports */\nimport \"boo"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/add-chain.tsx",
    "chars": 3175,
    "preview": "import { WalletStatus } from \"@cosmos-kit/core\";\nimport { useChain, useManager } from \"@cosmos-kit/react\";\nimport { asse"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/add-cw20.tsx",
    "chars": 1916,
    "preview": "import { useChain } from \"@cosmos-kit/react\";\nimport { useMemo } from \"react\";\nimport { BsFillMoonStarsFill, BsFillSunFi"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/chain/[name].tsx",
    "chars": 3172,
    "preview": "import { useChain } from \"@cosmos-kit/react\";\nimport { chains } from \"chain-registry\";\nimport Link from \"next/link\";\n\nex"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/chain/query.tsx",
    "chars": 771,
    "preview": "import { useRouter } from \"next/router\";\nimport { ChainLayout, ChainTable, chainsInfo } from \"./[name]\";\nimport { useCha"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/cosmoshub.tsx",
    "chars": 829,
    "preview": "import { useChain } from \"@cosmos-kit/react\";\n\nexport default () => {\n  const { username, connect, disconnect, wallet, s"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/endpoint.tsx",
    "chars": 1099,
    "preview": "import \"bootstrap/dist/css/bootstrap.min.css\";\nimport { useChainWallet, useManager } from \"@cosmos-kit/react\";\nimport { "
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/event.tsx",
    "chars": 852,
    "preview": "import { useChain, useManager } from \"@cosmos-kit/react\";\nimport { useEffect } from \"react\";\n\nconst chainName = \"cosmosh"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/gov.tsx",
    "chars": 871,
    "preview": "import { useChainWallet } from \"@cosmos-kit/react\";\nimport { useEffect } from \"react\";\n\nconst Test = () => {\n  const { s"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/iframe-alert.tsx",
    "chars": 2964,
    "preview": "import { useChain, useIframe } from \"@cosmos-kit/react-lite\";\nimport { useState } from \"react\";\n\nexport default () => {\n"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/iframe.tsx",
    "chars": 2591,
    "preview": "import { useChain, useIframe } from \"@cosmos-kit/react-lite\";\nimport { useRouter } from \"next/router\";\nimport { useEffec"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/index.tsx",
    "chars": 3663,
    "preview": "import { useChain, useWallet } from \"@cosmos-kit/react\";\nimport { PaperPlaneIcon, ResetIcon } from \"@radix-ui/react-icon"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/ledger.tsx",
    "chars": 5378,
    "preview": "import { useEffect, useState } from \"react\";\nimport { useChain, useWallet, useWalletClient } from \"@cosmos-kit/react\";\ni"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/ns.tsx",
    "chars": 529,
    "preview": "import { useManager } from \"@cosmos-kit/react\";\nimport { useEffect, useState } from \"react\";\n\nconst address = \"\";\n\nexpor"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/ns2.tsx",
    "chars": 471,
    "preview": "import { useNameService } from \"@cosmos-kit/react\";\nimport { useEffect, useState } from \"react\";\n\nconst address = \"\"; //"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/test.tsx",
    "chars": 456,
    "preview": "import { useChainWallet, useChain } from \"@cosmos-kit/react\";\nimport { useEffect } from \"react\";\n\nexport default functio"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/tx.tsx",
    "chars": 6922,
    "preview": "/* eslint-disable no-alert */\nimport { Asset, AssetList } from \"@chain-registry/types\";\nimport { StdFee } from \"@cosmjs/"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/use-chain-wallet.tsx",
    "chars": 660,
    "preview": "import { ClipboardCopyText } from \"@interchain-ui/react\";\nimport { useChainWallet } from \"@cosmos-kit/react\";\n\nexport de"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/use-chain.tsx",
    "chars": 1065,
    "preview": "import Link from \"next/link\";\nimport { useState } from \"react\";\nimport { useChain } from \"@cosmos-kit/react-lite\";\nimpor"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/use-chains.tsx",
    "chars": 2106,
    "preview": "import Link from \"next/link\";\nimport { Button } from \"components/button\";\nimport { useChains } from \"@cosmos-kit/react-l"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/use-wallet-client.tsx",
    "chars": 175,
    "preview": "import { useWalletClient } from \"@cosmos-kit/react\";\n\nexport default function () {\n  const { status, client } = useWalle"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/use-wallet.tsx",
    "chars": 422,
    "preview": "import { useManager, useWallet } from \"@cosmos-kit/react\";\nimport { useEffect } from \"react\";\n\nexport default function P"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/user-agent.tsx",
    "chars": 768,
    "preview": "import { ChainWalletBase } from \"@cosmos-kit/core\";\nimport { useManager } from \"@cosmos-kit/react\";\nimport { useEffect, "
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/wallet-manager/index.tsx",
    "chars": 467,
    "preview": "export default () => {\n  return (\n    <ul>\n      <li><a href='/wallet-manager/wallet-operate'>Operate Wallet Directly</a"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/wallet-manager/main-wallets.tsx",
    "chars": 3637,
    "preview": "import { WalletManager, Logger } from \"@cosmos-kit/core\";\nimport { useMemo, useState } from \"react\";\nimport { wallets as"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/wallet-manager/wallet-manager.tsx",
    "chars": 6216,
    "preview": "import { WalletManager, Logger } from \"@cosmos-kit/core\";\nimport { useMemo, useState } from \"react\";\nimport { wallets as"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/wallet-manager/wallet-operate.tsx",
    "chars": 3299,
    "preview": "import { WalletManager, Logger } from \"@cosmos-kit/core\";\nimport { useMemo, useState } from \"react\";\nimport { wallets as"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/wallet-manager/wallet-repo.tsx",
    "chars": 4158,
    "preview": "import { WalletManager, Logger } from \"@cosmos-kit/core\";\nimport { useMemo, useState } from \"react\";\nimport { wallets as"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/wallet-manager/wallet-repos.tsx",
    "chars": 4218,
    "preview": "import { WalletManager, Logger } from \"@cosmos-kit/core\";\nimport { useMemo, useState } from \"react\";\nimport { wallets as"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/pages/wc.tsx",
    "chars": 1886,
    "preview": "import SignClient from \"@walletconnect/sign-client\";\nimport { useEffect, useState } from \"react\";\n\nimport { Web3Modal } "
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/postcss.config.js",
    "chars": 82,
    "preview": "module.exports = {\n  plugins: {\n    tailwindcss: {},\n    autoprefixer: {},\n  },\n}\n"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/seo/prepare.sh",
    "chars": 670,
    "preview": "#!/bin/bash\n\nexport S3_BUCKET=test.cosmoskit.com\n\n(cd out &&\n  find . -type f -name '*.html' | while read HTMLFILE; do\n "
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/seo/seo.js",
    "chars": 5296,
    "preview": "const fs = require('fs');\nconst seo = require('../config/seo');\nconst canonical = seo.canonical;\nconst siteInfo = requir"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/style/global.css",
    "chars": 2014,
    "preview": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@layer base {\n  :root,\n  :root .leap-ui {\n    --background: "
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/tailwind.config.js",
    "chars": 2171,
    "preview": "/** @type {import('tailwindcss').Config} */\nmodule.exports = {\n  darkMode: [\"class\"],\n  content: [\n    \"./app/**/*.{js,t"
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/tsconfig.json",
    "chars": 626,
    "preview": "{\n  \"compilerOptions\": {\n    \"baseUrl\": \".\",\n    \"target\": \"es2015\",\n    \"jsx\": \"preserve\",\n    \"lib\": [\"ES2015\", \"dom\","
  },
  {
    "path": "examples/cosmos-kit-nextjs-pages-router-example/wc/client.ts",
    "chars": 803,
    "preview": "import type { ConfigCtrlState } from \"@web3modal/core\";\nimport { ConfigCtrl, ModalCtrl } from \"@web3modal/core\";\n\n/**\n *"
  },
  {
    "path": "jest.config.js",
    "chars": 181,
    "preview": "module.exports = {\n  projects: ['<rootDir>/packages/*/jest.config.js'],\n  coverageDirectory: '<rootDir>/coverage',\n  tra"
  },
  {
    "path": "lerna.json",
    "chars": 552,
    "preview": "{\n  \"$schema\": \"node_modules/lerna/schemas/lerna-schema.json\",\n  \"lerna\": \"7\",\n  \"conventionalCommits\": true,\n  \"npmClie"
  },
  {
    "path": "package.json",
    "chars": 1357,
    "preview": "{\n  \"name\": \"cosmos-kit-repo\",\n  \"version\": \"2.0.0\",\n  \"private\": true,\n  \"packageManager\": \"pnpm@9.15.9\",\n  \"scripts\": "
  },
  {
    "path": "packages/core/.editorconfig",
    "chars": 188,
    "preview": "root = true\n\n[*]\nindent_style = space\nindent_size = 2\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ni"
  },
  {
    "path": "packages/core/.eslintignore",
    "chars": 62,
    "preview": "node_modules/\ndist/\nmain/\nmodule/\n./types/\ncoverage/\n/index.ts"
  },
  {
    "path": "packages/core/.eslintrc.json",
    "chars": 1621,
    "preview": "{\n  \"plugins\": [\n    \"@typescript-eslint\",\n    \"simple-import-sort\",\n    \"unused-imports\"\n  ],\n  \"extends\": [\n    \"eslin"
  },
  {
    "path": "packages/core/.gitignore",
    "chars": 559,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\n\n# Runtime data\npids\n*.pid\n*.seed\n\n# dist\nmain\nmodule\n\n# Directory for instrumented lib"
  },
  {
    "path": "packages/core/.npmignore",
    "chars": 392,
    "preview": "*.log\nnpm-debug.log*\n\n# Coverage directory used by tools like istanbul\ncoverage\n.nyc_output\n\n# Dependency directories\nno"
  },
  {
    "path": "packages/core/.npmrc",
    "chars": 30,
    "preview": "scripts-prepend-node-path=true"
  },
  {
    "path": "packages/core/.prettierrc.json",
    "chars": 104,
    "preview": "{\n  \"trailingComma\": \"es5\",\n  \"tabWidth\": 2,\n  \"semi\": true,\n  \"singleQuote\": true,\n  \"useTabs\": false\n}"
  },
  {
    "path": "packages/core/CHANGELOG.md",
    "chars": 43850,
    "preview": "# Change Log\n\nAll notable changes to this project will be documented in this file.\nSee [Conventional Commits](https://co"
  },
  {
    "path": "packages/core/LICENSE",
    "chars": 1756,
    "preview": "The Clear BSD License\n\nCopyright (c) 2024 Cosmos Kit Contributors\nCopyright (c) 2025 Constructive <developers@constructi"
  },
  {
    "path": "packages/core/README.md",
    "chars": 4956,
    "preview": "# @cosmos-kit/core\n\n<p align=\"center\" width=\"100%\">\n    <img height=\"90\" src=\"https://user-images.githubusercontent.com/"
  },
  {
    "path": "packages/core/__tests__/bases/chain-wallet.test.ts",
    "chars": 15572,
    "preview": "import { Decimal } from '@cosmjs/math';\nimport { EncodeObject } from '@cosmjs/proto-signing';\nimport { CosmWasmClient, S"
  },
  {
    "path": "packages/core/__tests__/bases/main-wallet.test.ts",
    "chars": 15472,
    "preview": "\nimport { AssetList, Chain } from '@chain-registry/types';\nimport { ChainRecord, EndpointOptions, Endpoints, State, Wall"
  },
  {
    "path": "packages/core/__tests__/bases/state.test.ts",
    "chars": 4478,
    "preview": "import { StateBase } from '../../src/bases/state';\nimport { DappEnv, State, WalletStatus } from '../../src/types';\n\ndesc"
  },
  {
    "path": "packages/core/__tests__/bases/wallet.test.ts",
    "chars": 10152,
    "preview": "import { WalletBase } from '../../src/bases'\nimport { mockExtensionInfo as walletInfo } from '../../test-utils/mock-exte"
  },
  {
    "path": "packages/core/__tests__/manager.test.ts",
    "chars": 13175,
    "preview": "import { WalletConnectOptions } from './../src/types/wallet';\nimport { EndpointOptions, SessionOptions, SignerOptions } "
  },
  {
    "path": "packages/core/__tests__/name-serveice-class.test.ts",
    "chars": 2028,
    "preview": "import type { CosmWasmClient } from '@cosmjs/cosmwasm-stargate';\nimport { NameServiceRegistry } from '../src/types';\nimp"
  },
  {
    "path": "packages/core/__tests__/repository.test.ts",
    "chars": 12209,
    "preview": "import { ChainWalletBase } from '../src/bases';\nimport { WalletRepo } from '../src/repository';\nimport { ChainRecord, Da"
  },
  {
    "path": "packages/core/__tests__/utils/check.test.ts",
    "chars": 1106,
    "preview": "import { checkInit, checkKey } from '../../src/utils/check';\n\ndescribe('checkInit', () => {\n  it('should throw an error "
  },
  {
    "path": "packages/core/__tests__/utils/convert.test.ts",
    "chars": 1484,
    "preview": "import { convertChain } from '../../src/utils/convert';\nimport { chains, assets } from 'chain-registry'\n\ndescribe('conve"
  },
  {
    "path": "packages/core/__tests__/utils/endpoint.test.ts",
    "chars": 5012,
    "preview": "import { ExtendedHttpEndpoint } from '../../src/types';\nimport { getFastestEndpoint, isValidEndpoint, getIsLazy } from '"
  },
  {
    "path": "packages/core/__tests__/utils/error.test.ts",
    "chars": 922,
    "preview": "import { ConnectError, WalletNotProvidedError } from \"../../src/utils\";\n\ndescribe('ConnectError', () => {\n  it('should c"
  },
  {
    "path": "packages/core/__tests__/utils/logger.test.ts",
    "chars": 1999,
    "preview": "import { Logger } from '../../src/utils';\n\ndescribe('Logger Tests', () => {\n  let consoleLogSpy;\n  let logger;\n\n  before"
  },
  {
    "path": "packages/core/__tests__/utils/map.test.ts",
    "chars": 1087,
    "preview": "import { valuesApply } from '../../src/utils';\n\ndescribe('valuesApply Tests', () => {\n  it('valuesApply should apply cal"
  },
  {
    "path": "packages/core/__tests__/utils/math.test.ts",
    "chars": 1033,
    "preview": "import { sum } from '../../src/utils';\n\ndescribe('sum Tests', () => {\n  it('sum should return the correct sum of numbers"
  },
  {
    "path": "packages/core/__tests__/utils/name-service.test.ts",
    "chars": 2424,
    "preview": "import {\n  getNameServiceRegistryFromChainName,\n  getNameServiceRegistryFromName,\n  getNameServiceNameFromChainName,\n  g"
  },
  {
    "path": "packages/core/__tests__/utils/session.test.ts",
    "chars": 1074,
    "preview": "import { Session } from '../../src/utils';\n\njest.useFakeTimers(); // 使用 Jest 提供的虚拟定时器\njest.spyOn(global, 'setTimeout');\n"
  },
  {
    "path": "packages/core/__tests__/utils/status.test.ts",
    "chars": 1948,
    "preview": "import { State, WalletStatus } from '../../src/types';\nimport { ClientNotExistError, getWalletStatusFromState, RejectedE"
  },
  {
    "path": "packages/core/index.ts",
    "chars": 70,
    "preview": "// not for module, but for local development..\nexport * from './src';\n"
  },
  {
    "path": "packages/core/jest.config.js",
    "chars": 521,
    "preview": "/** @type {import('ts-jest').JestConfigWithTsJest} */\nconst path = require('path');\nmodule.exports = {\n  preset: 'ts-jes"
  },
  {
    "path": "packages/core/package.json",
    "chars": 2076,
    "preview": "{\n  \"name\": \"@cosmos-kit/core\",\n  \"version\": \"2.18.1\",\n  \"description\": \"cosmos-kit wallet connector core package\",\n  \"a"
  },
  {
    "path": "packages/core/src/bases/chain-wallet.ts",
    "chars": 13168,
    "preview": "/* eslint-disable no-unused-expressions */\nimport { SigningCosmWasmClientOptions } from '@cosmjs/cosmwasm-stargate';\nimp"
  },
  {
    "path": "packages/core/src/bases/index.ts",
    "chars": 114,
    "preview": "export * from './chain-wallet';\nexport * from './main-wallet';\nexport * from './state';\nexport * from './wallet';\n"
  },
  {
    "path": "packages/core/src/bases/main-wallet.ts",
    "chars": 7790,
    "preview": "/* eslint-disable @typescript-eslint/no-empty-function */\nimport EventEmitter from 'events';\n\nimport { COSMIFRAME_WALLET"
  },
  {
    "path": "packages/core/src/bases/state.ts",
    "chars": 2494,
    "preview": "import { Actions, DappEnv, Data, Mutable, State, StateActions, WalletStatus } from '../types';\nimport { getWalletStatusF"
  },
  {
    "path": "packages/core/src/bases/wallet.ts",
    "chars": 6704,
    "preview": "/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-console */\nimport type EventEmitter from 'e"
  },
  {
    "path": "packages/core/src/config.ts",
    "chars": 667,
    "preview": "import { Bech32Address, NameServiceRegistry } from './types';\n\nexport const nameServiceRegistries: NameServiceRegistry[]"
  },
  {
    "path": "packages/core/src/cosmiframe/constants.ts",
    "chars": 203,
    "preview": "export const COSMIFRAME_WALLET_ID = 'cosmiframe';\nexport const COSMIFRAME_KEYSTORECHANGE_EVENT = 'cosmiframe_keystorecha"
  },
  {
    "path": "packages/core/src/cosmiframe/cosmiframe.ts",
    "chars": 282,
    "preview": "import { Origin } from '@dao-dao/cosmiframe';\n\nimport { cosmiframeExtensionInfo, CosmiframeWallet } from './extension';\n"
  },
  {
    "path": "packages/core/src/cosmiframe/extension/chain-wallet.ts",
    "chars": 260,
    "preview": "import { ChainWalletBase } from '../../bases';\nimport { ChainRecord, Wallet } from '../../types';\n\nexport class ChainWal"
  },
  {
    "path": "packages/core/src/cosmiframe/extension/client.ts",
    "chars": 3306,
    "preview": "import { StdSignature } from '@cosmjs/amino';\nimport { Cosmiframe } from '@dao-dao/cosmiframe';\n\nimport {\n  ChainRecord,"
  },
  {
    "path": "packages/core/src/cosmiframe/extension/index.ts",
    "chars": 117,
    "preview": "export * from './chain-wallet';\nexport * from './client';\nexport * from './main-wallet';\nexport * from './registry';\n"
  },
  {
    "path": "packages/core/src/cosmiframe/extension/main-wallet.ts",
    "chars": 1276,
    "preview": "import { Cosmiframe } from '@dao-dao/cosmiframe';\n\nimport { MainWalletBase } from '../../bases';\nimport { ChainWalletCos"
  },
  {
    "path": "packages/core/src/cosmiframe/extension/registry.ts",
    "chars": 1578,
    "preview": "import {\n  COSMIFRAME_KEYSTORECHANGE_EVENT,\n  COSMIFRAME_WALLET_ID,\n} from '../constants';\nimport { CosmiframeWalletInfo"
  }
]

// ... and 1707 more files (download for full content)

About this extraction

This page contains the full source code of the cosmology-tech/cosmos-kit GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1907 files (6.0 MB), approximately 1.7M tokens, and a symbol index with 1477 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!