Ahorrá USDT. Ganá un premio semanal.

Cómo funciona
Zorrito V2

Ahorro en USDT sin pérdidas — tu principal siempre está seguro.

💡 La idea es simple: depositás USDT, el pool genera rendimiento en Aave V3, y cada semana ese rendimiento va a un ahorrador activo elegido al azar. Además, los incentivos Merit de ACI se distribuyen directamente a todos los depositantes. Nunca perdés tu capital — nunca.

Cómo funciona

1
Depositás USDT

Mínimo 0.25 USDT. Tu depósito va directo a Aave V3 en Celo y empieza a generar rendimiento al instante. Cada USDT = más chances en el sorteo semanal.

2
Ahorrás cada día

Presionás "Ahorrar hoy" una vez por día UTC. Cada día suma +1 al streak (racha) de la semana. El streak multiplica tus chances — a mayor streak, mayor probabilidad de ganar.

3
Acumulás Merit Rewards

El programa Merit de ACI distribuye incentivos en USDT directamente a todos los depositantes, proporcional a tu depósito. Se acumulan en el contrato y los reclamás cuando querés — sin acción diaria requerida.

4
Sorteo cada lunes

Cada lunes a las 10:05 UTC, el rendimiento base de Aave se sortea entre todos los ahorradores activos. El ganador recibe el 90% del prize pool directamente en su wallet — sin claim, sin demoras.

5
Retirás cuando querés

Tu principal nunca está bloqueado. Retirás todo o parte en cualquier momento, sin penalidades ni lock-up. Los Merit rewards los reclamás por separado.


🔥 Streak semanal

Cada semana (lunes a domingo UTC) tenés 7 días para ahorrar. Cada día que presionás "Ahorrar hoy" suma +1 al streak. El streak multiplica tus chances en el sorteo de esa semana.

💡 Dos usuarios con 100 USDT cada uno: el que ahorra todos los días tiene streak 7 (700 chances). El que no ahorra ninguno tiene streak 1 mínimo (100 chances). Misma inversión, 7× más probabilidad de ganar.

Días ahorrados esta semanaMultiplicadorEjemplo (100 USDT)
0 días (nunca ahorraste)100 chances
1 día100 chances
2 días200 chances
3 días300 chances
4 días400 chances
5 días500 chances
6 días600 chances
7 días 🏆700 chances

El streak resetea automáticamente cada lunes a las 00:00 UTC. Si no ahorrás ningún día de la semana, tu multiplicador es 1× (el mínimo garantizado para usuarios con depósito).

🛡️ Seguridad sin cambios. Los multiplicadores de streak son determinísticos y públicamente legibles on-chain — cualquier observador puede verificarlos en cualquier momento. No afectan cómo se elige al ganador, sólo cuántas chances tiene cada jugador. Un atacante no puede manipular su multiplicador para sesgar el acumulador de entropía — los streaks se ganan con tiempo real y no se pueden falsificar.


🎫 Cómo sumar más chances

Hay cuatro maneras de aumentar tu probabilidad de ganar el sorteo semanal:

💰
Depositá más USDT — más depósito = más chances base. Cada USDT cuenta directamente en la fórmula.
🔥
Mantené el streak diario — cada día que ahorrás sube el multiplicador. Máximo 7× el domingo de la semana.
🔗
Traé referidos — cada amigo que deposita con tu código suma +10% a tus chances de forma permanente.
Self
Verificate con Self +25% — verificás tu pasaporte con ZK proof, una sola vez, sin revelar datos personales. El bonus es permanente.

Fórmula completa:

chances = depósito × streakDay × (10 + referidos) / 10 × Self bonus

El Self bonus es 1.25× para wallets verificadas con Self, 1× para el resto.

Tu probabilidad de ganar el sorteo es proporcional a tus chances efectivas sobre el total del pool:

P(ganar) = tus chances efectivas ÷ total de chances del pool

Ejemplo: tenés 50 USDT, streak 7, 2 referidos, verificado con Self → 50 × 7 × 12/10 × 1.25 = 525 chances. Sin Self serían 420. Si el pool tiene 4.000 chances totales, tu probabilidad pasa de 10.5% a 13.1%.


🏆 El sorteo semanal

El prize pool es el rendimiento que acumula el pool completo en Aave V3 durante la semana. Crece con el monto total depositado y el APY de Aave.


🎖️ Merit Rewards (ACI)

Zorrito participa en el programa Merit de ACI (Aave Chan Initiative). ACI distribuye USDT adicional a los proveedores de liquidez de USDT en Aave V3 en Celo.

📌 Los Merit Rewards son independientes del sorteo. Ganar o perder el sorteo no afecta tus Merit rewards. Todo depositante los recibe proporcionalmente — siempre.


🤝 Referidos


🎁 Bonus de bienvenida

La primera vez que completás 5 días consecutivos ahorrando, recibís 0.5 USDT directamente en tu wallet. El bonus está financiado por la wallet de incentivos del proyecto y se entrega automáticamente al completar el quinto día.


🎲 Cómo funciona el azar

Elegir un ganador on-chain es difícil — el blockchain es determinístico y público, así que cualquier valor conocido al momento del sorteo puede ser manipulado por el proposer de ese bloque. Zorrito resuelve esto con un acumulador de entropía estilo RANDAO, el mismo principio que usa la capa de consenso de Ethereum.

🔁 Fase 1 — Acumulación (durante la semana)

Cada vez que cualquier usuario llama a deposit() o withdraw(), el contrato mezcla el prevrandao del bloque actual (EIP-4399) + la dirección del caller + el timestamp en un acumulador rodante entropyAccumulator almacenado on-chain:

entropyAccumulator = keccak256(
  entropyAccumulator, // valor previo acumulado
  block.prevrandao,     // beacon EIP-4399 del bloque
  block.timestamp,
  msg.sender,          // quién transacciona ahora
  totalPrincipal
)
🎯 Fase 2 — Sorteo (cada lunes 10:05 UTC)

El keeper hace commit del estado de entropía en el bloque 0 y ejecuta el sorteo unos bloques después, usando el blockhash de un bloque intermedio futuro:

finalSeed = keccak256(
  committedEntropy,   // acumulado de toda la semana
  blockhash(commit + 5)// hash de un bloque futuro
) % totalEffectiveChances

🛡️ Por qué es difícil manipularlo: Para sesgar el resultado, un atacante necesitaría controlar el proposer L1 en cada depósito, save y withdraw hecho por cualquier usuario durante toda la semana. Eso incluye desconocidos al azar haciendo save a horarios impredecibles. Incluso un validador con poder de red significativo necesitaría corromper docenas de transacciones independientes — un ataque de coordinación prácticamente imposible.

Comparación: enfoques de aleatoriedad
Enfoque Influencia del validador Costo de ataque
Sólo blockhash Alta — control total 1 propuesta de bloque
Sólo beacon Celo Baja — saltear 1 turno 1 bit de influencia
Acumulador Zorrito ✓ Negligible Controlar cada tx de toda la semana
VRF oracle externo Cero Aún no disponible en Celo

📋 Contratos inteligentes

Zorrito V2 (Celo Mainnet) 0x0D18f6e8f8A22ED9D1259205a5eB236c62df8Fe6
Ver en CeloScan ↗
USDT en Celo (LayerZero) 0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e
Ver en CeloScan ↗
Aave V3 Pool (Celo) 0x3E59A31363E2ad014dcbc521c4a0d5757d9f3402
Ver en CeloScan ↗
aUSDT (Aave Celo) 0xDeE98402A302e4D707fB9bf2bac66fAEEc31e8Df
Ver en CeloScan ↗

🛡️ Seguridad

LOW
Acumulador de entropía RANDAO-style + EIP-4399 prevrandao

Zorrito usa un enfoque de aleatoriedad de dos capas. Durante la semana, cada deposit() y withdraw() mezcla el prevrandao del bloque actual (EIP-4399, junto con la dirección del caller y el timestamp) en un acumulador rodante guardado en el contrato. Al momento del sorteo, el ganador se elige con un hash final de: entropía acumulada + blockhash de bloque futuro. Para sesgar el resultado un atacante necesitaría controlar el proposer L1 en cada interacción de usuario durante 7 días — un ataque de nivel estatal, no una amenaza realista. block.prevrandao es la fuente estándar de aleatoriedad EIP-4399 en Celo L2 (OP Stack).

LOW
Sin admin keys peligrosas

El owner puede ajustar parámetros (fees, bonus) pero con un límite hardcodeado del 20%. No puede pausar el contrato, cambiar la lógica de sorteo, ni acceder a los fondos. La lógica core es inmutable.

LOW
Dependencia de Aave V3

Los fondos están depositados directamente en Aave V3 en Celo. El riesgo es equivalente al riesgo del protocolo Aave. Aave V3 ha sido auditado y tiene más de $10B en TVL en todos sus deployments.

LOW
Emergency return

En caso de migración o bug crítico, el owner puede activar el modo emergencia. emergencyReturn() devuelve el principal a todos los usuarios automáticamente — sin que tengan que hacer nada.

LOW
Verificación con Self · ZK proofs

La integración con Self.xyz usa pruebas de cero conocimiento. El contrato sólo guarda un flag booleano (verificado / no verificado) por wallet. Ningún dato personal, número de pasaporte ni fecha de nacimiento toca el contrato ni el frontend de Zorrito.

INFO
MVP — usá con precaución

Zorrito V2 es un MVP experimental. No depositás fondos que no puedas permitirte perder. Se recomienda una auditoría formal antes de escalar el TVL.


SelfVerificación de identidad con Self · +25% chances

🛂 Verificate con tu pasaporte y sumá +25% de chances permanentes. Sin revelar datos personales — solo probás que sos un humano real.

¿Qué es Self? Self es un protocolo de verificación de identidad con ZK proofs (pruebas de cero conocimiento) construido sobre Celo. Escaneás tu pasaporte con la app Self, se genera una prueba criptográfica de que el documento es válido, y esa prueba se verifica on-chain — sin que nadie vea tus datos.

¿Cómo funciona el bonus? Una vez verificada tu wallet, el contrato de Zorrito V2 registra esa verificación permanentemente. Tu fórmula de chances se multiplica × 1.25 desde ese momento:

Chances = depósito × streakDay × (10 + referidos) / 10 × 1.25 (Self bonus)

Flujo de verificación (una sola vez):

1
Instalá la app Self

Disponible en iOS y Android. Necesitás tu pasaporte o documento biométrico.

2
Tocá "Verificar con Self" en el home de Zorrito

Se abre la app Self automáticamente. No uses el botón de volver — Self te redirige de vuelta cuando termina.

3
Escaneá tu pasaporte en Self

Self genera un ZK proof que prueba que el pasaporte es válido y no está vencido, sin revelar nombre, número ni fecha de nacimiento.

4
Volvé a la app de Zorrito

La verificación se registra on-chain automáticamente. Ves el badge ✅ y el +25% ya está activo.

🔒 Privacidad: Zorrito nunca ve tu nombre, número de pasaporte ni ningún dato personal. El ZK proof solo prueba que "este pasaporte existe, es válido, y pertenece al holder" — nada más. La verificación es permanente: solo necesitás hacerla una vez.


🎨 Personalizá tu zorro con IA · 0.25 USDT

Por solo 0.25 USDT podés generar una imagen única de tu zorro con IA (Gemini 2.5 Flash Image). El zorro se guarda en tu perfil y aparece en lugar del zorro genérico en el home, en el card de "Tu Zorro" y en las shares de X cuando compartís tu streak.

Cómo funciona

  1. Depositá primero (cualquier monto ≥ 0.25 USDT). El customizer está bloqueado hasta que adoptes tu zorro.
  2. Tocá "Personalizá tu Zorro IA" en la home — se abre un modal con opciones de pelaje, accesorio, fondo, camiseta de fútbol, expresión, y un campo de descripción libre (200 chars máx).
  3. Tocá "Generar mi Zorro". Tu wallet manda 0.25 USDT a la wallet de plataforma (Platform Wallet). El pago se verifica on-chain.
  4. Esperá ~20 segundos mientras Gemini 2.5 Flash Image genera tu zorro a partir de la imagen base de Zorrito + tus traits. Se guarda en Vercel Blob y aparece en tu home.
  5. Tu zorro queda público en la galería. Cuando compartís en X, la card embebe tu zorro automáticamente.

¿Por qué cuesta?

Cada generación corre Gemini 2.5 Flash Image (vía Vercel AI Gateway) — eso tiene un costo real en infra. El precio de 0.25 USDT cubre la inferencia, el storage del blob, y mantiene la galería curada (sino la spammean en minutos). El pago NO va al contrato — va directo a la PLATFORM_WALLET, separada del pool de ahorros.

¿Puedo regenerar?

Sí, cuántas veces quieras — cada generación cuesta 0.25 USDT. La galería pública mantiene solo el último zorro por wallet (no acumula).


🤖 Integración con agentes de IA · x402

🦾 Zorrito V2 soporta el protocolo de pago x402. Los agentes de IA pueden depositar USDT, hacer save todos los días y competir en el sorteo semanal — todo vía HTTP estándar, sin UI de wallet.

¿Qué es x402?

x402 revive el código de estado HTTP 402 Payment Required como un protocolo de pago legible por máquinas para agentes de IA. En vez de un popup de wallet, el agente recibe una respuesta 402 con instrucciones de pago estructuradas, ejecuta una transferencia on-chain automáticamente, y re-llama al endpoint con un header de comprobante. El servidor verifica la transacción y ejecuta la acción. Sin aprobación humana en ningún paso.

Flujo de pago

1
El agente llama al endpoint

Sin headers. El servidor responde con HTTP 402 y un header X-Payment-Required describiendo cuánto USDT enviar, a qué dirección, y en qué red.

2
El agente envía USDT en Celo

Transferí el USDT requerido a la dirección facilitadora que aparece en la respuesta 402. Es un transfer ERC-20 estándar — sin lógica de contrato especial.

3
El agente re-llama con prueba de pago

Incluí X-Payment: base64(JSON.stringify({txHash: "0x..."})) en los headers. El servidor verifica la transacción on-chain.

4
El servidor ejecuta la acción

El facilitador llama a depositFor(agentAddress, amount) o saveFor(agentAddress) en el contrato de Zorrito V2. La dirección del agente queda registrada en el sorteo semanal con su propia identidad on-chain.

5
El agente recibe 200 con el txHash de Celo

La respuesta incluye el txHash de Zorrito, el streak actual y las chances efectivas del agente para el sorteo semanal.

Endpoints

GET /api/agent?action=status&address=0x... gratis · sin pago

Devuelve depósito, streak actual de la semana, días faltantes hasta el próximo sorteo, chances efectivas y stats del pool para cualquier dirección. Usalo antes de actuar para decidir si depositar o hacer save.

POST /api/agent?action=deposit&beneficiary=0x...&amount=10

Deposita N USDT en el pool a favor de beneficiary. Devuelve 402 con instrucciones de pago si no hay header X-Payment. Mínimo 0.25 USDT.

POST /api/agent?action=save&beneficiary=0x...

Hace save por beneficiary (+1 al streak de la semana). Se puede llamar una vez por día UTC. Devuelve 402 si no hay header de pago. No cuesta USDT más allá del fee de gas — el save es una llamada gratis al contrato.

Ejemplos de código

JavaScript / TypeScript (ethers.js)
// Wallet del agente — debe tener CELO (gas) y USDT en Celo
const wallet = new ethers.Wallet(AGENT_PRIVATE_KEY, provider);
const usdt = new ethers.Contract(USDT_ADDRESS, ERC20_ABI, wallet);

const BASE_URL = "https://www.zorrito.app";
const BENEFICIARY = wallet.address;

// Paso 1 — probe para instrucciones de pago
const probe = await fetch(
  `${BASE_URL}/api/agent?action=deposit&beneficiary=${BENEFICIARY}&amount=10`,
  { method: "POST" }
);
const { payTo, asset, amountRequired } = await probe.json();

// Paso 2 — enviar USDT al facilitador
const tx = await usdt.transfer(payTo, "10000000"); // 10 USDT
await tx.wait();

// Paso 3 — re-llamar con comprobante
const proof = btoa(JSON.stringify({ txHash: tx.hash }));
const res = await fetch(
  `${BASE_URL}/api/agent?action=deposit&beneficiary=${BENEFICIARY}&amount=10`,
  { method: "POST", headers: { "X-Payment": proof } }
);
const result = await res.json();
console.log("Zorrito tx:", result.zorritoTx);
Python
# pip install web3 requests
import requests, base64, json
from web3 import Web3

w3 = Web3(Web3.HTTPProvider("https://forno.celo.org"))
account = w3.eth.account.from_key(AGENT_PRIVATE_KEY)
BASE_URL = "https://www.zorrito.app"
BENEFICIARY = account.address

# Paso 1 — probe para instrucciones de pago
probe = requests.post(
  f"{BASE_URL}/api/agent",
  params={"action": "deposit", "beneficiary": BENEFICIARY, "amount": "10"}
)
data = probe.json()
pay_to = data["payTo"]

# Paso 2 — enviar USDT en Celo
tx_hash = send_usdt(w3, account, pay_to, 10_000_000) # 10 USDT

# Paso 3 — re-llamar con comprobante
proof = base64.b64encode(json.dumps({"txHash": tx_hash}).encode()).decode()
res = requests.post(
  f"{BASE_URL}/api/agent",
  params={"action": "deposit", "beneficiary": BENEFICIARY, "amount": "10"},
  headers={"X-Payment": proof}
)
print(res.json()["zorritoTx"])

⚠️ Requisitos del agente: La wallet del agente debe tener CELO para gas (~$0.001/tx) y USDT en Celo para depósitos. Para mantenerse activo en el sorteo semanal, el agente debe llamar al endpoint save una vez por día UTC.


🤖 Cómo crear tu propio agente

🦾 Cualquiera puede correr un agente autónomo de Zorrito V2. Copiá el prompt de abajo en Claude — te va a generar todos los archivos necesarios y guiarte por el deploy completo. Sin experiencia de DevOps.

El agente corre en Vercel Cron (free tier), se ejecuta una vez por día UTC, hace save en Zorrito y opcionalmente retira el USDT excedente a la wallet del agente.

▲ Vercel Cron ⬡ Node.js ⚡ ethers.js v6 🟡 Celo Mainnet Free · ~$0/mes
1
Copiá el prompt de abajo → pegalo en Claude

Claude va a generar api/zorrito-daily.js, vercel.json y un README con todas las direcciones y parámetros pre-cargados.

2
Creá una wallet dedicada para el agente

Corré node -e "const {ethers}=require('ethers'); const w=ethers.Wallet.createRandom(); console.log(w.privateKey, w.address)" — financiala con 0.1 CELO (gas) + el USDT que quieras depositar en Celo mainnet.

3
Push a GitHub → importá en Vercel

Agregá AGENT_PRIVATE_KEY y CRON_SECRET como variables de entorno en el dashboard de Vercel.

4
Probá manualmente, después dejalo correr

Disparalo una vez con curl -X POST https://your-project.vercel.app/api/zorrito-daily -H "Authorization: Bearer your-secret". De ahí en más el cron se ejecuta solo todos los días.

Claude prompt — copiar y pegar
I want to build an autonomous agent that deposits 0.25 USDT every day on Zorrito V2 to maintain a daily streak in the no-loss raffle on Celo mainnet. ## What is Zorrito V2? Zorrito V2 (https://zorrito.app) is a no-loss savings raffle on Celo. Users deposit USDT; funds earn yield on Aave V3; every Monday at 10:05 UTC the accumulated weekly yield goes to one random saver weighted by effective chances. Chances = deposit × streakDay × (10 + referrals)/10 × selfBonus. To maximize chances, the agent must deposit at least 0.25 USDT once per UTC day (each daily deposit adds +1 to the streak, capped at 7). Skipping a UTC day kills the fox — next deposit resets streak to 1. ## The daily deposit window Each UTC day (00:00 to 23:59 UTC), the agent must call deposit(0.25 USDT) at least once. Multiple deposits the same UTC day are allowed but only the first one increments the streak; the rest just add USDT. Skipping a day means the fox dies and the streak resets to 1 on the next deposit. ## Tech stack - Vercel Serverless Function (Node.js runtime) - Vercel Cron — free Hobby plan, 1 cron/day — schedule: "5 8 * * *" (08:05 UTC) - ethers.js v6 for Celo RPC + contract interactions - Env vars: AGENT_PRIVATE_KEY, CRON_SECRET ## Contracts (Celo Mainnet, chainId 42220) - Zorrito V2: 0x8f4E627d4C4Af5dfE11908Bd8B929588d9Ee58c9 - USDT (LayerZero): 0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e - Aave V3 Pool: 0x3E59A31363E2ad014dcbc521c4a0d5757d9f3402 - aUSDT (Aave Celo): 0xDeE98402A302e4D707fB9bf2bac66fAEEc31e8Df - Celo RPC: https://forno.celo.org ## ABI fragments deposit(uint256 amount, bytes4 refCode) depositFor(address beneficiary, uint256 amount, bytes4 refCode) // sponsorship withdraw(uint256 amount) claimSavings() deposits(address user) → uint256 streakDay(address user) → uint8 lastDepositDay(address user) → uint256 getStatus(address user) → (bool alive, uint8 streak, uint256 deadline, uint256 secondsUntilDead) effectiveChances(address user) → uint256 balanceOf(address account) → uint256 [ERC-20 USDT] approve(address spender, uint256 amount) → bool [ERC-20 USDT] ## Please create 1. api/zorrito-daily.js with the full agent logic: - Bearer token auth via CRON_SECRET env var - Read lastDepositDay and getStatus in parallel - Compute todayUtc = floor(Date.now() / 86400000). If lastDepositDay >= todayUtc → already deposited today, return early. - Ensure USDT allowance to the contract is >= 0.25 USDT (approve MaxUint256 once if needed). - Call deposit(250_000, "0x00000000") — every deposit auto-extends the streak. - Return JSON: { action, txHash, explorer link, currentStreak, deadline, status } 2. vercel.json: { "crons": [{ "path": "/api/zorrito-daily", "schedule": "5 8 * * *" }] } 3. README.md explaining: - How to generate a dedicated agent wallet (ethers.Wallet.createRandom()) - How to fund it: ~0.1 CELO for ~30 days of gas + 0.25 USDT × days_planned for daily deposits - How to set AGENT_PRIVATE_KEY and CRON_SECRET in Vercel dashboard - How to deploy: git push → Vercel auto-deploys - How to test: curl -X POST https://your-project.vercel.app/api/zorrito-daily -H "Authorization: Bearer your-secret" - How to verify: open https://zorrito.app and check the agent wallet address — see deposit, streak and effective chances

🟡 Costo de operación: Vercel Hobby es gratis (1 cron/día). El gas en Celo es ~$0.001/tx — 0.1 CELO te dura meses. Capital inicial: el mínimo de Zorrito V2 (0.25 USDT) — todo principal es retirable en cualquier momento.


📱 Compatible con MiniPay

🌍 Zorrito V2 funciona nativo dentro de MiniPay — la wallet de stablecoins integrada en Opera Mini con más de 10M de activaciones en África y Latinoamérica.

MiniPay es una wallet liviana no custodial de Opera, enfocada en el Sur Global. Los usuarios transaccionan con stablecoins (USDT, USDC, cUSD) con fees inferiores a 1 centavo en Celo — sin extensiones de browser.

Qué implementamos para MiniPay
Auto-connect al cargar — corriendo dentro de MiniPay, Zorrito pide la dirección de wallet inyectada sin mostrar botón de "Connect Wallet".
Botón de connect oculto — dentro de MiniPay el botón de WalletConnect se oculta y se reemplaza por un badge compacto con la dirección, manteniendo la UI limpia en mobile.
Transacciones legacy (type 0) — MiniPay sólo acepta transacciones legacy. Cada contract write (deposit, save, withdraw, approve) usa type: 0 con gasPrice explícito al estar dentro de MiniPay.
Listener de cambio de cuenta — si el usuario cambia de cuenta dentro de MiniPay, la app se reconecta automáticamente y refresca balances y estado.
Self.xyz dentro de MiniPay — el botón de verificación abre la app Self, generás el ZK proof, y al volver a Zorrito la verificación se detecta automáticamente sin recargar (polling compatible con el WebView de MiniPay).
Sólo Celo mainnet — Zorrito V2 corre exclusivamente en Celo, la única red que soporta MiniPay.

📲 Cómo abrir Zorrito en MiniPay: Abrí MiniPay → tocá el ícono de la brújula (página de discovery) → buscá Zorrito.

💜 Compatible con Valora

💜 Zorrito V2 está listado en el dApp browser de Valora — la wallet self-custody líder en Celo con millones de usuarios en África y Latinoamérica.

Valora es una wallet self-custody mobile-first construida sobre Celo. Tiene un dApp browser integrado y pasa la dirección de wallet a las dApps vía URL templating, permitiendo onboarding sin fricción.

Qué implementamos para Valora
Valora como wallet destacada — el WalletConnect ID de Valora aparece primero en el selector de AppKit para que los usuarios no se pierdan buscando su wallet.
URL templating con {{address}} — la URL de Zorrito en la lista de dApps de Valora usa ?address={{address}}. Cuando Valora abre la dApp inyecta la dirección, cargando el estado del usuario en modo read-only antes de tocar Connect.
Firma vía WalletConnect v2 — todos los contract writes (deposit, save, withdraw) usan Reown AppKit → WalletConnect v2. Valora se conecta vía el flow estándar y firma nativamente.
Celo mainnet (chainId 42220) — Zorrito V2 corre exclusivamente en Celo, la misma red sobre la que está construido Valora.

💜 Cómo abrir Zorrito en Valora: Abrí Valora → tocá la tab Discover → buscá Zorrito.


💰 Modelo de negocio

💡 Zorrito V2 cobra un 10% del rendimiento semanal del sorteo y un 15% sobre los Merit rewards distribuidos. Tu principal está siempre seguro — los fees aplican sólo al yield, nunca al depósito.

Para mantener Zorrito V2 operativo, la infraestructura corriendo y el desarrollo activo, se descuentan dos fees on-chain con total transparencia:

Cómo funciona:


FAQ

¿Puedo perder mi USDT?

No. Tu USDT está siempre en Aave V3. El único "en juego" es el yield generado, que financia el premio semanal. Tu principal nunca está en riesgo — en el peor caso, el owner activa el emergency mode y te devuelve todo.

¿Qué pasa si no ahorro ningún día de la semana?

Tu streak queda en 0 y tu multiplicador es 1× (el mínimo). Seguís participando en el sorteo con tus chances base (depósito × 1). Tu depósito sigue generando Merit rewards de todas formas.

¿Cómo sé que el sorteo es justo?

El sorteo usa un acumulador de entropía que mezcla datos de cada transacción durante la semana. El número ganador se commitea el lunes 10:00 UTC y se ejecuta unos bloques después usando el blockhash intermedio. Todo es verificable on-chain en CeloScan — el código fuente está verificado.

¿Puedo retirar cuando quiero?

Sí, en cualquier momento, sin penalidades. Si retirás antes del lunes, perdés tus chances de esa semana. Los Merit rewards acumulados los reclamás por separado desde el home.

¿Qué son los Merit Rewards y cómo llegan?

ACI (Aave Chan Initiative) paga incentivos adicionales en USDT a los proveedores de liquidez de USDT en Aave V3 en Celo. El keeper del protocolo reclama esas recompensas de Merkl periódicamente y las deposita en el contrato. El contrato las distribuye automáticamente de forma proporcional. Vos solo tenés que hacer "Reclamar savings" cuando quieras cobrarlas.

¿El streak resetea si no gané el sorteo?

No. El streak no depende de ganar o perder el sorteo. Solo resetea si no presionás "Ahorrar hoy" en la semana actual. Un nuevo lunes = nuevo streak que empieza desde 0 (o desde donde venías si seguís ahorrando).

¿Cuánto es el mínimo para depositar?

0.25 USDT. No hay máximo.

¿Funciona en MiniPay?

Sí. Zorrito V2 es compatible con MiniPay (Opera Mini wallet) — usa transacciones tipo 0 (legacy) que MiniPay soporta. Conectá tu wallet y usá el app normalmente.

¿La verificación con Self funciona dentro de MiniPay?

Sí. Tocás el botón de verificación, MiniPay abre la app Self, generás el ZK proof, y cuando volvés a Zorrito la verificación se detecta automáticamente (sin necesidad de recargar). El sistema usa polling en background compatible con el WebView de MiniPay — iOS puede pausar el tab mientras estás en Self, pero la verificación se registra igual cuando volvés.

¿El bonus de Self se aplica de inmediato?

Sí. En cuanto el contrato registra la verificación (≈5 segundos — un bloque de Celo), el árbol de Fenwick se actualiza y tus chances efectivas ya incluyen el +25%. Aplica para el próximo sorteo semanal.

¿Qué pasa si no me verifico con Self?

Nada — seguís participando normalmente. La verificación con Self es opcional y solo suma un bonus. No afecta la mecánica base del protocolo.

¿Cómo recibo el premio si gano el sorteo?

Directo a tu wallet desde Aave al momento del sorteo. No hay que reclamarlo — el USDT aparece solo.

¿En qué red corre?

Celo mainnet (chainId 42220). El gas se paga en CELO y es muy barato (<$0.001 por transacción). Necesitás una pequeña cantidad de CELO en tu wallet para gas.

¿El código es open source?

Sí. El contrato está verificado en Celoscan y el repositorio completo es público en GitHub.