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-solflareConfigure 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 devnetOr 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
- Ensure wallet extension is installed and unlocked
- Check you’re on the correct network
- Clear browser cache and reload
- Try a different browser
Transaction fails silently
- Check console for error messages
- Verify sufficient SOL balance
- Ensure correct program ID
- Check transaction size limits
Wrong network error
Switch your wallet to the correct network:
- Phantom: Settings → Developer → Network
- Solflare: Settings → Network