wallet-adapter

Modular TypeScript wallet adapters and components for Solana applications. (by anza-xyz)

Wallet-adapter Alternatives

Similar projects and alternatives to wallet-adapter

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better wallet-adapter alternative or higher similarity.

wallet-adapter reviews and mentions

Posts with mentions or reviews of wallet-adapter. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-15.
  • Creating a Custom Solana Connect Wallet UI with React and Chakra UI
    5 projects | dev.to | 15 Feb 2023
    If you have worked with the Solana Wallet Adapter before, you will know that it is very easy to set up a Connect Wallet button with a decent modal.
  • Open Source JS Library - Create Your Own Solana NFT Marketplace in Minutes
    2 projects | /r/solana | 30 May 2022
    Note: Your website needs a way for users to connect their wallet, so we assume that you have Solana wallet adapter set up. This is likely to be the case if you have already done primary sales of your NFTs with Candy Machine v2 or Candy Machine v1.
  • The Complete Guide to Full Stack Solana Development with React, Anchor, Rust, and Phantom
    6 projects | dev.to | 1 Apr 2022
    import './App.css'; import { useState } from 'react'; import { Connection, PublicKey } from '@solana/web3.js'; import { Program, Provider, web3 } from '@project-serum/anchor'; import idl from './idl.json'; import { PhantomWalletAdapter } from '@solana/wallet-adapter-wallets'; import { useWallet, WalletProvider, ConnectionProvider } from '@solana/wallet-adapter-react'; import { WalletModalProvider, WalletMultiButton } from '@solana/wallet-adapter-react-ui'; require('@solana/wallet-adapter-react-ui/styles.css'); const wallets = [ /* view list of available wallets at https://github.com/solana-labs/wallet-adapter#wallets */ new PhantomWalletAdapter() ] const { SystemProgram, Keypair } = web3; /* create an account */ const baseAccount = Keypair.generate(); const opts = { preflightCommitment: "processed" } const programID = new PublicKey(idl.metadata.address); function App() { const [value, setValue] = useState(null); const wallet = useWallet(); async function getProvider() { /* create the provider and return it to the caller */ /* network set to local network for now */ const network = "http://127.0.0.1:8899"; const connection = new Connection(network, opts.preflightCommitment); const provider = new Provider( connection, wallet, opts.preflightCommitment, ); return provider; } async function createCounter() { const provider = await getProvider() /* create the program interface combining the idl, program ID, and provider */ const program = new Program(idl, programID, provider); try { /* interact with the program via rpc */ await program.rpc.create({ accounts: { baseAccount: baseAccount.publicKey, user: provider.wallet.publicKey, systemProgram: SystemProgram.programId, }, signers: [baseAccount] }); const account = await program.account.baseAccount.fetch(baseAccount.publicKey); console.log('account: ', account); setValue(account.count.toString()); } catch (err) { console.log("Transaction error: ", err); } } async function increment() { const provider = await getProvider(); const program = new Program(idl, programID, provider); await program.rpc.increment({ accounts: { baseAccount: baseAccount.publicKey } }); const account = await program.account.baseAccount.fetch(baseAccount.publicKey); console.log('account: ', account); setValue(account.count.toString()); } if (!wallet.connected) { /* If the user's wallet is not connected, display connect wallet button. */ return (
    ) } else { return (
    { !value && (Create counter) } { value && Increment counter } { value && value >= Number(0) ? (

    {value}

    ) : (

    Please create the counter.

    ) }
    ); } } /* wallet configuration as specified here: https://github.com/solana-labs/wallet-adapter#setup */ const AppWithProvider = () => ( ) export default AppWithProvider;
    6 projects | dev.to | 15 Sep 2021
    import './App.css'; import { useEffect, useState } from 'react'; import { Connection, PublicKey } from '@solana/web3.js'; import { Program, Provider, web3 } from '@project-serum/anchor'; import idl from './idl.json'; import { getPhantomWallet } from '@solana/wallet-adapter-wallets'; import { useWallet, WalletProvider, ConnectionProvider } from '@solana/wallet-adapter-react'; import { WalletModalProvider, WalletMultiButton } from '@solana/wallet-adapter-react-ui'; const wallets = [ /* view list of available wallets at https://github.com/solana-labs/wallet-adapter#wallets */ getPhantomWallet() ] const { SystemProgram, Keypair } = web3; /* create an account */ const baseAccount = Keypair.generate(); const opts = { preflightCommitment: "processed" } const programID = new PublicKey(idl.metadata.address); function App() { const [value, setValue] = useState(null); const [connected, setConnected] = useState(false); const wallet = useWallet(); useEffect(() => { window.solana.on("connect", () => setConnected(true)); return () => window.solana.disconnect(); }, []) async function getProvider() { /* create the provider and return it to the caller */ /* network set to local network for now */ const network = "http://127.0.0.1:8899"; const connection = new Connection(network, opts.preflightCommitment); const provider = new Provider( connection, wallet, opts.preflightCommitment, ); return provider; } async function createCounter() { const provider = await getProvider() /* create the program interface combining the idl, program ID, and provider */ const program = new Program(idl, programID, provider); try { /* interact with the program via rpc */ await program.rpc.create({ accounts: { baseAccount: baseAccount.publicKey, user: provider.wallet.publicKey, systemProgram: SystemProgram.programId, }, signers: [baseAccount] }); const account = await program.account.baseAccount.fetch(baseAccount.publicKey); console.log('account: ', account); setValue(account.count.toString()); } catch (err) { console.log("Transaction error: ", err); } } async function increment() { const provider = await getProvider(); const program = new Program(idl, programID, provider); await program.rpc.increment({ accounts: { baseAccount: baseAccount.publicKey } }); const account = await program.account.baseAccount.fetch(baseAccount.publicKey); console.log('account: ', account); setValue(account.count.toString()); } if (!connected) { /* If the user's wallet is not connected, display connect wallet button. */ return (
    ) } else { return (
    { !value && (Create counter) } { value && Increment counter } { value && value >= Number(0) ? (

    {value}

    ) : (

    Please create the counter.

    ) }
    ); } } /* wallet configuration as specified here: https://github.com/solana-labs/wallet-adapter#setup */ const AppWithProvider = () => ( ) export default AppWithProvider;
  • Is there a library that unifies connecting to wallets similar to what Solana has?
    3 projects | /r/ethdev | 17 Mar 2022
    Solana has the wallet adapter library which provides a convenient interface for connecting to many different wallets. Is there anything similar for ETH or do I have to write and maintain custom logic for each different wallet?
  • TheWheel, a first experience programming on Solana
    3 projects | dev.to | 5 Mar 2022
    Code of TheWheel has been organized around the Solana–wallet-adapter project. I first ran a git clone command on the project before adding my files one by one in same repository.
  • Trouble Importing Token from @solana/spl-token (npm and node)
    2 projects | /r/solana | 23 Feb 2022
    First line of the example here: https://github.com/solana-labs/wallet-adapter/issues/189
  • Defining the web3 stack
    15 projects | dev.to | 23 Dec 2021
    As far as JavaScript frameworks go, you can really build with anything you’d like, as the client-side blockchain SDKs are mostly framework-agnostic. That being said, an overwhelming number of projects and examples are built in React. There are also a handful of libraries like Solana Wallet Adapter that offer additional utilities for React, so I’d say that learning or being familiar with React is going to probably be a smart move.
  • A note from our sponsor - SurveyJS
    surveyjs.io | 29 Mar 2024
    With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js. Learn more →

Stats

Basic wallet-adapter repo stats
12
1,310
8.9
2 days ago
Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com