project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

ZenMon

Look after your ZenMon and they'll look after your finances. Gamified saving, kawaii style.

ZenMon

Created At

ETHGlobal London

Winner of

Chiliz - Pool Prize

Prize Pool

Arbitrum - Qualifying Arbitrum Submissions

Prize Pool

ApeCoin - Best use of Apecoin in a gaming use case

Project Description

Everyone knows they should save, but its always way down the list of priorities. ZenMon tries to solve this. Imagine taking care of a virtual pet, but instead of in-app purchases, ZenMon locks that money away for a rainy day. The more you save, and the longer you lock your funds up for, the happy your little ZenMon is. Once the timelock expires, you're free to withdraw your funds when you wish.

This prototype is just the start of ZenMon. On the roadmap are:

  • Way more monsters to choose from with unique personalities.
  • Adopted LLM's to make that monster feel evem more real.
  • Watching onchain spending and using that to guide behaviour in a financially prudent way.
  • Fully support for a variety of savings types, including yield generating options.
  • Charitable and public goods funding -> unlock special benefits for your monster from donating.
  • Farcaster support - letting your community feed and play with your monster, generating you savings at the same time.
  • Better onboarding with AA.
  • And so much more....

How it's Made

It's built in NextJS and Tailwind with Phaser on the frontend.

The backend is 100% solidity based. Your ZenMon is soulbound NFT that is locked to your wallet, and all funds are held in a vault that's secured against the holder of the NFT.

There's a bunch of hacks with this, getting the monsters to respond to changes in the state of the NFTs was tricky. Also managing the different options for savings was particularly tricky (and still needs a lot of work).

Also lots of work to keep state in sync, since the monsters energy and mood will degrade over time, in actuality in the app, but implied on chain until there's an update (we lazily update this onchain to avoid unnecessary interactions).

Phaser doesn't play nice with Next and needs some workarounds, but its much better for running animations, spritesheets, user interactions, etc... so it was worth it in the end.

background image mobile

Join the mailing list

Get the latest news and updates