# ReactiveDOT ## search - [Search the documentation](/search.md) ## react ### api - [@reactive-dot/core](/react/api/core.md): Modules - [index](/react/api/core/index.md): Classes - [BaseError](/react/api/core/index/classes/BaseError.md): Defined in1 - [MutationError](/react/api/core/index/classes/MutationError.md): Defined in11 - [Query](/react/api/core/index/classes/Query.md): Defined in269 - [QueryError](/react/api/core/index/classes/QueryError.md): Defined in9 - [Storage](/react/api/core/index/classes/Storage.md): Defined in8 - [defineConfig()](/react/api/core/index/functions/defineConfig.md): Defined in36 - [defineContract()](/react/api/core/index/functions/defineContract.md): Call Signature - [unsafeDescriptor()](/react/api/core/index/functions/unsafeDescriptor.md): Defined in23 - [whenAccountsChanged()](/react/api/core/index/functions/whenAccountsChanged.md): Defined in17 - [whenClientChanged()](/react/api/core/index/functions/whenClientChanged.md): Defined in13 - [whenConnectedWalletsChanged()](/react/api/core/index/functions/whenConnectedWalletsChanged.md): Defined in12 - [whenWalletsChanged()](/react/api/core/index/functions/whenWalletsChanged.md): Defined in11 - [Register](/react/api/core/index/interfaces/Register.md): Defined in4 - [Address](/react/api/core/index/type-aliases/Address.md): Defined in4 - [AsyncValue](/react/api/core/index/type-aliases/AsyncValue.md): Defined in3 - [ChainConfig](/react/api/core/index/type-aliases/ChainConfig.md): Defined in8 - [ChainId](/react/api/core/index/type-aliases/ChainId.md): Defined in15 - [Config](/react/api/core/index/type-aliases/Config.md): Defined in13 - [idle](/react/api/core/index/variables/idle.md): Defined in1 - [pending](/react/api/core/index/variables/pending.md): Defined in3 - [ReactiveDotError](/react/api/core/index/variables/ReactiveDotError.md): Defined in16 - [providers/light-client](/react/api/core/providers/light-client.md): Functions - [createLightClientProvider()](/react/api/core/providers/light-client/functions/createLightClientProvider.md): Defined in43 - [wallets](/react/api/core/wallets.md): Classes - [DeepLinkWallet](/react/api/core/wallets/classes/DeepLinkWallet.md): Defined in9 - [InjectedWallet](/react/api/core/wallets/classes/InjectedWallet.md): Defined in9 - [InjectedWalletProvider](/react/api/core/wallets/classes/InjectedWalletProvider.md): Defined in4 - [LocalWallet](/react/api/core/wallets/classes/LocalWallet.md): Defined in22 - [Wallet](/react/api/core/wallets/classes/Wallet.md): Defined in10 - [WalletProvider](/react/api/core/wallets/classes/WalletProvider.md): Defined in4 - [initializeWallets()](/react/api/core/wallets/functions/initializeWallets.md): Defined in5 - [PolkadotAccount](/react/api/core/wallets/type-aliases/PolkadotAccount.md): Defined in25 - [PolkadotSignerAccount](/react/api/core/wallets/type-aliases/PolkadotSignerAccount.md): Defined in19 - [WalletAccount](/react/api/core/wallets/type-aliases/WalletAccount.md): Defined in30 - [WalletOptions](/react/api/core/wallets/type-aliases/WalletOptions.md): Defined in6 - [@reactive-dot/react](/react/api/react.md): Functions - [Await()](/react/api/react/functions/Await.md): Defined in22 - [ChainProvider()](/react/api/react/functions/ChainProvider.md): Defined in17 - [QueryOptionsProvider()](/react/api/react/functions/QueryOptionsProvider.md): Defined in16 - [QueryRenderer()](/react/api/react/functions/QueryRenderer.md): Defined in22 - [ReactiveDotProvider()](/react/api/react/functions/ReactiveDotProvider.md): Defined in24 - [SignerProvider()](/react/api/react/functions/SignerProvider.md): Defined in21 - [useAccounts()](/react/api/react/functions/useAccounts.md): Defined in31 - [useBlock()](/react/api/react/functions/useBlock.md): Defined in22 - [useChainId()](/react/api/react/functions/useChainId.md): Defined in23 - [useChainIds()](/react/api/react/functions/useChainIds.md): Defined in13 - [useChainSpecData()](/react/api/react/functions/useChainSpecData.md): Defined in19 - [useClient()](/react/api/react/functions/useClient.md): Defined in20 - [useConfig()](/react/api/react/functions/useConfig.md): Defined in11 - [useConnectedWallets()](/react/api/react/functions/useConnectedWallets.md): Defined in38 - [useContractEventListener()](/react/api/react/functions/useContractEventListener.md): Defined in22 - [useContractMutation()](/react/api/react/functions/useContractMutation.md): Defined in34 - [useLazyLoadQuery()](/react/api/react/functions/useLazyLoadQuery.md): Defined in67 - [useLazyLoadQueryWithRefresh()](/react/api/react/functions/useLazyLoadQueryWithRefresh.md): Defined in112 - [useMutation()](/react/api/react/functions/useMutation.md): Defined in30 - [useMutationListener()](/react/api/react/functions/useMutationListener.md): Defined in10 - [useNativeTokenAmountFromNumber()](/react/api/react/functions/useNativeTokenAmountFromNumber.md): Call Signature - [useNativeTokenAmountFromPlanck()](/react/api/react/functions/useNativeTokenAmountFromPlanck.md): Call Signature - [usePromises()](/react/api/react/functions/usePromises.md): Defined in12 - [usePromiseValue()](/react/api/react/functions/usePromiseValue.md): Defined in13 - [useQueryErrorResetter()](/react/api/react/functions/useQueryErrorResetter.md): Defined in11 - [useQueryLoader()](/react/api/react/functions/useQueryLoader.md): Defined in17 - [useQueryRefresher()](/react/api/react/functions/useQueryRefresher.md): Defined in15 - [useSigner()](/react/api/react/functions/useSigner.md): Defined in10 - [useSpendableBalance()](/react/api/react/functions/useSpendableBalance.md): Defined in45 - [useSpendableBalances()](/react/api/react/functions/useSpendableBalances.md): Defined in72 - [useStore()](/react/api/react/functions/useStore.md): Defined in18 - [useTypedApi()](/react/api/react/functions/useTypedApi.md): Defined in22 - [useWalletConnector()](/react/api/react/functions/useWalletConnector.md): Defined in16 - [useWalletDisconnector()](/react/api/react/functions/useWalletDisconnector.md): Defined in16 - [useWallets()](/react/api/react/functions/useWallets.md): Defined in21 - [useMutationEffect](/react/api/react/variables/useMutationEffect.md): Defined in25 - [usePromiseState](/react/api/react/variables/usePromiseState.md): Defined in70 - [@reactive-dot/utils](/react/api/utils.md): Classes - [DenominatedNumber](/react/api/utils/classes/DenominatedNumber.md): Defined in1 - [BigIntMath](/react/api/utils/variables/BigIntMath.md): Defined in1 ### category - [API](/react/category/api.md) - [Getting started](/react/category/getting-started.md) - [Guides](/react/category/guides.md) - [Smart contracts](/react/category/smart-contracts.md) ### getting-started - [Connect wallets](/react/getting-started/connect-wallets.md): Wallets & accounts connection can by managed via useWallets, useConnectedWallets & useAccounts hooks. - [Mutation](/react/getting-started/mutation.md): The useMutation hook allow you to sign & submit transaction to a chain. - [Query](/react/getting-started/query.md): The useLazyLoadQuery hook allow you to read any data from chain, while maintaining updates, concurrency, caching & deduplication behind the scene for you. - [Setup](/react/getting-started/setup.md): This walks you through the process of creating a simple ReactiveDOT application. ### guides - [Advanced async handling](/react/guides/async.md): ReactiveDOT provides flexible async handling patterns that work seamlessly with React 19's concurrent features. By default, all hooks suspend, but you can opt-out to gain fine-grained control over loading states and error handling. - [Bulk refresh](/react/guides/bulk-refresh.md): Sometimes you need to refresh multiple queries at once based on certain criteria. The store provides methods to invalidate queries in bulk using a filter function. - [FAQ](/react/guides/faq.md) - [Incremental loading](/react/guides/incremental-loading.md): defer - [Multichain](/react/guides/multichain.md): Setup - [Number utility](/react/guides/number-utility.md): Denominated number - [Query performance](/react/guides/performance.md): All query hooks in ReactiveDOT create subscriptions to the underlying data sources. These subscriptions ensure that your components always reflect the latest data changes. However, it's important to manage these subscriptions effectively to avoid performance issues. - [Using Polkadot-API (PAPI)](/react/guides/using-papi.md): ReactiveDOT is designed as a convenient layer over PAPI for enhanced developer quality of life. For more advanced use cases and data manipulation, it's recommended to use PAPI directly. You can access PAPI APIs through two hooks: useClient and useTypedApi. ### smart-contract - [Ink!](/react/smart-contract/ink.md): ReactiveDOT works with Ink! contracts on chains with PolkaVM support, such as Polkadot Asset Hub. - [Solidity](/react/smart-contract/solidity.md): ReactiveDOT works with Solidity contracts on chains with PolkaVM support, such as Polkadot Asset Hub. ## vue ### api - [@reactive-dot/core](/vue/api/core.md): Modules - [index](/vue/api/core/index.md): Classes - [BaseError](/vue/api/core/index/classes/BaseError.md): Defined in1 - [MutationError](/vue/api/core/index/classes/MutationError.md): Defined in11 - [Query](/vue/api/core/index/classes/Query.md): Defined in269 - [QueryError](/vue/api/core/index/classes/QueryError.md): Defined in9 - [Storage](/vue/api/core/index/classes/Storage.md): Defined in8 - [defineConfig()](/vue/api/core/index/functions/defineConfig.md): Defined in36 - [defineContract()](/vue/api/core/index/functions/defineContract.md): Call Signature - [unsafeDescriptor()](/vue/api/core/index/functions/unsafeDescriptor.md): Defined in23 - [whenAccountsChanged()](/vue/api/core/index/functions/whenAccountsChanged.md): Defined in17 - [whenClientChanged()](/vue/api/core/index/functions/whenClientChanged.md): Defined in13 - [whenConnectedWalletsChanged()](/vue/api/core/index/functions/whenConnectedWalletsChanged.md): Defined in12 - [whenWalletsChanged()](/vue/api/core/index/functions/whenWalletsChanged.md): Defined in11 - [Register](/vue/api/core/index/interfaces/Register.md): Defined in4 - [Address](/vue/api/core/index/type-aliases/Address.md): Defined in4 - [AsyncValue](/vue/api/core/index/type-aliases/AsyncValue.md): Defined in3 - [ChainConfig](/vue/api/core/index/type-aliases/ChainConfig.md): Defined in8 - [ChainId](/vue/api/core/index/type-aliases/ChainId.md): Defined in15 - [Config](/vue/api/core/index/type-aliases/Config.md): Defined in13 - [idle](/vue/api/core/index/variables/idle.md): Defined in1 - [pending](/vue/api/core/index/variables/pending.md): Defined in3 - [ReactiveDotError](/vue/api/core/index/variables/ReactiveDotError.md): Defined in16 - [providers/light-client](/vue/api/core/providers/light-client.md): Functions - [createLightClientProvider()](/vue/api/core/providers/light-client/functions/createLightClientProvider.md): Defined in43 - [wallets](/vue/api/core/wallets.md): Classes - [DeepLinkWallet](/vue/api/core/wallets/classes/DeepLinkWallet.md): Defined in9 - [InjectedWallet](/vue/api/core/wallets/classes/InjectedWallet.md): Defined in9 - [InjectedWalletProvider](/vue/api/core/wallets/classes/InjectedWalletProvider.md): Defined in4 - [LocalWallet](/vue/api/core/wallets/classes/LocalWallet.md): Defined in22 - [Wallet](/vue/api/core/wallets/classes/Wallet.md): Defined in10 - [WalletProvider](/vue/api/core/wallets/classes/WalletProvider.md): Defined in4 - [initializeWallets()](/vue/api/core/wallets/functions/initializeWallets.md): Defined in5 - [PolkadotAccount](/vue/api/core/wallets/type-aliases/PolkadotAccount.md): Defined in25 - [PolkadotSignerAccount](/vue/api/core/wallets/type-aliases/PolkadotSignerAccount.md): Defined in19 - [WalletAccount](/vue/api/core/wallets/type-aliases/WalletAccount.md): Defined in30 - [WalletOptions](/vue/api/core/wallets/type-aliases/WalletOptions.md): Defined in6 - [@reactive-dot/utils](/vue/api/utils.md): Classes - [DenominatedNumber](/vue/api/utils/classes/DenominatedNumber.md): Defined in1 - [BigIntMath](/vue/api/utils/variables/BigIntMath.md): Defined in1 - [@reactive-dot/vue](/vue/api/vue.md): Variables - [provideChain()](/vue/api/vue/functions/provideChain.md): Defined in5 - [provideSigner()](/vue/api/vue/functions/provideSigner.md): Defined in5 - [useAccounts()](/vue/api/vue/functions/useAccounts.md): Defined in23 - [useBlock()](/vue/api/vue/functions/useBlock.md): Defined in17 - [useChainId()](/vue/api/vue/functions/useChainId.md): Defined in21 - [useChainIds()](/vue/api/vue/functions/useChainIds.md): Defined in12 - [useChainSpecData()](/vue/api/vue/functions/useChainSpecData.md): Defined in14 - [useClient()](/vue/api/vue/functions/useClient.md): Defined in15 - [useConfig()](/vue/api/vue/functions/useConfig.md): Defined in12 - [useConnectedWallets()](/vue/api/vue/functions/useConnectedWallets.md): Defined in29 - [useContractMutation()](/vue/api/vue/functions/useContractMutation.md): Defined in31 - [useMutation()](/vue/api/vue/functions/useMutation.md): Defined in27 - [useNativeToken()](/vue/api/vue/functions/useNativeToken.md): Defined in15 - [useQuery()](/vue/api/vue/functions/useQuery.md): Defined in55 - [useQueryErrorResetter()](/vue/api/vue/functions/useQueryErrorResetter.md): Defined in9 - [useSigner()](/vue/api/vue/functions/useSigner.md): Defined in9 - [useSpendableBalance()](/vue/api/vue/functions/useSpendableBalance.md): Call Signature - [useSpendableBalances()](/vue/api/vue/functions/useSpendableBalances.md): Defined in119 - [useStore()](/vue/api/vue/functions/useStore.md): Defined in17 - [useTypedApi()](/vue/api/vue/functions/useTypedApi.md): Defined in18 - [useWalletConnector()](/vue/api/vue/functions/useWalletConnector.md): Defined in12 - [useWalletDisconnector()](/vue/api/vue/functions/useWalletDisconnector.md): Defined in13 - [useWallets()](/vue/api/vue/functions/useWallets.md): Defined in11 - [watchContractEvent()](/vue/api/vue/functions/watchContractEvent.md): Defined in21 - [watchMutation()](/vue/api/vue/functions/watchMutation.md): Defined in10 - [ReactiveDotPlugin](/vue/api/vue/variables/ReactiveDotPlugin.md): Defined in6 - [watchMutationEffect](/vue/api/vue/variables/watchMutationEffect.md): Defined in21 ### category - [API](/vue/category/api.md) - [Getting started](/vue/category/getting-started.md) - [Guides](/vue/category/guides.md) - [Smart contracts](/vue/category/smart-contracts.md) ### getting-started - [Connect wallets](/vue/getting-started/connect-wallets.md): Wallets & accounts connection can by managed via useWallets, useConnectedWallets & useAccounts composables. - [Mutation](/vue/getting-started/mutation.md): The useMutation composable allow you to sign & submit transaction to a chain. - [Query](/vue/getting-started/query.md): The useQuery composable allow you to read any data from chain, while maintaining updates, concurrency, caching & deduplication behind the scene for you. - [Setup](/vue/getting-started/setup.md): This walks you through the process of creating a simple ReactiveDOT application. ### guides - [Bulk refresh](/vue/guides/bulk-refresh.md): Sometimes you need to refresh multiple queries at once based on certain criteria. The store provides methods to invalidate queries in bulk using a filter function. - [FAQ](/vue/guides/faq.md) - [Incremental loading](/vue/guides/incremental-loading.md): defer - [Multichain](/vue/guides/multichain.md): Setup - [Number utility](/vue/guides/number-utility.md): Denominated number - [Using Polkadot-API (PAPI)](/vue/guides/using-papi.md): ReactiveDOT is designed as a convenient layer over PAPI for enhanced developer quality of life. For more advanced use cases and data manipulation, it's recommended to use PAPI directly. You can access PAPI APIs through two composables: useClient and useTypedApi. ### smart-contract - [Ink!](/vue/smart-contract/ink.md): ReactiveDOT works with Ink! contracts on chains with PolkaVM support, such as Polkadot Asset Hub. - [Solidity](/vue/smart-contract/solidity.md): ReactiveDOT works with Solidity contracts on chains with PolkaVM support, such as Polkadot Asset Hub.