Real use-case

NFT Assets Management

How I solve, think, and decide around the biggest pain point.

The problem

Collectibles Education

OwnershipCoin built a Telegram Mini App game to teach users about collectibles. The game needed real NFT images, each prepared in ten pixelation steps before players could see them.

Designers did every step by hand. Export, rename, upload, repeat.

Fifty assets done manually was slow. Five hundred done manually would have stopped the launch.

collectible_step_01.png
education_asset_v3.png
pixel_manual_07.png
miniapp_upload.png
DO_NOT_DELETE.png
Messy workflow

The real pain point

Ten manual steps. Every single asset.

Each collectible in the education game needed ten versions of the same NFT image. Designers did this by hand for every asset.

Move the slider on the right to see what that felt like. I built a system so one run does it all.

10 steps per asset, done manually, every time.

Step 1: clearStep 1 of 10Step 10: max blur

How it works

Pipeline and stack

From NFT metadata to images the education game can use.

GetGems
01

Fetch NFT data

Pull collectible metadata from TON API or GetGems API. If one free tier fails, the other backs it up.

02

Pixelate 10 steps

Run the same image through ten levels so the game can reveal the collectible slowly.

Download outputs
03

Store and serve

Save the outputs and wire them into the Telegram Mini App education game.

Stack

Built as an internal tool on a stack the team already used, with dual API sources on free tiers.

Laravel

Backend

Inertia

Bridge

Vue 3

Frontend

NFT metadata

TON APIGetGems API

If TON API is down or rate-limited, the app tries GetGems API next.

Prioritization

What I chose vs what I skipped

I had to move fast. Their blocker was my blocker. Here is how I spent my time.

I chose

  • Ship a working version in about 3 hours
  • Run the tool on my laptop on office WiFi (team used my local IP)
  • Use a direct script instead of cloud queues
  • Pull NFT data from blockchain APIs
  • One simple screen the team could use right away

I skipped

  • User login and accounts
  • Cloud hosting and paid servers on day one
  • Fancy dashboards and analytics
  • Mobile responsiveness
  • Proper rate-limiting when multiple devices try to download
  • Extra features that did not fix the pixelation problem

The impact

0%team velocity boost

Time to process one campaign batch

Manual: 3 daysAutomated: 1 click
  • 1

    Cut process time from about 3 days to one click

  • 2

    Fewer sorting mistakes on large batches

  • 3

    Same output every time for every step

  • 4

    Scaled from about 50 NFTs to 500+

  • 5

    Freed up designer and admin time to focus on what matters