Wallet Setup

Configure your Solana wallet for seamless CredDAO integration.

Supported Wallets

CredDAO supports the following Solana wallets:

Phantom

Most popular Solana wallet with excellent dApp support.

Solflare

Feature-rich wallet with advanced DeFi capabilities.

Backpack

Modern wallet with xNFT support and trading features.

Install Wallet Adapter

Install the Solana wallet adapter packages:

npm install @solana/wallet-adapter-base \
            @solana/wallet-adapter-react \
            @solana/wallet-adapter-react-ui \
            @solana/wallet-adapter-phantom \
            @solana/wallet-adapter-solflare

Configure Wallet Provider

Set up the wallet provider in your application:

// components/WalletProvider.tsx
import { ConnectionProvider, WalletProvider } from '@solana/wallet-adapter-react';
import { WalletModalProvider } from '@solana/wallet-adapter-react-ui';
import { PhantomWalletAdapter, SolflareWalletAdapter } from '@solana/wallet-adapter-wallets';
import { clusterApiUrl } from '@solana/web3.js';
import { ReactNode, useMemo } from 'react';
 
import '@solana/wallet-adapter-react-ui/styles.css';
 
export function WalletContextProvider({ children }: { children: ReactNode }) {
  const endpoint = useMemo(() => clusterApiUrl('devnet'), []);
  const wallets = useMemo(
    () => [new PhantomWalletAdapter(), new SolflareWalletAdapter()],
    []
  );
 
  return (
    <ConnectionProvider endpoint={endpoint}>
      <WalletProvider wallets={wallets} autoConnect>
        <WalletModalProvider>
          {children}
        </WalletModalProvider>
      </WalletProvider>
    </ConnectionProvider>
  );
}

Add Connect Button

Add the wallet connect button to your UI:

import { WalletMultiButton } from '@solana/wallet-adapter-react-ui';
 
function Navigation() {
  return (
    <nav>
      <WalletMultiButton />
    </nav>
  );
}

Check Connection Status

Use the wallet hooks to check connection status:

import { useWallet } from '@solana/wallet-adapter-react';
 
function Dashboard() {
  const { connected, publicKey, wallet } = useWallet();
 
  if (!connected) {
    return <p>Please connect your wallet</p>;
  }
 
  return (
    <div>
      <p>Connected with {wallet?.adapter.name}</p>
      <p>Address: {publicKey?.toBase58()}</p>
    </div>
  );
}

Network Configuration

Devnet (Development)

const endpoint = clusterApiUrl('devnet');
Note:

Devnet SOL is free and can be obtained from the Solana Faucet.

Mainnet (Production)

const endpoint = 'https://api.mainnet-beta.solana.com';
// Or use a dedicated RPC provider
const endpoint = 'https://your-rpc-provider.com';

Airdrop Devnet SOL

For testing on devnet, request an airdrop:

solana airdrop 2 <YOUR_WALLET_ADDRESS> --url devnet

Or programmatically:

import { Connection, LAMPORTS_PER_SOL } from '@solana/web3.js';
 
const connection = new Connection(clusterApiUrl('devnet'));
const signature = await connection.requestAirdrop(
  publicKey,
  2 * LAMPORTS_PER_SOL
);
await connection.confirmTransaction(signature);

Security Best Practices

Warning:

Always verify you’re on the correct network before signing transactions.

Check Network

const { wallet } = useWallet();
 
// Verify network
if (wallet?.adapter.name === 'Phantom') {
  // Phantom automatically handles network switching
}

Transaction Signing

Always review transaction details before signing:

const { signTransaction } = useWallet();
 
if (signTransaction) {
  // Preview transaction
  console.log('Transaction:', transaction);
  
  const signed = await signTransaction(transaction);
  const signature = await connection.sendRawTransaction(
    signed.serialize()
  );
}

Troubleshooting

Wallet not connecting
  1. Ensure wallet extension is installed and unlocked
  2. Check you’re on the correct network
  3. Clear browser cache and reload
  4. Try a different browser
Transaction fails silently
  1. Check console for error messages
  2. Verify sufficient SOL balance
  3. Ensure correct program ID
  4. Check transaction size limits
Wrong network error

Switch your wallet to the correct network:

  • Phantom: Settings → Developer → Network
  • Solflare: Settings → Network