Next.js 16 Solana Web3 Supabase Prisma / Redis Claude 3.5 AI

BlinkFund

Infraestrutura invisível de pagamentos Web3 para a Creator Economy.

Doações instantâneas via links (Blinks) — partilháveis, rastreáveis e com liquidação on-chain na Solana. Plataforma Full-Stack com integração de IA para otimização de campanhas.

Dashboard do BlinkFund

O Desafio

Doar para criadores na Web3 era um processo lento e com muita fricção: copiar endereço, abrir a wallet, colar, confirmar. O objetivo foi reduzir este fluxo para apenas dois passos — clicar num link e confirmar a transação — mantendo a máxima segurança e rastreabilidade on-chain.

O Meu Papel

Full-Stack Developer: Fui responsável pela arquitetura do sistema, desenvolvimento frontend (PWA), backend, integrações com a Solana Actions API e engenharia de prompts para a IA. Desenvolvido end-to-end para ambiente de produção.

Solução Técnica & Arquitetura

  • Solana Blinks: Links curtos públicos com metadados dinâmicos para pré-renderização em redes sociais (ex: X/Twitter).
  • Autenticação: Passwordless via Sign-In With Solana (SIWS).
  • Orquestração: Server Actions (Next.js 16 App Router) para latência reduzida e SEO otimizado.
  • Persistência e Cache: Base de dados PostgreSQL gerida via Supabase + Prisma, com cache na edge (borda) utilizando Upstash Redis.
  • Tokenomics e IA: Motor de doação on-chain com split atómico de fees, sistema de tokens $BFUND com tiers VIP, e pipeline de IA (Claude 3.5 Sonnet) com proteção contra prompt injection.

Fluxo de Dados (Diagrama)

Cliente (X / Twitter) Next.js Edge / Server Actions Upstash Redis (Cache) Supabase (Postgres) + Prisma Solana Actions API (On-Chain)

Trechos de Código Relevantes

Como a arquitetura foi desenhada para suportar alto tráfego e interações on-chain de forma segura.

Exemplo: Orquestração no Server Action (Next.js)

export async function processDonation(data) {
  // 1. Validação de inputs e verificação de cache (Upstash)
  const blink = await getBlinkFromCacheOrDb(data.slug);
  
  if (!blink) throw new Error("Campanha não encontrada");

  // 2. Preparação da transação Web3 (Solana Actions)
  const transaction = await buildSolanaTransaction(blink.wallet, data.amount);
  
  // 3. Retorno otimizado para a wallet do utilizador assinar
  return { 
    status: 'success', 
    transactionPayload: transaction,
    splitFee: blink.tier === 'Diamond' ? 0 : 0.02 
  };
}

Exemplo: Modelação Prisma (Simplificada)

model Blink {
  id          String   @id @default(cuid())
  slug        String   @unique
  creatorId   String
  metadata    Json     // Guarda descrições geradas pela IA
  targetGoal  Float?
  createdAt   DateTime @default(now())
  
  // Relações
  creator     User     @relation(fields: [creatorId], references: [id])
}
Voltar aos Projetos Próximo Projeto: Seven Faith