Skip to main content

¿Por qué Pan?

Las fintechs en LATAM tienen millones de usuarios pero pocas formas de monetizar sus depositos. Construir productos de rendimiento internamente requiere:
  • Equipos especializados en blockchain
  • Meses de desarrollo e integraciones
  • Riesgo operativo y regulatorio
  • Mantenimiento continuo de infraestructura
Pan te da todo esto listo para usar, con una simple API.
// 1. Configurar provider
const provider = new ethers.JsonRpcProvider(RPC_URL);
const wallet = new ethers.Wallet(PRIVATE_KEY, provider);

// 2. Obtener contrato de Aave
const poolAddress = "0x794a61358D6845594F94dc1DB02A252b5b4814aD";
const poolAbi = [...]; // ABI extenso
const pool = new ethers.Contract(poolAddress, poolAbi, wallet);

// 3. Aprobar tokens
const usdc = new ethers.Contract(USDC_ADDRESS, ERC20_ABI, wallet);
const approveTx = await usdc.approve(poolAddress, amount);
await approveTx.wait();

// 4. Calcular gas, manejar errores, depositar...
// ... 80+ lineas mas de codigo

Caracteristicas Principales

Crea wallets que funcionan en multiples blockchains con una sola direccion. No necesitas manejar direcciones separadas por chain.
const wallet = await pan.wallet.create({ userId: 'usuario_123' });
// wallet.address funciona en Ethereum, Arbitrum, Base, etc.
Beneficios:
  • Una direccion, multiples chains
  • Custodia no-custodial via Privy
  • Balances unificados
En lugar de especificar transacciones exactas, expresas tu objetivo y Pan determina la mejor estrategia.
// Quiero prestar 1000 USDC donde mejor pague
const intent = await pan.lend({
  walletId: 'wallet_abc123',
  amount: 1000,
  asset: 'USDC'
  // No especificas chain - Pan encuentra el mejor APY
});
Pan automaticamente:
  • Analiza APYs en todas las chains
  • Determina si necesita hacer bridge
  • Ejecuta swaps si es necesario
  • Deposita en el protocolo optimo
El sistema inteligente de Pan analiza tu wallet, evalua protocolos DeFi, y genera planes optimizados que minimizan costos de gas.Ejemplo de plan generado:
{
  "strategy": "single-bridge",
  "steps": [
    { "type": "bridge", "from": "arbitrum", "to": "base", "amount": "1000" },
    { "type": "deposit", "protocol": "aave", "amount": "1000" }
  ],
  "estimatedGas": "0.002 ETH",
  "estimatedTime": "2-5 minutos"
}
Pan soporta multiples chains de forma nativa:
ChainMainnetTestnet
EthereumchainId: 1Sepolia (11155111)
ArbitrumchainId: 42161Sepolia (421614)
BasechainId: 8453Sepolia (84532)
Consulta balances de todas las chains con una sola llamada:
const balances = await pan.wallet.getBalances('wallet_abc123');
// Retorna balances de ETH, Arbitrum, Base, etc.

Como Funciona

1

Autentica

Obtiene tu API key desde el dashboard e incluyela en todas tus requests usando el header Authorization.
Authorization: Bearer pan_sk_tu_api_key_aqui
2

Crea Wallets

Crea wallets para tus usuarios con una simple llamada. Cada wallet soporta automaticamente todas las blockchains disponibles.
POST /v1/wallets
{
  "userId": "usuario_123",
  "metadata": { "email": "[email protected]" }
}
3

Consulta Balances

Consulta balances de todas las chains y tokens con un solo endpoint. Obtiene informacion de activos en tiempo real incluyendo valores en USD.
GET /v1/balances/wallet_abc123
4

Ejecuta Intents

Define lo que quieres lograr (por ejemplo, “prestar $1000 USDC”), y Pan maneja toda la complejidad de swaps, bridges y depositos automaticamente.
POST /v1/intents
{
  "walletId": "wallet_abc123",
  "action": "lend",
  "amount": 1000,
  "asset": "USDC"
}

Quien usa Pan

Apps de Pagos

Monetiza los depositos de tus usuarios ofreciendo productos de ahorro con rendimientos competitivos.

Remesas

Agrega valor a tu flujo de remesas permitiendo que los fondos generen rendimiento mientras esperan.

Neobancos

Lanza productos de inversion sin construir infraestructura financiera desde cero.

Ejemplo Completo

Este ejemplo muestra el flujo completo: crear wallet, fondear, consultar balance, y ejecutar un intent de lending:
import { Pan } from '@pan/sdk';

// Inicializar cliente
const pan = new Pan({ apiKey: process.env.PAN_API_KEY });

async function ejemploCompleto() {
  // 1. Crear wallet para un usuario
  const wallet = await pan.wallet.create({
    userId: 'usuario_maria_123',
    metadata: {
      nombre: 'Maria Garcia',
      email: '[email protected]'
    }
  });

  console.log(`Wallet creada: ${wallet.address}`);
  // Wallet creada: 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb

  // 2. Consultar balances (despues de fondear externamente)
  const balances = await pan.wallet.getBalances(wallet.id);

  console.log('Balances por chain:');
  for (const chainData of balances.chains) {
    for (const token of chainData.tokens) {
      console.log(`  ${chainData.chain}: ${token.balanceFormatted} ${token.asset}`);
    }
  }
  // arbitrum: 500.00 USDC
  // base: 300.00 USDC
  // ethereum: 200.00 USDC

  // 3. Obtener mejores yields disponibles
  const { rates, best } = await pan.yields.getAll();

  console.log('Mejores APYs:');
  rates.forEach(y => {
    console.log(`  ${y.chain}: ${y.apy}% en ${y.protocol}`);
  });
  // base: 8.5% en Aave
  // arbitrum: 7.2% en Aave
  // ethereum: 5.1% en Aave

  // 4. Crear intent de lending
  // Pan automaticamente:
  // - Ve que Base tiene mejor APY (8.5%)
  // - Hace bridge de los fondos de Arbitrum y Ethereum a Base
  // - Deposita todo en Aave Base
  const intent = await pan.lend({
    walletId: wallet.id,
    amount: 1000, // Todo el USDC disponible
    asset: 'USDC'
  });

  console.log(`Intent creado: ${intent.id}`);
  console.log(`Estado: ${intent.status}`);
  console.log(`Estrategia: ${intent.executionPlan?.strategy}`);

  // 5. Monitorear ejecucion
  let status = intent.status;
  while (status !== 'completed' && status !== 'failed') {
    await new Promise(r => setTimeout(r, 5000));
    const updated = await pan.getIntent(intent.id);
    status = updated.status;
    console.log(`Estado actual: ${status}`);
  }

  if (status === 'completed') {
    console.log('Lending completado exitosamente!');
    console.log(`Gas total: $${intent.results.totalGasCostUsd}`);
  }
}

ejemploCompleto();

Empieza Ahora

Estado Actual: Pan API v1 soporta lending en las testnets de Ethereum Sepolia, Base Sepolia, y Arbitrum Sepolia. Soporte mainnet y funcionalidades adicionales proximamente.