diff --git a/APP.md b/APP.md
deleted file mode 100644
index 842fa68d6..000000000
--- a/APP.md
+++ /dev/null
@@ -1,125 +0,0 @@
-# Wallet Adapter for Solana Apps
-
-This is a quick setup guide with examples of how to add Wallet Adapter to a React-based Solana app.
-
-See the [packages](https://github.com/solana-labs/wallet-adapter/blob/master/PACKAGES.md) and [FAQ](https://github.com/solana-labs/wallet-adapter/blob/master/FAQ.md) for other supported frontend frameworks.
-
-## Quick Setup (using React UI)
-
-There are also [material-ui](https://github.com/solana-labs/wallet-adapter/tree/master/packages/ui/material-ui) and [ant-design](https://github.com/solana-labs/wallet-adapter/tree/master/packages/ui/ant-design) packages if you use those UI component frameworks.
-
-### Install
-
-Install these dependencies:
-
-```shell
-npm install --save \
- @solana/wallet-adapter-base \
- @solana/wallet-adapter-react \
- @solana/wallet-adapter-react-ui \
- @solana/wallet-adapter-wallets \
- @solana/web3.js \
- react
-```
-
-### Setup
-
-```tsx
-import React, { FC, useMemo } from 'react';
-import { ConnectionProvider, WalletProvider } from '@solana/wallet-adapter-react';
-import { WalletAdapterNetwork } from '@solana/wallet-adapter-base';
-import { UnsafeBurnerWalletAdapter } from '@solana/wallet-adapter-wallets';
-import {
- WalletModalProvider,
- WalletDisconnectButton,
- WalletMultiButton
-} from '@solana/wallet-adapter-react-ui';
-import { clusterApiUrl } from '@solana/web3.js';
-
-// Default styles that can be overridden by your app
-require('@solana/wallet-adapter-react-ui/styles.css');
-
-export const Wallet: FC = () => {
- // The network can be set to 'devnet', 'testnet', or 'mainnet-beta'.
- const network = WalletAdapterNetwork.Devnet;
-
- // You can also provide a custom RPC endpoint.
- const endpoint = useMemo(() => clusterApiUrl(network), [network]);
-
- const wallets = useMemo(
- () => [
- /**
- * Wallets that implement either of these standards will be available automatically.
- *
- * - Solana Mobile Stack Mobile Wallet Adapter Protocol
- * (https://github.com/solana-mobile/mobile-wallet-adapter)
- * - Solana Wallet Standard
- * (https://github.com/solana-labs/wallet-standard)
- *
- * If you wish to support a wallet that supports neither of those standards,
- * instantiate its legacy wallet adapter here. Common legacy adapters can be found
- * in the npm package `@solana/wallet-adapter-wallets`.
- */
- new UnsafeBurnerWalletAdapter(),
- ],
- // eslint-disable-next-line react-hooks/exhaustive-deps
- [network]
- );
-
- return (
-
-
-
-
-
- { /* Your app's components go here, nested within the context providers. */ }
-
-
-
- );
-};
-```
-
-### Usage
-
-```tsx
-import { WalletNotConnectedError } from '@solana/wallet-adapter-base';
-import { useConnection, useWallet } from '@solana/wallet-adapter-react';
-import { Keypair, SystemProgram, Transaction } from '@solana/web3.js';
-import React, { FC, useCallback } from 'react';
-
-export const SendSOLToRandomAddress: FC = () => {
- const { connection } = useConnection();
- const { publicKey, sendTransaction } = useWallet();
-
- const onClick = useCallback(async () => {
- if (!publicKey) throw new WalletNotConnectedError();
-
- // 890880 lamports as of 2022-09-01
- const lamports = await connection.getMinimumBalanceForRentExemption(0);
-
- const transaction = new Transaction().add(
- SystemProgram.transfer({
- fromPubkey: publicKey,
- toPubkey: Keypair.generate().publicKey,
- lamports,
- })
- );
-
- const {
- context: { slot: minContextSlot },
- value: { blockhash, lastValidBlockHeight }
- } = await connection.getLatestBlockhashAndContext();
-
- const signature = await sendTransaction(transaction, connection, { minContextSlot });
-
- await connection.confirmTransaction({ blockhash, lastValidBlockHeight, signature });
- }, [publicKey, sendTransaction, connection]);
-
- return (
-
- );
-};
-```
diff --git a/DEPRECATED.md b/DEPRECATED.md
new file mode 100644
index 000000000..eef1dfafa
--- /dev/null
+++ b/DEPRECATED.md
@@ -0,0 +1,140 @@
+### Individual wallet app support packages (deprecated)
+
+For any wallet injected into the window in a browser, browser extension, or mobile app, you no longer need to publish an adapter at all. You don't need to open a PR to MWA or the Wallet Standard.
+
+We are no longer accepting contributions for new adapters of this type. Bug fixes to existing adapters are welcome, but new features should be implemented using the MWA and Wallet Standard interfaces.
+
+Contributions are still welcome for new adapters that are not injected into the window but instead rely on loading an SDK to interact with an external wallet.
+
+> **Warning**
+> These packages were used to provide adapters for each wallet before Wallet Standard support. Per [WALLET.md these are no longer needed and should not be used](WALLET.md). The current version of wallet adapter will detect any registered Solana wallet.
+
+You can use the [wallets](packages/wallets/wallets) package, or add the individual wallet packages you want.
+
+ - [wallets](packages/wallets/wallets)
+Includes all the wallets (with tree shaking) [📦`@solana/wallet-adapter-wallets`](https://npmjs.com/package/@solana/wallet-adapter-wallets)
+
+ - [alpha](packages/wallets/alpha)
+Adapter for [Alpha](https://github.com/alphabatem/alpha-wallet) [📦`@solana/wallet-adapter-alpha`](https://npmjs.com/package/@solana/wallet-adapter-alpha)
+
+ - [avana](packages/wallets/avana)
+Adapter for [Avana](https://www.avanawallet.com) [📦`@solana/wallet-adapter-avana`](https://npmjs.com/package/@solana/wallet-adapter-avana)
+
+ - [backpack](packages/wallets/backpack)
+Adapter for [Backpack](https://backpack.app) [📦`@solana/wallet-adapter-backpack`](https://npmjs.com/package/@solana/wallet-adapter-backpack)
+
+ - [bitkeep](packages/wallets/bitkeep)
+Adapter for [BitKeep](https://bitkeep.com) [📦`@solana/wallet-adapter-bitkeep`](https://npmjs.com/package/@solana/wallet-adapter-bitkeep)
+
+ - [bitpie](packages/wallets/bitpie)
+Adapter for [Bitpie](https://bitpie.com) [📦`@solana/wallet-adapter-bitpie`](https://npmjs.com/package/@solana/wallet-adapter-bitpie)
+
+ - [blocto](packages/wallets/blocto)
+Adapter for [Blocto](https://blocto.app) [📦`@solana/wallet-adapter-blocto`](https://npmjs.com/package/@solana/wallet-adapter-blocto)
+
+ - [brave](packages/wallets/brave)
+Adapter for [Brave](https://brave.com/wallet) [📦`@solana/wallet-adapter-brave`](https://npmjs.com/package/@solana/wallet-adapter-brave)
+
+ - [clv](packages/wallets/clover)
+Adapter for [CLV](https://clv.org) [📦`@solana/wallet-adapter-clover`](https://npmjs.com/package/@solana/wallet-adapter-clover)
+
+ - [coin98](packages/wallets/coin98)
+Adapter for [Coin98](https://coin98.com) [📦`@solana/wallet-adapter-coin98`](https://npmjs.com/package/@solana/wallet-adapter-coin98)
+
+ - [coinbase](packages/wallets/coinbase)
+Adapter for [Coinbase](https://www.coinbase.com) [📦`@solana/wallet-adapter-coinbase`](https://npmjs.com/package/@solana/wallet-adapter-coinbase)
+
+ - [coinhub](packages/wallets/coinhub)
+Adapter for [Coinhub](https://coinhub.org) [📦`@solana/wallet-adapter-coinhub`](https://npmjs.com/package/@solana/wallet-adapter-coinhub)
+
+ - [exodus](packages/wallets/exodus)
+Adapter for [Exodus](https://exodus.com) [📦`@solana/wallet-adapter-exodus`](https://npmjs.com/package/@solana/wallet-adapter-exodus)
+
+ - [fractal](packages/wallets/fractal)
+Adapter for [Fractal](https://fractal.is) [📦`@solana/wallet-adapter-fractal`](https://npmjs.com/package/@solana/wallet-adapter-fractal)
+
+ - [glow](packages/wallets/glow)
+Adapter for [Glow](https://glow.app) [📦`@solana/wallet-adapter-glow`](https://npmjs.com/package/@solana/wallet-adapter-glow)
+
+ - [huobi](packages/wallets/huobi)
+Adapter for [HuobiWallet](https://www.huobiwallet.io) [📦`@solana/wallet-adapter-huobi`](https://npmjs.com/package/@solana/wallet-adapter-huobi)
+
+ - [hyperpay](packages/wallets/hyperpay)
+Adapter for [HyperPay](https://hyperpay.io) [📦`@solana/wallet-adapter-hyperpay`](https://npmjs.com/package/@solana/wallet-adapter-hyperpay)
+
+ - [keystone](packages/wallets/keystone)
+Adapter for [keystone](https://keyst.one) [📦`@solana/wallet-adapter-keystone`](https://npmjs.com/package/@solana/wallet-adapter-keystone)
+
+ - [krystal](packages/wallets/krystal)
+Adapter for [krystal](https://krystal.app) [📦`@solana/wallet-adapter-krystal`](https://npmjs.com/package/@solana/wallet-adapter-krystal)
+
+ - [ledger](packages/wallets/ledger)
+Adapter for [Ledger](https://ledger.com) [📦`@solana/wallet-adapter-ledger`](https://npmjs.com/package/@solana/wallet-adapter-ledger)
+
+ - [mathwallet](packages/wallets/mathwallet)
+Adapter for [MathWallet](https://mathwallet.org) [📦`@solana/wallet-adapter-mathwallet`](https://npmjs.com/package/@solana/wallet-adapter-mathwallet)
+
+ - [neko](packages/wallets/neko)
+Adapter for [Neko](https://nekowallet.com) [📦`@solana/wallet-adapter-neko`](https://npmjs.com/package/@solana/wallet-adapter-neko)
+
+ - [nightly](packages/wallets/nightly)
+Adapter for [Nightly](https://nightly.app) [📦`@solana/wallet-adapter-nightly`](https://npmjs.com/package/@solana/wallet-adapter-nightly)
+
+ - [nufi](packages/wallets/nufi)
+Adapter for [NuFi](https://nu.fi) [📦`@solana/wallet-adapter-nufi`](https://npmjs.com/package/@solana/wallet-adapter-nufi)
+
+ - [onto](packages/wallets/onto)
+Adapter for [ONTO](https://onto.app) [📦`@solana/wallet-adapter-onto`](https://npmjs.com/package/@solana/wallet-adapter-onto)
+
+ - [particle](packages/wallets/particle)
+Adapter for [Particle](https://particle.network) [📦`@solana/wallet-adapter-particle`](https://npmjs.com/package/@solana/wallet-adapter-particle)
+
+ - [phantom](packages/wallets/phantom)
+Adapter for [Phantom](https://phantom.app) [📦`@solana/wallet-adapter-phantom`](https://npmjs.com/package/@solana/wallet-adapter-phantom)
+
+ - [safepal](packages/wallets/safepal)
+Adapter for [SafePal](https://safepal.io) [📦`@solana/wallet-adapter-safepal`](https://npmjs.com/package/@solana/wallet-adapter-safepal)
+
+ - [saifu](packages/wallets/saifu)
+Adapter for [Saifu](https://saifuwallet.com) [📦`@solana/wallet-adapter-saifu`](https://npmjs.com/package/@solana/wallet-adapter-safepal)
+
+ - [salmon](packages/wallets/salmon)
+Adapter for [Salmon](https://www.salmonwallet.io) [📦`@solana/wallet-adapter-salmon`](https://npmjs.com/package/@solana/wallet-adapter-salmon)
+
+ - [sky](packages/wallets/sky)
+Adapter for [Sky](https://getsky.app) [📦`@solana/wallet-adapter-sky`](https://npmjs.com/package/@solana/wallet-adapter-sky)
+
+ - [slope](packages/wallets/slope)
+Adapter for [Slope](https://slope.finance) [📦`@solana/wallet-adapter-slope`](https://npmjs.com/package/@solana/wallet-adapter-slope)
+
+ - [solflare](packages/wallets/solflare)
+Adapter for [Solflare](https://solflare.com) [📦`@solana/wallet-adapter-solflare`](https://npmjs.com/package/@solana/wallet-adapter-solflare)
+
+ - [sollet](packages/wallets/sollet)
+Adapter for [Sollet](https://www.sollet.io) [📦`@solana/wallet-adapter-sollet`](https://npmjs.com/package/@solana/wallet-adapter-sollet)
+
+ - [solong](packages/wallets/solong)
+Adapter for [Solong](https://solongwallet.io) [📦`@solana/wallet-adapter-solong`](https://npmjs.com/package/@solana/wallet-adapter-solong)
+
+ - [spot](packages/wallets/spot)
+Adapter for [Spot](https://spot-wallet.com) [📦`@solana/wallet-adapter-spot`](https://npmjs.com/package/@solana/wallet-adapter-spot)
+
+ - [strike](packages/wallets/strike)
+Adapter for [Strike](https://strikeprotocols.com) [📦`@solana/wallet-adapter-strike`](https://npmjs.com/package/@solana/wallet-adapter-strike)
+
+ - [tokenary](packages/wallets/tokenary)
+Adapter for [Tokenary](https://tokenary.io) [📦`@solana/wallet-adapter-tokenary`](https://npmjs.com/package/@solana/wallet-adapter-tokenary)
+
+ - [tokenpocket](packages/wallets/tokenpocket)
+Adapter for [TokenPocket](https://tokenpocket.pro) [📦`@solana/wallet-adapter-tokenpocket`](https://npmjs.com/package/@solana/wallet-adapter-tokenpocket)
+
+ - [torus](packages/wallets/torus)
+Adapter for [Torus](https://tor.us) [📦`@solana/wallet-adapter-torus`](https://npmjs.com/package/@solana/wallet-adapter-torus)
+
+ - [trust](packages/wallets/trust)
+Adapter for [Trust Wallet](https://trustwallet.com) [📦`@solana/wallet-adapter-trust`](https://npmjs.com/package/@solana/wallet-adapter-trust)
+
+ - [walletconnect](packages/wallets/walletconnect)
+Adapter for [WalletConnect](https://walletconnect.com) [📦`@solana/wallet-adapter-walletconnect`](https://npmjs.com/package/@solana/wallet-adapter-walletconnect)
+ - [xdefi](packages/wallets/xdefi)
+Adapter for [XDEFI](https://xdefi.io) [📦`@solana/wallet-adapter-xdefi`](https://npmjs.com/package/@solana/wallet-adapter-xdefi)
diff --git a/FAQ.md b/FAQ.md
index 157897084..f0ce1563b 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -2,20 +2,29 @@
Please search https://solana.stackexchange.com and the issues in the repo. Issues are only for bug reports and feature requests.
-- [I am building an app, how do I use this?](#i-am-building-an-app-how-do-i-use-this)
-- [I am building a wallet, how do I use this?](#i-am-building-a-wallet-how-do-i-use-this)
-- [How can I get support?](#how-can-i-get-support)
-- [Can I use this with ___?](#can-i-use-this-with-___)
-- [What does this error mean?](#what-does-this-error-mean)
-- [How can I sign and verify messages?](#how-can-i-sign-and-verify-messages)
+- [FAQ (Frequently Asked Questions)](#faq-frequently-asked-questions)
+ - [I am building an app, how do I use this?](#i-am-building-an-app-how-do-i-use-this)
+ - [I am building a wallet, how do I use this?](#i-am-building-a-wallet-how-do-i-use-this)
+ - [How can I get support?](#how-can-i-get-support)
+ - [Can I use this with \_\_\_?](#can-i-use-this-with-___)
+ - [React - including Next.js, Material UI, Ant Design, etc?](#react---including-nextjs-material-ui-ant-design-etc)
+ - [Svelte, Vue, Angular, etc?](#svelte-vue-angular-etc)
+ - [Anchor](#anchor)
+ - [Webpack / Gatsby](#webpack--gatsby)
+ - [Babel / Rollup / Vite / Snowpack / esbuild](#babel--rollup--vite--snowpack--esbuild)
+ - [What does this error mean?](#what-does-this-error-mean)
+ - [`Failed to compile. [...] Module not found: Can't resolve [...]`](#failed-to-compile--module-not-found-cant-resolve-)
+ - [`[...] is not a function` / `[...] is undefined` / `Uncaught TypeError: Cannot destructure property` / `Uncaught (in promise) WalletNotConnectedError`](#-is-not-a-function---is-undefined--uncaught-typeerror-cannot-destructure-property--uncaught-in-promise-walletnotconnectederror)
+ - [`[...] is not a function`](#-is-not-a-function)
+ - [How can I sign and verify messages?](#how-can-i-sign-and-verify-messages)
## I am building an app, how do I use this?
-See the guide [Wallet Adapter for Solana Apps](https://github.com/solana-labs/wallet-adapter/blob/master/APP.md).
+See [./README.md#for-solana-dapp-developers].
## I am building a wallet, how do I use this?
-See the guide [Wallet Adapter for Solana Wallets](https://github.com/solana-labs/wallet-adapter/blob/master/WALLET.md).
+See [./README.md#for-solana-wallet-app-developers].
## How can I get support?
@@ -25,31 +34,16 @@ After reading this FAQ, if you've found a bug or if you'd like to request a feat
## Can I use this with ___?
-### React
-Yes, see the [react-ui-starter](https://github.com/solana-labs/wallet-adapter/tree/master/packages/starter/react-ui-starter) package.
+### React - including Next.js, Material UI, Ant Design, etc?
-### Anchor
-Yes, use the [`useAnchorWallet()`](https://github.com/solana-labs/wallet-adapter/blob/master/packages/core/react/src/useAnchorWallet.ts) hook in the React package to easily get an [Anchor-compatible Wallet interface](https://github.com/project-serum/anchor/blob/0faed886002a9b01ad0513c860e19d7570cb0221/ts/src/provider.ts#L220-L224).
-
-### Next.js (with React)
-Yes, see the [nextjs-starter](https://github.com/solana-labs/wallet-adapter/tree/master/packages/starter/nextjs-starter) package for very basic configuration, or the [example](https://github.com/solana-labs/wallet-adapter/tree/master/packages/starter/example) package for more complete configuration.
-
-If you're using one of the [react-ui](https://github.com/solana-labs/wallet-adapter/tree/master/packages/ui/react-ui), [material-ui](https://github.com/solana-labs/wallet-adapter/tree/master/packages/ui/material-ui), or [ant-design](https://github.com/solana-labs/wallet-adapter/tree/master/packages/ui/ant-design) packages too, make sure to configure the `WalletModalProvider` or `WalletDialogProvider` context [as shown here](https://github.com/solana-labs/wallet-adapter#setup).
-
-### Material UI (with React)
-Yes, see the [material-ui-starter](https://github.com/solana-labs/wallet-adapter/tree/master/packages/starter/material-ui-starter) package.
+Yes. See [./README.md#ui-components]
-### Ant Design (with React)
-Yes, see the [ant-design](https://github.com/solana-labs/wallet-adapter/tree/master/packages/core/ant-design) package.
+### Svelte, Vue, Angular, etc?
-### Vue
-Yes, see the community-maintained [Vue](https://github.com/lorisleiva/solana-wallets-vue) package.
-
-### Angular / RxJS
-Yes, see the community-maintained [Angular](https://github.com/heavy-duty/platform/tree/master/libs/wallet-adapter) package.
+Yes. See [./README.md#community]
+### Anchor
+Yes, use the [`useAnchorWallet()`](https://github.com/solana-labs/wallet-adapter/blob/master/packages/core/react/src/useAnchorWallet.ts) hook in the React package to easily get an [Anchor-compatible Wallet interface](https://github.com/project-serum/anchor/blob/0faed886002a9b01ad0513c860e19d7570cb0221/ts/src/provider.ts#L220-L224).
-### Svelte
-Yes, see the community-maintained [Svelte](https://github.com/svelte-on-solana/wallet-adapter) package.
### Webpack / Gatsby
Yes, but you may need to set up polyfills for certain imported modules.
@@ -60,20 +54,21 @@ npm install --save buffer
```
And configure `webpack.config.js`:
+
```js
const webpack = require('webpack');
module.exports = {
- plugins: [
- new webpack.ProvidePlugin({
- Buffer: ['buffer', 'Buffer']
- })
- ],
- resolve: {
- fallback: {
- crypto: false
- }
- }
+ plugins: [
+ new webpack.ProvidePlugin({
+ Buffer: ['buffer', 'Buffer'],
+ }),
+ ],
+ resolve: {
+ fallback: {
+ crypto: false,
+ },
+ },
};
```
@@ -83,7 +78,7 @@ Most of the packages are built using the TypeScript compiler, which outputs modu
If you're using Create React App, craco, or one of the React-based starter projects using them, this should be handled automatically.
-If you're using Next.js, this requires configuration, which is provided in the [nextjs-starter](https://github.com/solana-labs/wallet-adapter/tree/master/packages/starter/nextjs-starter) package.
+If you're using Next.js, this requires configuration, which is provided in the [nextjs-starter](packages/starter/nextjs-starter) package.
If you're using something else, you may have to configure your build tool to transpile the packages similarly to how it's done in the Next.js config.
Please open an issue or pull request to document your solution!
@@ -98,7 +93,7 @@ If this doesn't fix the problem, please [open an issue](https://github.com/solan
### `[...] is not a function` / `[...] is undefined` / `Uncaught TypeError: Cannot destructure property` / `Uncaught (in promise) WalletNotConnectedError`
-This can happen if you don't wrap your app with the `WalletContext` and `ConnectionContext` provided by the [react](https://github.com/solana-labs/wallet-adapter/tree/master/packages/core/react) package.
+This can happen if you don't wrap your app with the `WalletContext` and `ConnectionContext` provided by the [react](packages/core/react) package.
See issues [#62](https://github.com/solana-labs/wallet-adapter/issues/62#issuecomment-916421795), [#73](https://github.com/solana-labs/wallet-adapter/issues/73#issuecomment-919237687), and [#85](https://github.com/solana-labs/wallet-adapter/issues/85).
This shouldn't happen if you're using one of the starter projects, since they set up the contexts for you.
diff --git a/PACKAGES.md b/PACKAGES.md
deleted file mode 100644
index 84d794da7..000000000
--- a/PACKAGES.md
+++ /dev/null
@@ -1,92 +0,0 @@
-# Wallet Adapter Packages
-
-This library is organized into small packages with few dependencies.
-
-To add it to your app, you'll need core packages, some wallets, and UI components for your chosen framework.
-
-### Core
-These packages are what most projects can use to support wallets on Solana.
-
-| package | description | npm |
-|----------------------------------------------------------------------------------------|-------------------------------------------------------|------------------------------------------------------------------------------------------|
-| [base](https://github.com/solana-labs/wallet-adapter/tree/master/packages/core/base) | Adapter interfaces, error types, and common utilities | [`@solana/wallet-adapter-base`](https://npmjs.com/package/@solana/wallet-adapter-base) |
-| [react](https://github.com/solana-labs/wallet-adapter/tree/master/packages/core/react) | Contexts and hooks for React apps | [`@solana/wallet-adapter-react`](https://npmjs.com/package/@solana/wallet-adapter-react) |
-
-### Community
-Several core packages are maintained by the community to support additional frontend frameworks.
-
-- [Vue](https://github.com/lorisleiva/solana-wallets-vue)
-- [Angular](https://github.com/heavy-duty/platform/tree/master/libs/wallet-adapter)
-- [Svelte](https://github.com/svelte-on-solana/wallet-adapter)
-
-### UI Components
-These packages provide components for common UI frameworks.
-
-| package | description | npm |
-|-----------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|
-| [react-ui](https://github.com/solana-labs/wallet-adapter/tree/master/packages/ui/react-ui) | Components for React (no UI framework, just CSS) | [`@solana/wallet-adapter-react-ui`](https://npmjs.com/package/@solana/wallet-adapter-react-ui) |
-| [material-ui](https://github.com/solana-labs/wallet-adapter/tree/master/packages/ui/material-ui) | Components for [Material UI](https://material-ui.com) with React | [`@solana/wallet-adapter-material-ui`](https://npmjs.com/package/@solana/wallet-adapter-material-ui) |
-| [ant-design](https://github.com/solana-labs/wallet-adapter/tree/master/packages/ui/ant-design) | Components for [Ant Design](https://ant.design) with React | [`@solana/wallet-adapter-ant-design`](https://npmjs.com/package/@solana/wallet-adapter-ant-design) |
-| [angular-material-ui](https://github.com/heavy-duty/platform/tree/master/libs/wallet-adapter/ui/material) | Components for [Angular Material UI](https://material.angular.io/) | [`@heavy-duty/wallet-adapter-material`](https://www.npmjs.com/package/@heavy-duty/wallet-adapter-material) |
-
-### Wallets
-These packages provide adapters for each wallet.
-You can use the [wallets](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/wallets) package, or add the individual wallet packages you want.
-
-| package | description | npm |
-|-----------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
-| [wallets](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/wallets) | Includes all the wallets (with tree shaking) | [`@solana/wallet-adapter-wallets`](https://npmjs.com/package/@solana/wallet-adapter-wallets) |
-| [alpha](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/alpha) | Adapter for [Alpha](https://github.com/alphabatem/alpha-wallet) | [`@solana/wallet-adapter-alpha`](https://npmjs.com/package/@solana/wallet-adapter-alpha) |
-| [avana](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/avana) | Adapter for [Avana](https://www.avanawallet.com) | [`@solana/wallet-adapter-avana`](https://npmjs.com/package/@solana/wallet-adapter-avana) |
-| [backpack](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/backpack) | Adapter for [Backpack](https://backpack.app) | [`@solana/wallet-adapter-backpack`](https://npmjs.com/package/@solana/wallet-adapter-backpack) |
-| [bitkeep](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/bitkeep) | Adapter for [BitKeep](https://bitkeep.com) | [`@solana/wallet-adapter-bitkeep`](https://npmjs.com/package/@solana/wallet-adapter-bitkeep) |
-| [bitpie](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/bitpie) | Adapter for [Bitpie](https://bitpie.com) | [`@solana/wallet-adapter-bitpie`](https://npmjs.com/package/@solana/wallet-adapter-bitpie) |
-| [blocto](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/blocto) | Adapter for [Blocto](https://blocto.app) | [`@solana/wallet-adapter-blocto`](https://npmjs.com/package/@solana/wallet-adapter-blocto) |
-| [brave](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/brave) | Adapter for [Brave](https://brave.com/wallet) | [`@solana/wallet-adapter-brave`](https://npmjs.com/package/@solana/wallet-adapter-brave) |
-| [clv](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/clover) | Adapter for [CLV](https://clv.org) | [`@solana/wallet-adapter-clover`](https://npmjs.com/package/@solana/wallet-adapter-clover) |
-| [coin98](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/coin98) | Adapter for [Coin98](https://coin98.com) | [`@solana/wallet-adapter-coin98`](https://npmjs.com/package/@solana/wallet-adapter-coin98) |
-| [coinbase](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/coinbase) | Adapter for [Coinbase](https://www.coinbase.com) | [`@solana/wallet-adapter-coinbase`](https://npmjs.com/package/@solana/wallet-adapter-coinbase) |
-| [coinhub](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/coinhub) | Adapter for [Coinhub](https://coinhub.org) | [`@solana/wallet-adapter-coinhub`](https://npmjs.com/package/@solana/wallet-adapter-coinhub) |
-| [exodus](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/exodus) | Adapter for [Exodus](https://exodus.com) | [`@solana/wallet-adapter-exodus`](https://npmjs.com/package/@solana/wallet-adapter-exodus) |
-| [fractal](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/fractal) | Adapter for [Fractal](https://fractal.is) | [`@solana/wallet-adapter-fractal`](https://npmjs.com/package/@solana/wallet-adapter-fractal) |
-| [glow](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/glow) | Adapter for [Glow](https://glow.app) | [`@solana/wallet-adapter-glow`](https://npmjs.com/package/@solana/wallet-adapter-glow) |
-| [huobi](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/huobi) | Adapter for [HuobiWallet](https://www.huobiwallet.io) | [`@solana/wallet-adapter-huobi`](https://npmjs.com/package/@solana/wallet-adapter-huobi) |
-| [hyperpay](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/hyperpay) | Adapter for [HyperPay](https://hyperpay.io) | [`@solana/wallet-adapter-hyperpay`](https://npmjs.com/package/@solana/wallet-adapter-hyperpay) |
-| [keystone](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/keystone) | Adapter for [keystone](https://keyst.one) | [`@solana/wallet-adapter-keystone`](https://npmjs.com/package/@solana/wallet-adapter-keystone) |
-| [krystal](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/krystal) | Adapter for [krystal](https://krystal.app) | [`@solana/wallet-adapter-krystal`](https://npmjs.com/package/@solana/wallet-adapter-krystal) |
-| [ledger](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/ledger) | Adapter for [Ledger](https://ledger.com) | [`@solana/wallet-adapter-ledger`](https://npmjs.com/package/@solana/wallet-adapter-ledger) |
-| [mathwallet](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/mathwallet) | Adapter for [MathWallet](https://mathwallet.org) | [`@solana/wallet-adapter-mathwallet`](https://npmjs.com/package/@solana/wallet-adapter-mathwallet) |
-| [neko](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/neko) | Adapter for [Neko](https://nekowallet.com) | [`@solana/wallet-adapter-neko`](https://npmjs.com/package/@solana/wallet-adapter-neko) |
-| [nightly](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/nightly) | Adapter for [Nightly](https://nightly.app) | [`@solana/wallet-adapter-nightly`](https://npmjs.com/package/@solana/wallet-adapter-nightly) |
-| [nufi](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/nufi) | Adapter for [NuFi](https://nu.fi) | [`@solana/wallet-adapter-nufi`](https://npmjs.com/package/@solana/wallet-adapter-nufi) |
-| [onto](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/onto) | Adapter for [ONTO](https://onto.app) | [`@solana/wallet-adapter-onto`](https://npmjs.com/package/@solana/wallet-adapter-onto) |
-| [particle](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/particle) | Adapter for [Particle](https://particle.network) | [`@solana/wallet-adapter-particle`](https://npmjs.com/package/@solana/wallet-adapter-particle) |
-| [phantom](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/phantom) | Adapter for [Phantom](https://phantom.app) | [`@solana/wallet-adapter-phantom`](https://npmjs.com/package/@solana/wallet-adapter-phantom) |
-| [safepal](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/safepal) | Adapter for [SafePal](https://safepal.io) | [`@solana/wallet-adapter-safepal`](https://npmjs.com/package/@solana/wallet-adapter-safepal) |
-| [saifu](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/saifu) | Adapter for [Saifu](https://saifuwallet.com) | [`@solana/wallet-adapter-saifu`](https://npmjs.com/package/@solana/wallet-adapter-safepal) |
-| [salmon](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/salmon) | Adapter for [Salmon](https://www.salmonwallet.io) | [`@solana/wallet-adapter-salmon`](https://npmjs.com/package/@solana/wallet-adapter-salmon) |
-| [sky](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/sky) | Adapter for [Sky](https://getsky.app) | [`@solana/wallet-adapter-sky`](https://npmjs.com/package/@solana/wallet-adapter-sky) |
-| [slope](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/slope) | Adapter for [Slope](https://slope.finance) | [`@solana/wallet-adapter-slope`](https://npmjs.com/package/@solana/wallet-adapter-slope) |
-| [solflare](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/solflare) | Adapter for [Solflare](https://solflare.com) | [`@solana/wallet-adapter-solflare`](https://npmjs.com/package/@solana/wallet-adapter-solflare) |
-| [sollet](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/sollet) | Adapter for [Sollet](https://www.sollet.io) | [`@solana/wallet-adapter-sollet`](https://npmjs.com/package/@solana/wallet-adapter-sollet) |
-| [solong](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/solong) | Adapter for [Solong](https://solongwallet.io) | [`@solana/wallet-adapter-solong`](https://npmjs.com/package/@solana/wallet-adapter-solong) |
-| [spot](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/spot) | Adapter for [Spot](https://spot-wallet.com) | [`@solana/wallet-adapter-spot`](https://npmjs.com/package/@solana/wallet-adapter-spot) |
-| [strike](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/strike) | Adapter for [Strike](https://strikeprotocols.com) | [`@solana/wallet-adapter-strike`](https://npmjs.com/package/@solana/wallet-adapter-strike) |
-| [tokenary](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/tokenary) | Adapter for [Tokenary](https://tokenary.io) | [`@solana/wallet-adapter-tokenary`](https://npmjs.com/package/@solana/wallet-adapter-tokenary) |
-| [tokenpocket](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/tokenpocket) | Adapter for [TokenPocket](https://tokenpocket.pro) | [`@solana/wallet-adapter-tokenpocket`](https://npmjs.com/package/@solana/wallet-adapter-tokenpocket) |
-| [torus](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/torus) | Adapter for [Torus](https://tor.us) | [`@solana/wallet-adapter-torus`](https://npmjs.com/package/@solana/wallet-adapter-torus) |
-| [trust](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/trust) | Adapter for [Trust Wallet](https://trustwallet.com) | [`@solana/wallet-adapter-trust`](https://npmjs.com/package/@solana/wallet-adapter-trust) |
-| [walletconnect](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/walletconnect) | Adapter for [WalletConnect](https://walletconnect.com) | [`@solana/wallet-adapter-walletconnect`](https://npmjs.com/package/@solana/wallet-adapter-walletconnect) |
-| [xdefi](https://github.com/solana-labs/wallet-adapter/tree/master/packages/wallets/xdefi) | Adapter for [XDEFI](https://xdefi.io) | [`@solana/wallet-adapter-xdefi`](https://npmjs.com/package/@solana/wallet-adapter-xdefi) |
-
-### Starter Projects
-These packages provide projects that you can use to start building a app with built-in wallet support.
-Alternatively, check out [solana-dapp-next](https://github.com/lisenmayben/solana-dapp-next) for a more complete framework.
-
-| package | description | npm |
-|---------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|
-| [example](https://github.com/solana-labs/wallet-adapter/tree/master/packages/starter/example) | Demo of UI components and wallets | [`@solana/wallet-adapter-example`](https://npmjs.com/package/@solana/wallet-adapter-example) |
-| [create-react-app-starter](https://github.com/solana-labs/wallet-adapter/tree/master/packages/starter/create-react-app-starter) | [Create React App](https://create-react-app.dev) project using React UI | [`@solana/wallet-adapter-create-react-app-starter`](https://npmjs.com/package/@solana/wallet-adapter-create-react-app-starter) |
-| [material-ui-starter](https://github.com/solana-labs/wallet-adapter/tree/master/packages/starter/material-ui-starter) | [Parcel](https://parceljs.org) project using Material UI | [`@solana/wallet-adapter-material-ui-starter`](https://npmjs.com/package/@solana/wallet-adapter-material-ui-starter) |
-| [react-ui-starter](https://github.com/solana-labs/wallet-adapter/tree/master/packages/starter/react-ui-starter) | [Parcel](https://parceljs.org) project using React UI | [`@solana/wallet-adapter-react-ui-starter`](https://npmjs.com/package/@solana/wallet-adapter-react-ui-starter) |
-| [nextjs-starter](https://github.com/solana-labs/wallet-adapter/tree/master/packages/starter/nextjs-starter) | [Next.js](https://nextjs.org) project using React UI | [`@solana/wallet-adapter-nextjs-starter`](https://npmjs.com/package/@solana/wallet-adapter-nextjs-starter) |
diff --git a/README.md b/README.md
index 962347ab1..0c2a80255 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,84 @@
-# Wallet Adapter
+# Solana Wallet Adapter
-Modular TypeScript wallet adapters and components for Solana applications.
-
-- [Demo](https://solana-labs.github.io/wallet-adapter/example/)
-- [TypeScript Docs](https://solana-labs.github.io/wallet-adapter/)
-- [For Solana Apps](https://github.com/solana-labs/wallet-adapter/blob/master/APP.md)
-- [For Solana Wallets](https://github.com/solana-labs/wallet-adapter/blob/master/WALLET.md)
-- [Packages](https://github.com/solana-labs/wallet-adapter/blob/master/PACKAGES.md)
-- [FAQ (Frequently Asked Questions)](https://github.com/solana-labs/wallet-adapter/blob/master/FAQ.md)
-- [Build from Source](https://github.com/solana-labs/wallet-adapter/blob/master/BUILD.md)
+The Solana Wallet Adapter allows Solana dApps to talk to a user's registered wallet apps.
+See the [live demo](https://solana-labs.github.io/wallet-adapter/example/) and [demo code](./packages/starter/example/).
![Wallets](wallets.png)
+## For Solana dApp developers
+
+This library is organized into small packages with few dependencies.
+
+To add wallet-adapter support to your dApp, you'll need core packages and UI components for your chosen framework.
+
+### Core
+
+These packages are what most projects can use to support wallets on Solana.
+
+ - [base](packages/core/base)
+Adapter interfaces, error types, and common utilities [📦`@solana/wallet-adapter-base`](https://npmjs.com/package/@solana/wallet-adapter-base)
+
+ - [react](packages/core/react)
+Contexts and hooks for React apps [📦`@solana/wallet-adapter-react`](https://npmjs.com/package/@solana/wallet-adapter-react)
+
+### Community
+
+Several core packages are maintained by the community to support additional frontend frameworks.
+
+> **Warning**
+> Some of these packages may need updates to support Solana Wallet Standard.
+
+- [Vue](https://github.com/lorisleiva/solana-wallets-vue)
+- [Angular](https://github.com/heavy-duty/platform/tree/master/libs/wallet-adapter)
+- [Svelte](https://github.com/svelte-on-solana/wallet-adapter)
+
+### UI Components
+
+These packages provide components for common UI frameworks.
+
+ - [react-ui](packages/ui/react-ui)
+Components for React (no UI framework, just CSS). [📦`@solana/wallet-adapter-react-ui`](https://npmjs.com/package/@solana/wallet-adapter-react-ui)
+
+ - [material-ui](packages/ui/material-ui)
+Components for [Material UI](https://material-ui.com) with React. [📦`@solana/wallet-adapter-material-ui`](https://npmjs.com/package/@solana/wallet-adapter-material-ui)
+
+ - [ant-design](packages/ui/ant-design)
+Components for [Ant Design](https://ant.design) with React. [📦`@solana/wallet-adapter-ant-design`](https://npmjs.com/package/@solana/wallet-adapter-ant-design)
+
+ - [angular-material-ui](https://github.com/heavy-duty/platform/tree/master/libs/wallet-adapter/ui/material)
+Components for [Angular Material UI](https://material.angular.io/) [📦`@heavy-duty/wallet-adapter-material`](https://www.npmjs.com/package/@heavy-duty/wallet-adapter-material)
+
+### Starter Projects
+
+> **Warning**
+> Some of these packages may need updates to support Solana Wallet Standard.
+
+These packages provide projects that you can use to start building a app with built-in wallet support.
+
+ - [example](packages/starter/example)
+Demo of UI components and wallets [📦`@solana/wallet-adapter-example`](https://npmjs.com/package/@solana/wallet-adapter-example)
+
+ - [create-react-app-starter](packages/starter/create-react-app-starter) - [Create React App](https://create-react-app.dev) project using React UI [📦`@solana/wallet-adapter-create-react-app-starter`](https://npmjs.com/package/@solana/wallet-adapter-create-react-app-starter)
+
+ - [material-ui-starter](packages/starter/material-ui-starter) - [Parcel](https://parceljs.org) project using Material UI [📦`@solana/wallet-adapter-material-ui-starter`](https://npmjs.com/package/@solana/wallet-adapter-material-ui-starter)
+
+ - [react-ui-starter](packages/starter/react-ui-starter) - [Parcel](https://parceljs.org) project using React UI [📦`@solana/wallet-adapter-react-ui-starter`](https://npmjs.com/package/@solana/wallet-adapter-react-ui-starter)
+
+ - [nextjs-starter](packages/starter/nextjs-starter) - [Next.js](https://nextjs.org) project using React UI [📦`@solana/wallet-adapter-nextjs-starter`](https://npmjs.com/package/@solana/wallet-adapter-nextjs-starter)
+
+Alternatively, check out [solana-dapp-scaffold](https://github.com/solana-labs/dapp-scaffold) for a more complete framework.
+
+## For Solana Wallet App Developers
+
+Support for [Mobile Wallet Adapter](https://github.com/solana-mobile/mobile-wallet-adapter) (MWA) and the [Wallet Standard](https://github.com/wallet-standard/wallet-standard) has been added directly into Wallet Adapter. Please review the Mobile Wallet Adapter docs and [this guide for wallets](https://github.com/solana-labs/wallet-standard/blob/master/WALLET.md) to implement the Wallet Standard.
+
+You can implement Wallet Adapter in your wallet app, and, thanks to Wallet Standard, your wallet app will work across all Solana dApps.
+
+Prior to Wallet Standard, each wallet app had individual wallet adapter packages. **Adapters for individual wallets are now deprecated.** See [DEPRECATED](./DEPRECATED.md).
+
+## Other docs
+
+- [TypeScript Docs](https://solana-labs.github.io/wallet-adapter/)
+- [FAQ (Frequently Asked Questions)](FAQ.md)
+- [Build Wallet Adapter from Source](BUILD.md)
+
diff --git a/WALLET.md b/WALLET.md
deleted file mode 100644
index e8f537a60..000000000
--- a/WALLET.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Wallet Adapter for Solana Wallets
-
-Support for [Mobile Wallet Adapter](https://github.com/solana-mobile/mobile-wallet-adapter) (MWA) and the [Wallet Standard](https://github.com/wallet-standard/wallet-standard) has been added directly into Wallet Adapter. Please review the MWA docs and [this guide for wallets](https://github.com/solana-labs/wallet-standard/blob/master/WALLET.md) to implement the Wallet Standard.
-
-You can implement these protocols directly in your wallet, and your wallet will work across Solana apps. As wallets continue to add support for these protocols, the adapters for these wallets will be deprecated.
-
-For any wallet injected into the window in a browser, browser extension, or mobile app, you no longer need to publish an adapter at all. You don't need to open a PR to MWA or the Wallet Standard.
-
-We are no longer accepting contributions for new adapters of this type. Bug fixes to existing adapters are welcome, but new features should be implemented using the MWA and Wallet Standard interfaces.
-
-Contributions are still welcome for new adapters that are not injected into the window but instead rely on loading an SDK to interact with an external wallet.
-
-
diff --git a/wallets.png b/wallets.png
index e2a002342..83f5818ef 100644
Binary files a/wallets.png and b/wallets.png differ