La mayoría de las apps cripto fracasan antes de que el usuario vea la primera pantalla útil. No por el producto: por el trámite.
Instalá una billetera. Guardá estas doce palabras en un papel. Ahora conseguí el token nativo de la red para poder pagar las comisiones. Ah, y para conseguirlo necesitás una casa de cambio, que te va a pedir el documento.
Son cuatro paredes, y la persona todavía no hizo nada. Para cuando llega al producto ya gastó toda su paciencia en burocracia.
Hace unos meses construí Frontle, un juego diario de geografía con premios reales en stablecoins. Ganó el tercer puesto en la hackathon Colombia de Celo y ahora está en revisión para publicarse dentro de MiniPay. Lo interesante no fue el juego: fue descubrir que casi todas esas paredes son opcionales.
El cambio de pregunta
La pregunta de siempre es "¿cómo le explico la billetera al usuario?".
La pregunta correcta es "¿dónde está la gente que ya tiene una?".
Hay cientos de millones de personas con una billetera cripto funcional que no lo piensan así: la tienen dentro de una app que ya usan para otra cosa. MiniPay, la billetera de Opera, tiene más de 16 millones de usuarios, mucha gente en mercados donde la stablecoin no es especulación sino la forma práctica de tener dólares.
Esa gente no necesita que le expliques nada. Ya tiene saldo. Lo que necesita es que tu app funcione adentro.
Los pasos
Esto es lo que haría de nuevo, en orden.
1. Elegí la red por la audiencia, no por el hype
El criterio no es TPS ni qué cadena está de moda. Es: ¿dónde ya está la gente a la que le sirve esto? y ¿cuánto cuesta una transacción?
Si tu producto cobra diez centavos, una red donde la comisión cuesta ochenta centavos no es una opción técnica mala, es un producto imposible. Elegí Celo porque las comisiones son fracciones de centavo y porque MiniPay —mi distribución— vive ahí.
2. Eliminá el paso de la billetera
Dentro de MiniPay, la billetera se conecta sola. Se lee window.ethereum nativo y listo:
// Sin librería de conexión, sin modal, sin botón "Connect Wallet".
// Dentro del WebView de MiniPay la cuenta ya está disponible.
const [account] = await window.ethereum.request({
method: 'eth_requestAccounts',
})
Nada de WalletConnect, ni selector de billeteras, ni ese modal con doce logos que no le dice nada a nadie. Para quien entra desde afuera dejé Privy como respaldo, pero el camino principal no tiene paso de conexión.
3. Abstraé el gas
Este es el truco que más cambia la experiencia y el que menos gente usa.
Normalmente, para gastar tus dólares digitales necesitás además tener el token nativo de la red. Es como si para pagar con tarjeta tuvieras que llevar monedas aparte para la máquina.
Celo resuelve esto con CIP-64: la comisión se paga en el mismo token con el que estás transaccionando. El usuario paga en USDT, le descuentan en USDT, y nunca ve CELO ni se entera de que existe.
Si tu red lo soporta, usalo. Si no lo soporta, considerá en serio cambiar de red: es la diferencia entre un producto para gente que ya sabe y un producto para cualquiera.
4. Poné en cadena solo el dinero
La tentación de principiante es poner todo on-chain por pureza ideológica. Es caro, lento y no aporta nada.
La línea que tracé:
| En cadena | Fuera de cadena |
|---|---|
| Cobros | Lógica de juego |
| Acumulación del pozo | Ranking del día |
| Registro de ganadores | Perfiles y estadísticas |
| Retiro del premio | Traducciones, UI |
El contrato de Frontle hace cuatro cosas: payAttempt, buyHint, rollDay, claim. Nada más. Todo lo que cambia seguido y no es dinero vive en Postgres, donde consultarlo cuesta microsegundos en vez de centavos.
5. Resolvé el puente con un oráculo, no con confianza
Acá aparece el problema de verdad, y es el que define si tu app es seria.
El ranking está en una base de datos que yo controlo. El premio no puede depender de eso: nadie debería tener que confiar en mi Postgres para cobrar.
La solución es separar quién calcula de quién tiene la verdad:
- Un proceso programado lee el ranking cuando cierra el día.
- Ese proceso escribe los ganadores en el contrato, en una función que solo el operador puede llamar.
- A partir de ahí, el usuario cobra directo del contrato. Yo ya no estoy en el medio.
En Frontle eso es una Edge Function que a las 00:10 UTC llama rollDay(day, winners). Después cada ganador llama claim(day, level) por su cuenta.
Postgres propone, la cadena dispone. Si tu base de datos puede cambiar quién cobra, no tenés un protocolo: tenés una promesa.
6. Hacé que la primera acción sea gratis
El primer intento del día en Frontle no cuesta nada. Jugás, entendés el juego, ves el pozo acumulado, y recién ahí decidís si querés reintentar.
Esto no es generosidad, es diseño de embudo. La persona que paga diez centavos por una pista ya entendió qué está comprando. La que tiene que pagar antes de entender, simplemente se va.
7. Cobrá en centavos
Los precios de Frontle son 0.05 y 0.10 USDT. Hay una razón psicológica concreta: una primera transacción cripto de diez centavos no da miedo.
Si tu primera interacción con una cadena es mover cincuenta dólares, el costo de equivocarte se siente enorme y la gente se paraliza. Si es por diez centavos, probás. Y una vez que probaste, ya sabés que funciona.
Ahí es donde la gente se familiariza de verdad con la moneda: no leyendo un hilo explicativo, sino haciendo una transacción chiquita que sale bien.
8. Hacé visible la ganancia
Si prometés que se puede ganar, mostralo con números reales y verificables. Frontle tiene una página /stats pública que lee directo de la cadena: cuánto hay en el pozo, quién ganó, cuánto se repartió.
El pozo se arma con el 80% de lo recaudado; el 20% sostiene el protocolo. Esa proporción está en el contrato, no en la landing. Cualquiera puede comprobarla.
Lo que aprendí sobre la adopción
Durante años la industria intentó que la gente entienda cripto. El orden está invertido.
La gente no quiere entender una cadena de bloques, igual que no quiere entender SMTP para mandar un mail. Quiere jugar, cobrar, mandarle plata a alguien. La familiaridad llega después del uso, no antes.
Las personas que juegan Frontle no aprendieron qué es una stablecoin leyendo. Lo aprendieron ganando cuarenta centavos un martes y viendo que podían usarlos.
En qué estado está
Frontle está en producción en frontle.earth, con usuarios y dinero real, compitiendo en Proof of Ship —el programa mensual de builders de Celo— y en revisión para entrar al catálogo de MiniPay.
El código es abierto: github.com/davidndeah/frontle. Si estás construyendo algo parecido, la parte que vale la pena mirar es supabase/functions/close-day — ahí está el patrón de oráculo, que es lo único verdaderamente difícil de todo esto.
