Bloque #7: Amplify con Dune Analytics

En la aplicación práctica de Dune Analytics, decidí utilizar un proyecto llamado Amplify de la gente de Cafecito. Como siempre, todo el código que aparezca en este Bloque lo podrán encontrar en el Github de Bloque X, pero en este caso particular también podrán verlo en mi perfil de Dune Analytics: https://dune.com/fergmolina.

El link al tablero el cual vamos a explicar cómo construir es https://dune.com/fergmolina/amplify-by-cafecito

Pasemos ahora con algunas definiciones antes de meternos de lleno en el tablero.

Cafecito

Cafecito es una “plataforma de crowdfunding que busca unir a creadores de contenido, ONGs o proyectos con gente que quiera aportar a lo que hacen”, según su sitio web. Ideado por Damián Catanzaro, Cafecito se convirtió en la herramienta primordial de los diferentes influencers o proyectos para poder monetizar fácilmente su trabajo: simplemente ellos ponían su link de Cafecito y la gente podía donarles dinero en forma de Cafés. Su integración con MercadoPago hizo que estas donaciones fueran super ágiles y amigables, lo que claramente empujó la adopción de la app. 

Los que siguen a Damián en las redes sociales, saben que es una persona a la cual el mundo Cripto le llama mucho la atención, ya que ha hecho diferentes proyectos paralelos desde bots de trading de NFTs hasta streams explicando cómo interactuar con contratos (y en los cuales hay algunos super interesantes que ha guardado y dejo aquí sus links). En el último tiempo, Damián fusionó su emprendimiento con Juani Gallo y crearon además otro proyecto llamado FundIt el cual permite que diferentes proyectos puedan obtener crowdfunding utilizando cripto. Los muchachos de Cafecito ya venían experimentando con Cripto, ya que habían agregado la posibilidad de que se pueda donar BTC utilizando Lighting Network y en Febrero del 2024 presentaron Amplify. 

Amplify

Amplify es presentada como una plataforma de cobros con cripto que funciona (al momento de escribir este post) únicamente en Polygon. Esta herramienta fue utilizada en Cafecito para poder aceptar donaciones en USDT y USDC a través de esta red. Lo interesante es que la herramienta puede ser utilizada por desarrolladores para poder cobrar con stablecoins, integrar a sus sitios y luego poder pasar esos saldos a Pesos Argentinos a su cuenta de banco. Como se ve en el siguiente tweet, Damián muestra cómo puede utilizarse un exchange, una wallet o directamente una app de terceros como Lemon para poder hacer los depósitos en stablecoins. 

Supuestos

Al ser una plataforma completamente onchain y recién salida del horno, me pareció una buena oportunidad para empezar a mostrarles las bondades de Dune Analytics. El problema es que aún no había mucha documentación de cómo funcionaba Amplify. Lo único que estaba funcionando era su integración con Cafecito. Intenté comunicarme con Damián vía Twitter para ver si le interesaba la realización de este dashboard, pero no llegó a buen puerto (super entendible de parte de los chicos que recién estaban sacando una feature nueva y reciben por cada tweet 100 mensajes). Esta explicación la hago no para pegarle a los chicos de Cafecito sino para que les quede claro que, si hay algo que funciona onchain, esa info está disponible para quien quiera y la sepa consultar. Esta fue un poco la motivación para empezar este blog en un principio.

Al estar funcionando Amplify en Cafecito, decidí donar 1 USDT a Impuestito , un sitio que te muestra los impuestos a pagar por diferentes servicios en Argentina. El envío lo hice desde Lemon el cual envío mi 1 USDT a la wallet 0x2004178b07f0e3425c9cd1b3ef87c693253de3f0 en Polygon. Según me comentó Damián, cada wallet es utilizada una sola vez y luego se elimina. Ahora quedaba seguir “la ruta del dinero” para entender cómo funcionaba (?). 

Al minuto se ejecutó otra transacción, la cual fue generada por la wallet 0xC435e1DAba1513f3EC285f184eC523308E09D8f5 y generó una interacción con el contrato 0x2100b5b6709302CB3eAE5def3FE8e3F9704e28B8. El contrato termina tomando el USDT que yo deposité en esa wallet y lo transfiere a una nueva wallet que es 0xFc4fC27c278e9eA16030fc4F7F9D2ac511d1c1f8

Diagrama de funcionamiento de Amplify con el ejemplo del Bloque 7

El contrato no está verificado, por lo que no tenemos detalle de cómo funciona el mismo. Pero podemos suponer algunas cosas:

  • El contrato toma MATIC de la wallet ejecutor para poder hacer en una misma Tx el envío de la wallet depósito a la wallet bóveda. Es un tema interesante ya que las wallets a las cuales uno deposita son de un solo uso y no tienen MATIC para poder hacer Txs. 
  • La wallet bóveda es donde decantan al final de una Tx todos las stablecoins 
  • El contrato tiene permisos a las wallets depositantes y poder transferir las stablecoins

Dashboard

Al tener una wallet bóveda, se hace todo mucho más fácil ya que es en la única wallet donde debemos concentrarnos: el envío de USDC o USDT a esta wallet será el indicativo de que existe una nueva donación. Lamentablemente, como las wallets son de un solo uso y un usuario en Cafecito puede estar asociado con muchas wallets, solo podremos tener data de Amplify como producto y no de cada usuario. Pero podremos tener info sobre cantidad de donaciones/txs, cantidad de USDT y UDSC, evolución diaria, entre otras. 

Las tablas a utilizar en este caso son dos:

  • erc20_polygon.evt_Transfer: Es una tabla donde ya tenemos indexados las transferencias de tokens que respetan el estándar ERC-20 en Polygon. Su schema puede ser consultado a través de aquî
  • Tokens.erc20: Tabla con tokens ERC-20 indexados y normalizados en diferentes blockchains. Podremos obtener su symbol, decimales, blochckain y contract address.

Existen diferentes formas de crear un dashboard en Dune:

  • Podemos crear una query por cada gráfico o widget que queramos consultar. La ventaja es que es más ordenado, pero su desventaja es que seguramente consumiremos más tokens de Dune para ejecutar cada query.
  • Crear una mega query que contenga diferentes métricas agrupadas. Luego, podremos generar los diferentes gráficos utilizando una sola query. Claramente, el mantenimiento de una query tan grande y compleja es su principal desventaja.

Para este sencillo dashboard, decidí ir por el primer camino generando las siguientes queries:

  • Amplify – Total $: Muestra el total sumarizado de stablecoins recibidas en toda la historia de Amplify. Solo se tiene en cuenta USDT y USDC. Se utiliza el atributo decimals de la tabla tokens.erc20 ya que los valores de esta no están formateados. 
  • Amplify – Total Txs: Muestra el total sumarizado de Txs recibidas en toda la historia de Amplify. Solo se tienen en cuenta transacciones donde la wallet bóveda recibió USDC o USDT
  • Amplify – Total Stablecoin x día: Es un sumarizado del total de stablecoins recibido por cada uno de los días. 
  • Amplify – Amplify – USDT/USDC x día: Es un sumarizado del total de USDT y USDC recibido por cada uno de los días. A diferencia de la query anterior, esta tiene dos columnas adicionales que aclara la cantidad de USDT o USDC para poder diferenciar cada stablecoin en el gráfico
  • Amplify – Tx Totales x día: Es un sumarizado del total de Txs recibidas por cada uno de los días. Solo se tienen en cuenta transacciones donde la wallet bóveda recibió USDC o USDT
  • Amplify – Tx USDT/USDC x día: Idem query anterior, pero se agregan dos columnas más donde se diferencia si la cantidad es USDT o USDC para poder luego diferencia cada stablecoin en el gráfico
  • Amplify – USDT y USDC Totales: Del total de stablecoins recibidas en toda la vida del proyecto, contabiliza cuánto fue USDT y cuanto USDC para luego hacer un gráfico de torta con el resultado.
  • Amplify – Max Total $ en una Tx: Devuelve el máximo de dinero recibido en una sola donación, sin importar que stablecoin fue.
  • Amplify – Max USDT en una Tx: Devuelve el máximo de USDT recibido en una sola donación
  • Amplify – Max USDC en una Tx: Devuelve el máximo de USDC recibido en una sola donación
  • Amplify – Lista total: Genera un listado con cada una de las transacciones/donaciones con su cantidad, tipo de stablecoin y transaction hash por si uno quisiera copiarlo e ir a PolyScan a consultarlo. 

Query y gráfico ‘Amplify – USDT y USDC Totales’

Las queries son super sencillas y no deberían ser un problema de entendimiento para nadie que sepa SQL. En líneas generales, todas las queries filtran transacciones las cuales tengan como destinatario la wallet bóveda y que tengan como token utilizado USDT o USDC. Este último filtro es super importante ya que, en un futuro no muy lejano, la wallet bóveda empezará a ser spameada por un montón de tokens scam generados por bots que podrían generar ruido a nuestro análisis. Si mañana Amplify empieza a aceptar otro tipo de tokens o stablecoins, estos filtros deberán ser cambiados. 

Como ya mencioné, cada una de estas queries genera un gráfico el cual luego será guardado, ejecutado y añadido al dashboard llamado Amplify by Cafecito. Lo que queda nada más es unos simples retoques estéticos ordenando cada gráfico y agregando algunos widgets de texto. Como mencioné en el Bloque anterior, si uno no posee un plan pago se perderá algunas features de Dune interesantes como la de poder programar que tu dashboard se actualice de forma automática en un horario predeterminado. 

Dashboard ‘Amplify by Cafecito’ finalizado

Conclusiones

El dashboard habla por sí solo y ya podemos ver rápidamente como nos da info muy clara del actual comportamiento de Amplify. Al momento de escribir estas líneas, veo que USDC es la moneda más elegida por la gente para hacer donaciones, lo cual (al menos para mi) es una sorpresa. Veo también que hay números grandes como 100 o 148 o números con decimales como 79.12. ¿Serán estos indicios de alguna integración para desarrolladores ya en curso? El 16 de febrero fue el día que Damián anunció en Twitter el go live de Amplify, sin embargo, se ve que el 19 de febrero fue el día donde más transacciones y stablecoins se movieron.

Espero que este nuevo Bloque les haya gustado, y espero que de yapa el dashboard le sirva a la gente de Cafecito también! Hasta la próxima!

Deja un comentario