Releases: reown-com/appkit
@reown/[email protected]
Patch Changes
-
#3523
427dde3
Thanks @zoruka! - Abstracts Connectors management in Solana Adapter -
#3648
225aba4
Thanks @tomiir! - Fixes issue where mobile view would show auth login options without adapters -
#3589
6932fbf
Thanks @enesozturk! - Refactors network switching when trying to use auth connector but active network is not supported by auth connector -
#3589
6932fbf
Thanks @enesozturk! - Refactors connector rendering logics when add/remove adapters for email/social login -
#3638
86e7510
Thanks @zoruka! - Fix condition for unsupported chain forchainChanged
event on wallet connect event -
#3637
40ef5c7
Thanks @zoruka! - Add default value if namespace is not available on upa getAccounts -
#3721
eade9f2
Thanks @enesozturk! - Fixes listeningChainController.state.noAdapters
andOptionsController.state.features
while enable/disable auth options dynamically -
#3639
489de7c
Thanks @zoruka! - Fix BitcoinAdapterswitchNetwork
function execution -
#3621
7b4f03f
Thanks @tomiir! - Fetches native balance when on testnets -
#3691
4075214
Thanks @magiziz! - Expanded more views in the modal open function to include Swap, Send, Wallet Is a Wallet, Wallet Is a Network and All Wallets screens.Example usage
import { createAppKit } from '@reown/appkit' const VIEWS = [ { label: 'Open "On-Ramp" modal view', view: 'Swap' }, { label: 'Open "Send" modal view', view: 'WalletSend' }, { label: 'Open "What Is a Wallet?" modal view', view: 'WhatIsAWallet' }, { label: 'Open "What Is a Network?" modal view', view: 'WhatIsANetwork' }, { label: 'Open "All Wallets" modal view', view: 'AllWallets' } ] as const const modal = createAppKit({ adapters: [], // Add your adapters here networks: [], // Add your networks here projectId: 'YOUR_PROJECT_ID' }) export function YourApp() { return ( <> {VIEWS.map(({ label, view }) => ( <button key={view} onClick={() => modal.open({ view })}> {label} </button> ))} </> ) }
-
#3648
225aba4
Thanks @tomiir! - Fixes issue where opening the modal without adapters would open regular connect WC screen -
#3717
72b14ce
Thanks @zoruka! - Update @WalletConnect packages to latest version. -
#3640
2935978
Thanks @magiziz! - AddedcreateAppKitWalletButton
function to@reown/appkit-wallet-button
package for easier implementation of the Wallet Button feature without relying solely on hooks.Example usage
import { useEffect, useState } from 'react' import { createAppKitWalletButton } from '@reown/appkit-wallet-button' const appKitWalletButton = createAppKitWalletButton() export function YourApp() { const [isReady, setIsReady] = useState(false) useEffect(() => { // Check if Wallet Buttons are ready if (appKitWalletButton.isReady()) { setIsReady(true) } else { // Subscribe to ready state changes appKitWalletButton.subscribeIsReady(state => { setIsReady(state.isReady) }) } }, [appKitWalletButton]) return ( <> <button onClick={() => appKitWalletButton.connect('walletConnect')} disabled={!isReady}> Open QR modal </button> <button onClick={() => appKitWalletButton.connect('metamask')} disabled={!isReady}> Connect to MetaMask </button> <button onClick={() => appKitWalletButton.connect('google')} disabled={!isReady}> Connect to Google </button> </> ) }
-
#3681
20c608f
Thanks @enesozturk! - Fixes redundant goBack call when switching to another namespace -
#3611
6431f0c
Thanks @tomiir! - Fixes issue where appKit.getProvider() would not return correct provider. -
#3716
59f57f3
Thanks @tomiir! - Fetches native balance when API does not support it -
#3679
3305586
Thanks @enesozturk! - Refactors AppKit client to handle syncBalance call for unsupported networks as expected -
#3607
a66de04
Thanks @zoruka! - Add defaultAccountTypes option for AppKit initialization. -
#3682
1ea9f7d
Thanks @tomiir! - Prevents calls to Blockchain Api that would fail due to lack of support. Initialize supported list on AppKit initialization' -
#3576
68bdd14
Thanks @magiziz! - Added a loading indicator to the account button component when the balance has not been fetched. -
#3635
190fdb9
Thanks @enesozturk! - Refactors connectExternal to call switch network if wallet's active chain is not in requested networks list -
#3663
018c6f1
Thanks @zoruka! - Remove all onUri callback drilling for all walletConnectConnect methods in favor of a single call when initializing the UniversalProvider -
#3672
98ad777
Thanks @magiziz! - Fixed an issue wherewalletProvider
from theuseAppKitProvider
hook wasundefined
when the wallet was connected. This issue occurred only when using wagmi adapter. -
#3670
25a97c6
Thanks @tomiir! - Fixes issue where 1CA session would not be found because of non-cased addresses mismatching.' -
#3715
3accd43
Thanks @magiziz! - Fixed an issue where wagmi connectors were not appearing in the connect modal -
#3619
7296a32
Thanks @zoruka! - Refactor to add WalletConnectConnector as extensible class and remove replicated code around adapters
@reown/[email protected]
Patch Changes
-
#3523
427dde3
Thanks @zoruka! - Abstracts Connectors management in Solana Adapter -
#3648
225aba4
Thanks @tomiir! - Fixes issue where mobile view would show auth login options without adapters -
#3589
6932fbf
Thanks @enesozturk! - Refactors network switching when trying to use auth connector but active network is not supported by auth connector -
#3589
6932fbf
Thanks @enesozturk! - Refactors connector rendering logics when add/remove adapters for email/social login -
#3638
86e7510
Thanks @zoruka! - Fix condition for unsupported chain forchainChanged
event on wallet connect event -
#3637
40ef5c7
Thanks @zoruka! - Add default value if namespace is not available on upa getAccounts -
#3721
eade9f2
Thanks @enesozturk! - Fixes listeningChainController.state.noAdapters
andOptionsController.state.features
while enable/disable auth options dynamically -
#3639
489de7c
Thanks @zoruka! - Fix BitcoinAdapterswitchNetwork
function execution -
#3621
7b4f03f
Thanks @tomiir! - Fetches native balance when on testnets -
#3691
4075214
Thanks @magiziz! - Expanded more views in the modal open function to include Swap, Send, Wallet Is a Wallet, Wallet Is a Network and All Wallets screens.Example usage
import { createAppKit } from '@reown/appkit' const VIEWS = [ { label: 'Open "On-Ramp" modal view', view: 'Swap' }, { label: 'Open "Send" modal view', view: 'WalletSend' }, { label: 'Open "What Is a Wallet?" modal view', view: 'WhatIsAWallet' }, { label: 'Open "What Is a Network?" modal view', view: 'WhatIsANetwork' }, { label: 'Open "All Wallets" modal view', view: 'AllWallets' } ] as const const modal = createAppKit({ adapters: [], // Add your adapters here networks: [], // Add your networks here projectId: 'YOUR_PROJECT_ID' }) export function YourApp() { return ( <> {VIEWS.map(({ label, view }) => ( <button key={view} onClick={() => modal.open({ view })}> {label} </button> ))} </> ) }
-
#3648
225aba4
Thanks @tomiir! - Fixes issue where opening the modal without adapters would open regular connect WC screen -
#3717
72b14ce
Thanks @zoruka! - Update @WalletConnect packages to latest version. -
#3640
2935978
Thanks @magiziz! - AddedcreateAppKitWalletButton
function to@reown/appkit-wallet-button
package for easier implementation of the Wallet Button feature without relying solely on hooks.Example usage
import { useEffect, useState } from 'react' import { createAppKitWalletButton } from '@reown/appkit-wallet-button' const appKitWalletButton = createAppKitWalletButton() export function YourApp() { const [isReady, setIsReady] = useState(false) useEffect(() => { // Check if Wallet Buttons are ready if (appKitWalletButton.isReady()) { setIsReady(true) } else { // Subscribe to ready state changes appKitWalletButton.subscribeIsReady(state => { setIsReady(state.isReady) }) } }, [appKitWalletButton]) return ( <> <button onClick={() => appKitWalletButton.connect('walletConnect')} disabled={!isReady}> Open QR modal </button> <button onClick={() => appKitWalletButton.connect('metamask')} disabled={!isReady}> Connect to MetaMask </button> <button onClick={() => appKitWalletButton.connect('google')} disabled={!isReady}> Connect to Google </button> </> ) }
-
#3681
20c608f
Thanks @enesozturk! - Fixes redundant goBack call when switching to another namespace -
#3611
6431f0c
Thanks @tomiir! - Fixes issue where appKit.getProvider() would not return correct provider. -
#3716
59f57f3
Thanks @tomiir! - Fetches native balance when API does not support it -
#3679
3305586
Thanks @enesozturk! - Refactors AppKit client to handle syncBalance call for unsupported networks as expected -
#3607
a66de04
Thanks @zoruka! - Add defaultAccountTypes option for AppKit initialization. -
#3682
1ea9f7d
Thanks @tomiir! - Prevents calls to Blockchain Api that would fail due to lack of support. Initialize supported list on AppKit initialization' -
#3576
68bdd14
Thanks @magiziz! - Added a loading indicator to the account button component when the balance has not been fetched. -
#3635
190fdb9
Thanks @enesozturk! - Refactors connectExternal to call switch network if wallet's active chain is not in requested networks list -
#3663
018c6f1
Thanks @zoruka! - Remove all onUri callback drilling for all walletConnectConnect methods in favor of a single call when initializing the UniversalProvider -
#3672
98ad777
Thanks @magiziz! - Fixed an issue wherewalletProvider
from theuseAppKitProvider
hook wasundefined
when the wallet was connected. This issue occurred only when using wagmi adapter. -
#3670
25a97c6
Thanks @tomiir! - Fixes issue where 1CA session would not be found because of non-cased addresses mismatching.' -
#3715
3accd43
Thanks @magiziz! - Fixed an issue where wagmi connectors were not appearing in the connect modal -
#3619
7296a32
Thanks @zoruka! - Refactor to add WalletConnectConnector as extensible class and remove replicated code around adapters
@reown/[email protected]
Patch Changes
-
#3523
427dde3
Thanks @zoruka! - Abstracts Connectors management in Solana Adapter -
#3648
225aba4
Thanks @tomiir! - Fixes issue where mobile view would show auth login options without adapters -
#3589
6932fbf
Thanks @enesozturk! - Refactors network switching when trying to use auth connector but active network is not supported by auth connector -
#3589
6932fbf
Thanks @enesozturk! - Refactors connector rendering logics when add/remove adapters for email/social login -
#3638
86e7510
Thanks @zoruka! - Fix condition for unsupported chain forchainChanged
event on wallet connect event -
#3637
40ef5c7
Thanks @zoruka! - Add default value if namespace is not available on upa getAccounts -
#3721
eade9f2
Thanks @enesozturk! - Fixes listeningChainController.state.noAdapters
andOptionsController.state.features
while enable/disable auth options dynamically -
#3639
489de7c
Thanks @zoruka! - Fix BitcoinAdapterswitchNetwork
function execution -
#3621
7b4f03f
Thanks @tomiir! - Fetches native balance when on testnets -
#3691
4075214
Thanks @magiziz! - Expanded more views in the modal open function to include Swap, Send, Wallet Is a Wallet, Wallet Is a Network and All Wallets screens.Example usage
import { createAppKit } from '@reown/appkit' const VIEWS = [ { label: 'Open "On-Ramp" modal view', view: 'Swap' }, { label: 'Open "Send" modal view', view: 'WalletSend' }, { label: 'Open "What Is a Wallet?" modal view', view: 'WhatIsAWallet' }, { label: 'Open "What Is a Network?" modal view', view: 'WhatIsANetwork' }, { label: 'Open "All Wallets" modal view', view: 'AllWallets' } ] as const const modal = createAppKit({ adapters: [], // Add your adapters here networks: [], // Add your networks here projectId: 'YOUR_PROJECT_ID' }) export function YourApp() { return ( <> {VIEWS.map(({ label, view }) => ( <button key={view} onClick={() => modal.open({ view })}> {label} </button> ))} </> ) }
-
#3648
225aba4
Thanks @tomiir! - Fixes issue where opening the modal without adapters would open regular connect WC screen -
#3717
72b14ce
Thanks @zoruka! - Update @WalletConnect packages to latest version. -
#3640
2935978
Thanks @magiziz! - AddedcreateAppKitWalletButton
function to@reown/appkit-wallet-button
package for easier implementation of the Wallet Button feature without relying solely on hooks.Example usage
import { useEffect, useState } from 'react' import { createAppKitWalletButton } from '@reown/appkit-wallet-button' const appKitWalletButton = createAppKitWalletButton() export function YourApp() { const [isReady, setIsReady] = useState(false) useEffect(() => { // Check if Wallet Buttons are ready if (appKitWalletButton.isReady()) { setIsReady(true) } else { // Subscribe to ready state changes appKitWalletButton.subscribeIsReady(state => { setIsReady(state.isReady) }) } }, [appKitWalletButton]) return ( <> <button onClick={() => appKitWalletButton.connect('walletConnect')} disabled={!isReady}> Open QR modal </button> <button onClick={() => appKitWalletButton.connect('metamask')} disabled={!isReady}> Connect to MetaMask </button> <button onClick={() => appKitWalletButton.connect('google')} disabled={!isReady}> Connect to Google </button> </> ) }
-
#3681
20c608f
Thanks @enesozturk! - Fixes redundant goBack call when switching to another namespace -
#3611
6431f0c
Thanks @tomiir! - Fixes issue where appKit.getProvider() would not return correct provider. -
#3716
59f57f3
Thanks @tomiir! - Fetches native balance when API does not support it -
#3679
3305586
Thanks @enesozturk! - Refactors AppKit client to handle syncBalance call for unsupported networks as expected -
#3607
a66de04
Thanks @zoruka! - Add defaultAccountTypes option for AppKit initialization. -
#3682
1ea9f7d
Thanks @tomiir! - Prevents calls to Blockchain Api that would fail due to lack of support. Initialize supported list on AppKit initialization' -
#3576
68bdd14
Thanks @magiziz! - Added a loading indicator to the account button component when the balance has not been fetched. -
#3635
190fdb9
Thanks @enesozturk! - Refactors connectExternal to call switch network if wallet's active chain is not in requested networks list -
#3663
018c6f1
Thanks @zoruka! - Remove all onUri callback drilling for all walletConnectConnect methods in favor of a single call when initializing the UniversalProvider -
#3672
98ad777
Thanks @magiziz! - Fixed an issue wherewalletProvider
from theuseAppKitProvider
hook wasundefined
when the wallet was connected. This issue occurred only when using wagmi adapter. -
#3670
25a97c6
Thanks @tomiir! - Fixes issue where 1CA session would not be found because of non-cased addresses mismatching.' -
#3715
3accd43
Thanks @magiziz! - Fixed an issue where wagmi connectors were not appearing in the connect modal -
#3619
7296a32
Thanks @zoruka! - Refactor to add WalletConnectConnector as extensible class and remove replicated code around adapters
@reown/[email protected]
Patch Changes
-
#3523
427dde3
Thanks @zoruka! - Abstracts Connectors management in Solana Adapter -
#3648
225aba4
Thanks @tomiir! - Fixes issue where mobile view would show auth login options without adapters -
#3589
6932fbf
Thanks @enesozturk! - Refactors network switching when trying to use auth connector but active network is not supported by auth connector -
#3589
6932fbf
Thanks @enesozturk! - Refactors connector rendering logics when add/remove adapters for email/social login -
#3638
86e7510
Thanks @zoruka! - Fix condition for unsupported chain forchainChanged
event on wallet connect event -
#3637
40ef5c7
Thanks @zoruka! - Add default value if namespace is not available on upa getAccounts -
#3721
eade9f2
Thanks @enesozturk! - Fixes listeningChainController.state.noAdapters
andOptionsController.state.features
while enable/disable auth options dynamically -
#3639
489de7c
Thanks @zoruka! - Fix BitcoinAdapterswitchNetwork
function execution -
#3621
7b4f03f
Thanks @tomiir! - Fetches native balance when on testnets -
#3691
4075214
Thanks @magiziz! - Expanded more views in the modal open function to include Swap, Send, Wallet Is a Wallet, Wallet Is a Network and All Wallets screens.Example usage
import { createAppKit } from '@reown/appkit' const VIEWS = [ { label: 'Open "On-Ramp" modal view', view: 'Swap' }, { label: 'Open "Send" modal view', view: 'WalletSend' }, { label: 'Open "What Is a Wallet?" modal view', view: 'WhatIsAWallet' }, { label: 'Open "What Is a Network?" modal view', view: 'WhatIsANetwork' }, { label: 'Open "All Wallets" modal view', view: 'AllWallets' } ] as const const modal = createAppKit({ adapters: [], // Add your adapters here networks: [], // Add your networks here projectId: 'YOUR_PROJECT_ID' }) export function YourApp() { return ( <> {VIEWS.map(({ label, view }) => ( <button key={view} onClick={() => modal.open({ view })}> {label} </button> ))} </> ) }
-
#3648
225aba4
Thanks @tomiir! - Fixes issue where opening the modal without adapters would open regular connect WC screen -
#3717
72b14ce
Thanks @zoruka! - Update @WalletConnect packages to latest version. -
#3640
2935978
Thanks @magiziz! - AddedcreateAppKitWalletButton
function to@reown/appkit-wallet-button
package for easier implementation of the Wallet Button feature without relying solely on hooks.Example usage
import { useEffect, useState } from 'react' import { createAppKitWalletButton } from '@reown/appkit-wallet-button' const appKitWalletButton = createAppKitWalletButton() export function YourApp() { const [isReady, setIsReady] = useState(false) useEffect(() => { // Check if Wallet Buttons are ready if (appKitWalletButton.isReady()) { setIsReady(true) } else { // Subscribe to ready state changes appKitWalletButton.subscribeIsReady(state => { setIsReady(state.isReady) }) } }, [appKitWalletButton]) return ( <> <button onClick={() => appKitWalletButton.connect('walletConnect')} disabled={!isReady}> Open QR modal </button> <button onClick={() => appKitWalletButton.connect('metamask')} disabled={!isReady}> Connect to MetaMask </button> <button onClick={() => appKitWalletButton.connect('google')} disabled={!isReady}> Connect to Google </button> </> ) }
-
#3681
20c608f
Thanks @enesozturk! - Fixes redundant goBack call when switching to another namespace -
#3611
6431f0c
Thanks @tomiir! - Fixes issue where appKit.getProvider() would not return correct provider. -
#3716
59f57f3
Thanks @tomiir! - Fetches native balance when API does not support it -
#3679
3305586
Thanks @enesozturk! - Refactors AppKit client to handle syncBalance call for unsupported networks as expected -
#3607
a66de04
Thanks @zoruka! - Add defaultAccountTypes option for AppKit initialization. -
#3682
1ea9f7d
Thanks @tomiir! - Prevents calls to Blockchain Api that would fail due to lack of support. Initialize supported list on AppKit initialization' -
#3576
68bdd14
Thanks @magiziz! - Added a loading indicator to the account button component when the balance has not been fetched. -
#3635
190fdb9
Thanks @enesozturk! - Refactors connectExternal to call switch network if wallet's active chain is not in requested networks list -
#3663
018c6f1
Thanks @zoruka! - Remove all onUri callback drilling for all walletConnectConnect methods in favor of a single call when initializing the UniversalProvider -
#3672
98ad777
Thanks @magiziz! - Fixed an issue wherewalletProvider
from theuseAppKitProvider
hook wasundefined
when the wallet was connected. This issue occurred only when using wagmi adapter. -
#3670
25a97c6
Thanks @tomiir! - Fixes issue where 1CA session would not be found because of non-cased addresses mismatching.' -
#3715
3accd43
Thanks @magiziz! - Fixed an issue where wagmi connectors were not appearing in the connect modal -
#3619
7296a32
Thanks @zoruka! - Refactor to add WalletConnectConnector as extensible class and remove replicated code around adapters
@reown/[email protected]
Patch Changes
-
#3523
427dde3
Thanks @zoruka! - Abstracts Connectors management in Solana Adapter -
#3648
225aba4
Thanks @tomiir! - Fixes issue where mobile view would show auth login options without adapters -
#3589
6932fbf
Thanks @enesozturk! - Refactors network switching when trying to use auth connector but active network is not supported by auth connector -
#3589
6932fbf
Thanks @enesozturk! - Refactors connector rendering logics when add/remove adapters for email/social login -
#3638
86e7510
Thanks @zoruka! - Fix condition for unsupported chain forchainChanged
event on wallet connect event -
#3637
40ef5c7
Thanks @zoruka! - Add default value if namespace is not available on upa getAccounts -
#3721
eade9f2
Thanks @enesozturk! - Fixes listeningChainController.state.noAdapters
andOptionsController.state.features
while enable/disable auth options dynamically -
#3639
489de7c
Thanks @zoruka! - Fix BitcoinAdapterswitchNetwork
function execution -
#3621
7b4f03f
Thanks @tomiir! - Fetches native balance when on testnets -
#3691
4075214
Thanks @magiziz! - Expanded more views in the modal open function to include Swap, Send, Wallet Is a Wallet, Wallet Is a Network and All Wallets screens.Example usage
import { createAppKit } from '@reown/appkit' const VIEWS = [ { label: 'Open "On-Ramp" modal view', view: 'Swap' }, { label: 'Open "Send" modal view', view: 'WalletSend' }, { label: 'Open "What Is a Wallet?" modal view', view: 'WhatIsAWallet' }, { label: 'Open "What Is a Network?" modal view', view: 'WhatIsANetwork' }, { label: 'Open "All Wallets" modal view', view: 'AllWallets' } ] as const const modal = createAppKit({ adapters: [], // Add your adapters here networks: [], // Add your networks here projectId: 'YOUR_PROJECT_ID' }) export function YourApp() { return ( <> {VIEWS.map(({ label, view }) => ( <button key={view} onClick={() => modal.open({ view })}> {label} </button> ))} </> ) }
-
#3648
225aba4
Thanks @tomiir! - Fixes issue where opening the modal without adapters would open regular connect WC screen -
#3717
72b14ce
Thanks @zoruka! - Update @WalletConnect packages to latest version. -
#3640
2935978
Thanks @magiziz! - AddedcreateAppKitWalletButton
function to@reown/appkit-wallet-button
package for easier implementation of the Wallet Button feature without relying solely on hooks.Example usage
import { useEffect, useState } from 'react' import { createAppKitWalletButton } from '@reown/appkit-wallet-button' const appKitWalletButton = createAppKitWalletButton() export function YourApp() { const [isReady, setIsReady] = useState(false) useEffect(() => { // Check if Wallet Buttons are ready if (appKitWalletButton.isReady()) { setIsReady(true) } else { // Subscribe to ready state changes appKitWalletButton.subscribeIsReady(state => { setIsReady(state.isReady) }) } }, [appKitWalletButton]) return ( <> <button onClick={() => appKitWalletButton.connect('walletConnect')} disabled={!isReady}> Open QR modal </button> <button onClick={() => appKitWalletButton.connect('metamask')} disabled={!isReady}> Connect to MetaMask </button> <button onClick={() => appKitWalletButton.connect('google')} disabled={!isReady}> Connect to Google </button> </> ) }
-
#3681
20c608f
Thanks @enesozturk! - Fixes redundant goBack call when switching to another namespace -
#3611
6431f0c
Thanks @tomiir! - Fixes issue where appKit.getProvider() would not return correct provider. -
#3716
59f57f3
Thanks @tomiir! - Fetches native balance when API does not support it -
#3679
3305586
Thanks @enesozturk! - Refactors AppKit client to handle syncBalance call for unsupported networks as expected -
#3607
a66de04
Thanks @zoruka! - Add defaultAccountTypes option for AppKit initialization. -
#3682
1ea9f7d
Thanks @tomiir! - Prevents calls to Blockchain Api that would fail due to lack of support. Initialize supported list on AppKit initialization' -
#3576
68bdd14
Thanks @magiziz! - Added a loading indicator to the account button component when the balance has not been fetched. -
#3635
190fdb9
Thanks @enesozturk! - Refactors connectExternal to call switch network if wallet's active chain is not in requested networks list -
#3663
018c6f1
Thanks @zoruka! - Remove all onUri callback drilling for all walletConnectConnect methods in favor of a single call when initializing the UniversalProvider -
#3672
98ad777
Thanks @magiziz! - Fixed an issue wherewalletProvider
from theuseAppKitProvider
hook wasundefined
when the wallet was connected. This issue occurred only when using wagmi adapter. -
#3670
25a97c6
Thanks @tomiir! - Fixes issue where 1CA session would not be found because of non-cased addresses mismatching.' -
#3715
3accd43
Thanks @magiziz! - Fixed an issue where wagmi connectors were not appearing in the connect modal -
#3619
7296a32
Thanks @zoruka! - Refactor to add WalletConnectConnector as extensible class and remove replicated code around adapters
@reown/[email protected]
Patch Changes
-
#3523
427dde3
Thanks @zoruka! - Abstracts Connectors management in Solana Adapter -
#3648
225aba4
Thanks @tomiir! - Fixes issue where mobile view would show auth login options without adapters -
#3589
6932fbf
Thanks @enesozturk! - Refactors network switching when trying to use auth connector but active network is not supported by auth connector -
#3589
6932fbf
Thanks @enesozturk! - Refactors connector rendering logics when add/remove adapters for email/social login -
#3638
86e7510
Thanks @zoruka! - Fix condition for unsupported chain forchainChanged
event on wallet connect event -
#3637
40ef5c7
Thanks @zoruka! - Add default value if namespace is not available on upa getAccounts -
#3721
eade9f2
Thanks @enesozturk! - Fixes listeningChainController.state.noAdapters
andOptionsController.state.features
while enable/disable auth options dynamically -
#3639
489de7c
Thanks @zoruka! - Fix BitcoinAdapterswitchNetwork
function execution -
#3621
7b4f03f
Thanks @tomiir! - Fetches native balance when on testnets -
#3691
4075214
Thanks @magiziz! - Expanded more views in the modal open function to include Swap, Send, Wallet Is a Wallet, Wallet Is a Network and All Wallets screens.Example usage
import { createAppKit } from '@reown/appkit' const VIEWS = [ { label: 'Open "On-Ramp" modal view', view: 'Swap' }, { label: 'Open "Send" modal view', view: 'WalletSend' }, { label: 'Open "What Is a Wallet?" modal view', view: 'WhatIsAWallet' }, { label: 'Open "What Is a Network?" modal view', view: 'WhatIsANetwork' }, { label: 'Open "All Wallets" modal view', view: 'AllWallets' } ] as const const modal = createAppKit({ adapters: [], // Add your adapters here networks: [], // Add your networks here projectId: 'YOUR_PROJECT_ID' }) export function YourApp() { return ( <> {VIEWS.map(({ label, view }) => ( <button key={view} onClick={() => modal.open({ view })}> {label} </button> ))} </> ) }
-
#3648
225aba4
Thanks @tomiir! - Fixes issue where opening the modal without adapters would open regular connect WC screen -
#3717
72b14ce
Thanks @zoruka! - Update @WalletConnect packages to latest version. -
#3640
2935978
Thanks @magiziz! - AddedcreateAppKitWalletButton
function to@reown/appkit-wallet-button
package for easier implementation of the Wallet Button feature without relying solely on hooks.Example usage
import { useEffect, useState } from 'react' import { createAppKitWalletButton } from '@reown/appkit-wallet-button' const appKitWalletButton = createAppKitWalletButton() export function YourApp() { const [isReady, setIsReady] = useState(false) useEffect(() => { // Check if Wallet Buttons are ready if (appKitWalletButton.isReady()) { setIsReady(true) } else { // Subscribe to ready state changes appKitWalletButton.subscribeIsReady(state => { setIsReady(state.isReady) }) } }, [appKitWalletButton]) return ( <> <button onClick={() => appKitWalletButton.connect('walletConnect')} disabled={!isReady}> Open QR modal </button> <button onClick={() => appKitWalletButton.connect('metamask')} disabled={!isReady}> Connect to MetaMask </button> <button onClick={() => appKitWalletButton.connect('google')} disabled={!isReady}> Connect to Google </button> </> ) }
-
#3681
20c608f
Thanks @enesozturk! - Fixes redundant goBack call when switching to another namespace -
#3611
6431f0c
Thanks @tomiir! - Fixes issue where appKit.getProvider() would not return correct provider. -
#3716
59f57f3
Thanks @tomiir! - Fetches native balance when API does not support it -
#3679
3305586
Thanks @enesozturk! - Refactors AppKit client to handle syncBalance call for unsupported networks as expected -
#3607
a66de04
Thanks @zoruka! - Add defaultAccountTypes option for AppKit initialization. -
#3682
1ea9f7d
Thanks @tomiir! - Prevents calls to Blockchain Api that would fail due to lack of support. Initialize supported list on AppKit initialization' -
#3576
68bdd14
Thanks @magiziz! - Added a loading indicator to the account button component when the balance has not been fetched. -
#3635
190fdb9
Thanks @enesozturk! - Refactors connectExternal to call switch network if wallet's active chain is not in requested networks list -
#3663
018c6f1
Thanks @zoruka! - Remove all onUri callback drilling for all walletConnectConnect methods in favor of a single call when initializing the UniversalProvider -
#3672
98ad777
Thanks @magiziz! - Fixed an issue wherewalletProvider
from theuseAppKitProvider
hook wasundefined
when the wallet was connected. This issue occurred only when using wagmi adapter. -
#3670
25a97c6
Thanks @tomiir! - Fixes issue where 1CA session would not be found because of non-cased addresses mismatching.' -
#3715
3accd43
Thanks @magiziz! - Fixed an issue where wagmi connectors were not appearing in the connect modal -
#3619
7296a32
Thanks @zoruka! - Refactor to add WalletConnectConnector as extensible class and remove replicated code around adapters
@reown/[email protected]
Patch Changes
-
#3523
427dde3
Thanks @zoruka! - Abstracts Connectors management in Solana Adapter -
#3648
225aba4
Thanks @tomiir! - Fixes issue where mobile view would show auth login options without adapters -
#3589
6932fbf
Thanks @enesozturk! - Refactors network switching when trying to use auth connector but active network is not supported by auth connector -
#3589
6932fbf
Thanks @enesozturk! - Refactors connector rendering logics when add/remove adapters for email/social login -
#3638
86e7510
Thanks @zoruka! - Fix condition for unsupported chain forchainChanged
event on wallet connect event -
#3637
40ef5c7
Thanks @zoruka! - Add default value if namespace is not available on upa getAccounts -
#3721
eade9f2
Thanks @enesozturk! - Fixes listeningChainController.state.noAdapters
andOptionsController.state.features
while enable/disable auth options dynamically -
#3639
489de7c
Thanks @zoruka! - Fix BitcoinAdapterswitchNetwork
function execution -
#3621
7b4f03f
Thanks @tomiir! - Fetches native balance when on testnets -
#3691
4075214
Thanks @magiziz! - Expanded more views in the modal open function to include Swap, Send, Wallet Is a Wallet, Wallet Is a Network and All Wallets screens.Example usage
import { createAppKit } from '@reown/appkit' const VIEWS = [ { label: 'Open "On-Ramp" modal view', view: 'Swap' }, { label: 'Open "Send" modal view', view: 'WalletSend' }, { label: 'Open "What Is a Wallet?" modal view', view: 'WhatIsAWallet' }, { label: 'Open "What Is a Network?" modal view', view: 'WhatIsANetwork' }, { label: 'Open "All Wallets" modal view', view: 'AllWallets' } ] as const const modal = createAppKit({ adapters: [], // Add your adapters here networks: [], // Add your networks here projectId: 'YOUR_PROJECT_ID' }) export function YourApp() { return ( <> {VIEWS.map(({ label, view }) => ( <button key={view} onClick={() => modal.open({ view })}> {label} </button> ))} </> ) }
-
#3648
225aba4
Thanks @tomiir! - Fixes issue where opening the modal without adapters would open regular connect WC screen -
#3717
72b14ce
Thanks @zoruka! - Update @WalletConnect packages to latest version. -
#3640
2935978
Thanks @magiziz! - AddedcreateAppKitWalletButton
function to@reown/appkit-wallet-button
package for easier implementation of the Wallet Button feature without relying solely on hooks.Example usage
import { useEffect, useState } from 'react' import { createAppKitWalletButton } from '@reown/appkit-wallet-button' const appKitWalletButton = createAppKitWalletButton() export function YourApp() { const [isReady, setIsReady] = useState(false) useEffect(() => { // Check if Wallet Buttons are ready if (appKitWalletButton.isReady()) { setIsReady(true) } else { // Subscribe to ready state changes appKitWalletButton.subscribeIsReady(state => { setIsReady(state.isReady) }) } }, [appKitWalletButton]) return ( <> <button onClick={() => appKitWalletButton.connect('walletConnect')} disabled={!isReady}> Open QR modal </button> <button onClick={() => appKitWalletButton.connect('metamask')} disabled={!isReady}> Connect to MetaMask </button> <button onClick={() => appKitWalletButton.connect('google')} disabled={!isReady}> Connect to Google </button> </> ) }
-
#3681
20c608f
Thanks @enesozturk! - Fixes redundant goBack call when switching to another namespace -
#3611
6431f0c
Thanks @tomiir! - Fixes issue where appKit.getProvider() would not return correct provider. -
#3716
59f57f3
Thanks @tomiir! - Fetches native balance when API does not support it -
#3679
3305586
Thanks @enesozturk! - Refactors AppKit client to handle syncBalance call for unsupported networks as expected -
#3607
a66de04
Thanks @zoruka! - Add defaultAccountTypes option for AppKit initialization. -
#3682
1ea9f7d
Thanks @tomiir! - Prevents calls to Blockchain Api that would fail due to lack of support. Initialize supported list on AppKit initialization' -
#3576
68bdd14
Thanks @magiziz! - Added a loading indicator to the account button component when the balance has not been fetched. -
#3635
190fdb9
Thanks @enesozturk! - Refactors connectExternal to call switch network if wallet's active chain is not in requested networks list -
#3663
018c6f1
Thanks @zoruka! - Remove all onUri callback drilling for all walletConnectConnect methods in favor of a single call when initializing the UniversalProvider -
#3672
98ad777
Thanks @magiziz! - Fixed an issue wherewalletProvider
from theuseAppKitProvider
hook wasundefined
when the wallet was connected. This issue occurred only when using wagmi adapter. -
#3670
25a97c6
Thanks @tomiir! - Fixes issue where 1CA session would not be found because of non-cased addresses mismatching.' -
#3715
3accd43
Thanks @magiziz! - Fixed an issue where wagmi connectors were not appearing in the connect modal -
#3619
7296a32
Thanks @zoruka! - Refactor to add WalletConnectConnector as extensible class and remove replicated code around adapters
@reown/[email protected]
Patch Changes
-
#3523
427dde3
Thanks @zoruka! - Abstracts Connectors management in Solana Adapter -
#3648
225aba4
Thanks @tomiir! - Fixes issue where mobile view would show auth login options without adapters -
#3589
6932fbf
Thanks @enesozturk! - Refactors network switching when trying to use auth connector but active network is not supported by auth connector -
#3589
6932fbf
Thanks @enesozturk! - Refactors connector rendering logics when add/remove adapters for email/social login -
#3638
86e7510
Thanks @zoruka! - Fix condition for unsupported chain forchainChanged
event on wallet connect event -
#3637
40ef5c7
Thanks @zoruka! - Add default value if namespace is not available on upa getAccounts -
#3721
eade9f2
Thanks @enesozturk! - Fixes listeningChainController.state.noAdapters
andOptionsController.state.features
while enable/disable auth options dynamically -
#3639
489de7c
Thanks @zoruka! - Fix BitcoinAdapterswitchNetwork
function execution -
#3621
7b4f03f
Thanks @tomiir! - Fetches native balance when on testnets -
#3691
4075214
Thanks @magiziz! - Expanded more views in the modal open function to include Swap, Send, Wallet Is a Wallet, Wallet Is a Network and All Wallets screens.Example usage
import { createAppKit } from '@reown/appkit' const VIEWS = [ { label: 'Open "On-Ramp" modal view', view: 'Swap' }, { label: 'Open "Send" modal view', view: 'WalletSend' }, { label: 'Open "What Is a Wallet?" modal view', view: 'WhatIsAWallet' }, { label: 'Open "What Is a Network?" modal view', view: 'WhatIsANetwork' }, { label: 'Open "All Wallets" modal view', view: 'AllWallets' } ] as const const modal = createAppKit({ adapters: [], // Add your adapters here networks: [], // Add your networks here projectId: 'YOUR_PROJECT_ID' }) export function YourApp() { return ( <> {VIEWS.map(({ label, view }) => ( <button key={view} onClick={() => modal.open({ view })}> {label} </button> ))} </> ) }
-
#3648
225aba4
Thanks @tomiir! - Fixes issue where opening the modal without adapters would open regular connect WC screen -
#3717
72b14ce
Thanks @zoruka! - Update @WalletConnect packages to latest version. -
#3640
2935978
Thanks @magiziz! - AddedcreateAppKitWalletButton
function to@reown/appkit-wallet-button
package for easier implementation of the Wallet Button feature without relying solely on hooks.Example usage
import { useEffect, useState } from 'react' import { createAppKitWalletButton } from '@reown/appkit-wallet-button' const appKitWalletButton = createAppKitWalletButton() export function YourApp() { const [isReady, setIsReady] = useState(false) useEffect(() => { // Check if Wallet Buttons are ready if (appKitWalletButton.isReady()) { setIsReady(true) } else { // Subscribe to ready state changes appKitWalletButton.subscribeIsReady(state => { setIsReady(state.isReady) }) } }, [appKitWalletButton]) return ( <> <button onClick={() => appKitWalletButton.connect('walletConnect')} disabled={!isReady}> Open QR modal </button> <button onClick={() => appKitWalletButton.connect('metamask')} disabled={!isReady}> Connect to MetaMask </button> <button onClick={() => appKitWalletButton.connect('google')} disabled={!isReady}> Connect to Google </button> </> ) }
-
#3681
20c608f
Thanks @enesozturk! - Fixes redundant goBack call when switching to another namespace -
#3611
6431f0c
Thanks @tomiir! - Fixes issue where appKit.getProvider() would not return correct provider. -
#3716
59f57f3
Thanks @tomiir! - Fetches native balance when API does not support it -
#3679
3305586
Thanks @enesozturk! - Refactors AppKit client to handle syncBalance call for unsupported networks as expected -
#3607
a66de04
Thanks @zoruka! - Add defaultAccountTypes option for AppKit initialization. -
#3682
1ea9f7d
Thanks @tomiir! - Prevents calls to Blockchain Api that would fail due to lack of support. Initialize supported list on AppKit initialization' -
#3576
68bdd14
Thanks @magiziz! - Added a loading indicator to the account button component when the balance has not been fetched. -
#3635
190fdb9
Thanks @enesozturk! - Refactors connectExternal to call switch network if wallet's active chain is not in requested networks list -
#3663
018c6f1
Thanks @zoruka! - Remove all onUri callback drilling for all walletConnectConnect methods in favor of a single call when initializing the UniversalProvider -
#3672
98ad777
Thanks @magiziz! - Fixed an issue wherewalletProvider
from theuseAppKitProvider
hook wasundefined
when the wallet was connected. This issue occurred only when using wagmi adapter. -
#3670
25a97c6
Thanks @tomiir! - Fixes issue where 1CA session would not be found because of non-cased addresses mismatching.' -
#3715
3accd43
Thanks @magiziz! - Fixed an issue where wagmi connectors were not appearing in the connect modal -
#3619
7296a32
Thanks @zoruka! - Refactor to add WalletConnectConnector as extensible class and remove replicated code around adapters
@reown/[email protected]
Patch Changes
-
#3523
427dde3
Thanks @zoruka! - Abstracts Connectors management in Solana Adapter -
#3648
225aba4
Thanks @tomiir! - Fixes issue where mobile view would show auth login options without adapters -
#3589
6932fbf
Thanks @enesozturk! - Refactors network switching when trying to use auth connector but active network is not supported by auth connector -
#3589
6932fbf
Thanks @enesozturk! - Refactors connector rendering logics when add/remove adapters for email/social login -
#3638
86e7510
Thanks @zoruka! - Fix condition for unsupported chain forchainChanged
event on wallet connect event -
#3637
40ef5c7
Thanks @zoruka! - Add default value if namespace is not available on upa getAccounts -
#3721
eade9f2
Thanks @enesozturk! - Fixes listeningChainController.state.noAdapters
andOptionsController.state.features
while enable/disable auth options dynamically -
#3639
489de7c
Thanks @zoruka! - Fix BitcoinAdapterswitchNetwork
function execution -
#3621
7b4f03f
Thanks @tomiir! - Fetches native balance when on testnets -
#3691
4075214
Thanks @magiziz! - Expanded more views in the modal open function to include Swap, Send, Wallet Is a Wallet, Wallet Is a Network and All Wallets screens.Example usage
import { createAppKit } from '@reown/appkit' const VIEWS = [ { label: 'Open "On-Ramp" modal view', view: 'Swap' }, { label: 'Open "Send" modal view', view: 'WalletSend' }, { label: 'Open "What Is a Wallet?" modal view', view: 'WhatIsAWallet' }, { label: 'Open "What Is a Network?" modal view', view: 'WhatIsANetwork' }, { label: 'Open "All Wallets" modal view', view: 'AllWallets' } ] as const const modal = createAppKit({ adapters: [], // Add your adapters here networks: [], // Add your networks here projectId: 'YOUR_PROJECT_ID' }) export function YourApp() { return ( <> {VIEWS.map(({ label, view }) => ( <button key={view} onClick={() => modal.open({ view })}> {label} </button> ))} </> ) }
-
#3648
225aba4
Thanks @tomiir! - Fixes issue where opening the modal without adapters would open regular connect WC screen -
#3717
72b14ce
Thanks @zoruka! - Update @WalletConnect packages to latest version. -
#3640
2935978
Thanks @magiziz! - AddedcreateAppKitWalletButton
function to@reown/appkit-wallet-button
package for easier implementation of the Wallet Button feature without relying solely on hooks.Example usage
import { useEffect, useState } from 'react' import { createAppKitWalletButton } from '@reown/appkit-wallet-button' const appKitWalletButton = createAppKitWalletButton() export function YourApp() { const [isReady, setIsReady] = useState(false) useEffect(() => { // Check if Wallet Buttons are ready if (appKitWalletButton.isReady()) { setIsReady(true) } else { // Subscribe to ready state changes appKitWalletButton.subscribeIsReady(state => { setIsReady(state.isReady) }) } }, [appKitWalletButton]) return ( <> <button onClick={() => appKitWalletButton.connect('walletConnect')} disabled={!isReady}> Open QR modal </button> <button onClick={() => appKitWalletButton.connect('metamask')} disabled={!isReady}> Connect to MetaMask </button> <button onClick={() => appKitWalletButton.connect('google')} disabled={!isReady}> Connect to Google </button> </> ) }
-
#3681
20c608f
Thanks @enesozturk! - Fixes redundant goBack call when switching to another namespace -
#3611
6431f0c
Thanks @tomiir! - Fixes issue where appKit.getProvider() would not return correct provider. -
#3716
59f57f3
Thanks @tomiir! - Fetches native balance when API does not support it -
#3679
3305586
Thanks @enesozturk! - Refactors AppKit client to handle syncBalance call for unsupported networks as expected -
#3607
a66de04
Thanks @zoruka! - Add defaultAccountTypes option for AppKit initialization. -
#3682
1ea9f7d
Thanks @tomiir! - Prevents calls to Blockchain Api that would fail due to lack of support. Initialize supported list on AppKit initialization' -
#3576
68bdd14
Thanks @magiziz! - Added a loading indicator to the account button component when the balance has not been fetched. -
#3635
190fdb9
Thanks @enesozturk! - Refactors connectExternal to call switch network if wallet's active chain is not in requested networks list -
#3663
018c6f1
Thanks @zoruka! - Remove all onUri callback drilling for all walletConnectConnect methods in favor of a single call when initializing the UniversalProvider -
#3672
98ad777
Thanks @magiziz! - Fixed an issue wherewalletProvider
from theuseAppKitProvider
hook wasundefined
when the wallet was connected. This issue occurred only when using wagmi adapter. -
#3670
25a97c6
Thanks @tomiir! - Fixes issue where 1CA session would not be found because of non-cased addresses mismatching.' -
#3715
3accd43
Thanks @magiziz! - Fixed an issue where wagmi connectors were not appearing in the connect modal -
#3619
7296a32
Thanks @zoruka! - Refactor to add WalletConnectConnector as extensible class and remove replicated code around adapters
@reown/[email protected]
Patch Changes
-
#3523
427dde3
Thanks @zoruka! - Abstracts Connectors management in Solana Adapter -
#3648
225aba4
Thanks @tomiir! - Fixes issue where mobile view would show auth login options without adapters -
#3589
6932fbf
Thanks @enesozturk! - Refactors network switching when trying to use auth connector but active network is not supported by auth connector -
#3589
6932fbf
Thanks @enesozturk! - Refactors connector rendering logics when add/remove adapters for email/social login -
#3638
86e7510
Thanks @zoruka! - Fix condition for unsupported chain forchainChanged
event on wallet connect event -
#3637
40ef5c7
Thanks @zoruka! - Add default value if namespace is not available on upa getAccounts -
#3721
eade9f2
Thanks @enesozturk! - Fixes listeningChainController.state.noAdapters
andOptionsController.state.features
while enable/disable auth options dynamically -
#3639
489de7c
Thanks @zoruka! - Fix BitcoinAdapterswitchNetwork
function execution -
#3621
7b4f03f
Thanks @tomiir! - Fetches native balance when on testnets -
#3691
4075214
Thanks @magiziz! - Expanded more views in the modal open function to include Swap, Send, Wallet Is a Wallet, Wallet Is a Network and All Wallets screens.Example usage
import { createAppKit } from '@reown/appkit' const VIEWS = [ { label: 'Open "On-Ramp" modal view', view: 'Swap' }, { label: 'Open "Send" modal view', view: 'WalletSend' }, { label: 'Open "What Is a Wallet?" modal view', view: 'WhatIsAWallet' }, { label: 'Open "What Is a Network?" modal view', view: 'WhatIsANetwork' }, { label: 'Open "All Wallets" modal view', view: 'AllWallets' } ] as const const modal = createAppKit({ adapters: [], // Add your adapters here networks: [], // Add your networks here projectId: 'YOUR_PROJECT_ID' }) export function YourApp() { return ( <> {VIEWS.map(({ label, view }) => ( <button key={view} onClick={() => modal.open({ view })}> {label} </button> ))} </> ) }
-
#3648
225aba4
Thanks @tomiir! - Fixes issue where opening the modal without adapters would open regular connect WC screen -
#3717
72b14ce
Thanks @zoruka! - Update @WalletConnect packages to latest version. -
#3640
2935978
Thanks @magiziz! - AddedcreateAppKitWalletButton
function to@reown/appkit-wallet-button
package for easier implementation of the Wallet Button feature without relying solely on hooks.Example usage
import { useEffect, useState } from 'react' import { createAppKitWalletButton } from '@reown/appkit-wallet-button' const appKitWalletButton = createAppKitWalletButton() export function YourApp() { const [isReady, setIsReady] = useState(false) useEffect(() => { // Check if Wallet Buttons are ready if (appKitWalletButton.isReady()) { setIsReady(true) } else { // Subscribe to ready state changes appKitWalletButton.subscribeIsReady(state => { setIsReady(state.isReady) }) } }, [appKitWalletButton]) return ( <> <button onClick={() => appKitWalletButton.connect('walletConnect')} disabled={!isReady}> Open QR modal </button> <button onClick={() => appKitWalletButton.connect('metamask')} disabled={!isReady}> Connect to MetaMask </button> <button onClick={() => appKitWalletButton.connect('google')} disabled={!isReady}> Connect to Google </button> </> ) }
-
#3681
20c608f
Thanks @enesozturk! - Fixes redundant goBack call when switching to another namespace -
#3611
6431f0c
Thanks @tomiir! - Fixes issue where appKit.getProvider() would not return correct provider. -
#3716
59f57f3
Thanks @tomiir! - Fetches native balance when API does not support it -
#3679
3305586
Thanks @enesozturk! - Refactors AppKit client to handle syncBalance call for unsupported networks as expected -
#3607
a66de04
Thanks @zoruka! - Add defaultAccountTypes option for AppKit initialization. -
#3682
1ea9f7d
Thanks @tomiir! - Prevents calls to Blockchain Api that would fail due to lack of support. Initialize supported list on AppKit initialization' -
#3576
68bdd14
Thanks @magiziz! - Added a loading indicator to the account button component when the balance has not been fetched. -
#3635
190fdb9
Thanks @enesozturk! - Refactors connectExternal to call switch network if wallet's active chain is not in requested networks list -
#3663
018c6f1
Thanks @zoruka! - Remove all onUri callback drilling for all walletConnectConnect methods in favor of a single call when initializing the UniversalProvider -
#3672
98ad777
Thanks @magiziz! - Fixed an issue wherewalletProvider
from theuseAppKitProvider
hook wasundefined
when the wallet was connected. This issue occurred only when using wagmi adapter. -
#3670
25a97c6
Thanks @tomiir! - Fixes issue where 1CA session would not be found because of non-cased addresses mismatching.' -
#3715
3accd43
Thanks @magiziz! - Fixed an issue where wagmi connectors were not appearing in the connect modal -
#3619
7296a32
Thanks @zoruka! - Refactor to add WalletConnectConnector as extensible class and remove replicated code around adapters