How PokeDAO Works
A decentralized autonomous organization for community-governed Pokemon card investments on Solana.
System Architecture
┌─────────────────────────────────────────────────────────────────────┐ │ PokeDAO Protocol │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │ │ │ Frontend │───▶│ Solana RPC │───▶│ Mainnet Programs │ │ │ │ (Next.js) │ │ (Helius) │ │ - Memo Program │ │ │ └─────────────┘ └─────────────┘ │ - Token Program │ │ │ │ │ - SPL Associated │ │ │ │ └─────────────────────┘ │ │ ▼ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │ │ │ Card Data │◀───│ Price Feed │◀───│ CollectorCrypt API │ │ │ │ Cache │ │ (TCG API) │ │ (Market Data) │ │ │ └─────────────┘ └─────────────┘ └─────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ Treasury Wallet │ │ │ │ Address: 5dfiW1dacaFQE1D9y42EG37aEJZRNiUhSkQpxfB7FgZq │ │ │ │ Holdings: SOL + USDC (Real-time balance tracking) │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────┘
Protocol Flow
Token Acquisition
Users acquire a minimum of 3,000 $POKE tokens to become eligible DAO members. Token holdings are verified on-chain via SPL Token Program queries against the configured voting token mint address.
const balance = await getAccount(connection, associatedTokenAddress);
const isEligible = Number(balance.amount) >= 3000;
Proposal & Voting
Eligible members can suggest Pokemon cards to purchase using real-time market data from CollectorCrypt API. Proposals are submitted on-chain via Solana Memo transactions, creating an immutable record of all governance actions.
const tx = new Transaction().add(
new TransactionInstruction({
programId: "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcQb",
data: Buffer.from(`Vote YES on Proposal $${proposalId$}`)
});
);
Automated Execution
Once a proposal reaches the required vote threshold and the voting period ends, the purchase is automatically executed. The system validates that the card price does not exceed the DAO treasury balance before initiating the transaction.
const daoBalance = (solBalance * solPrice) + usdcBalance;
if (cardPrice > daoBalance) throw "Insufficient funds";
Real-Time Portfolio Tracking
The DAO portfolio displays real-time valuations with live price feeds updated every 2 seconds. Each card shows purchase price, current market value, and calculated PnL percentage. When a card appreciates in value, any member can initiate a sell proposal.
const pnl = ((currentPrice - purchasePrice) / purchasePrice) * 100;
const isProfitable = currentPrice >= purchasePrice;
Profit Distribution
When a sell proposal passes and the card is sold at a profit, the gains are distributed proportionally to all voters who participated in the original buy proposal. Distribution is calculated based on voting power (token holdings at time of vote).
const profit = salePrice - purchasePrice;
const voterShare = (voterTokens / totalVoterTokens) * profit;
Technical Stack
Next.js 16
Frontend Framework
Solana Web3.js
Blockchain SDK
Helius RPC
Node Infrastructure
CollectorCrypt
Card Market Data
Tailwind CSS
Styling
TypeScript
Type Safety
