Inspiration

As the year comes to a close, Spotify has an annual tradition of giving highlights of what you listened to and other similar statistics. My instagram feed is filled with Spotify Wrapped results so I figured this might be a good idea for this hackathon: show users the main stats of their 2025 Polymarket activity.

What it does

Polymarket Wrapped analyzes a user’s full Polymarket trading history and turns it into a personalized year-in-review. After connecting a wallet, users receive a set of beautifully generated cards showing:

  • Their total volume, win rate, and PnL
  • Best trade, worst trade, and “most cursed” market
  • Favorite market categories (politics, sports, crypto, etc.)
  • Behavioral insights like typical trade timing and holding patterns
  • A custom “trading persona” based on how they participated in the markets

Users can also mint a Wrapped Badge NFT on Base, which stores a unique summary URI onchain. Minting is gasless thanks to ERC-4337 smart accounts and Paymasters, making the experience seamless for anyone.

How I built it

I built a backend pipeline that ingests Polymarket trade data, reconstructs user positions, computes analytics, and generates metadata for each Wrapped card. The frontend uses this processed data to render dynamic visuals that can be exported and shared. To qualify for the Base Track, we deployed a minimal ERC-721 contract on Base with a mintWrappedBadge(address, string) method

Challenges we ran into

  • deploying to various testnets; had to use mainnet
  • limited time due to finals

Accomplishments that we're proud of

  • Delivering a polished, cohesive year-in-review experience for Polymarket for the first time
  • Creating a minimal onchain component that feels meaningful

What we learned

  • Best practices for indexing Polymarket trading flows
  • How to apply ERC-4337, Paymasters, and smart accounts to real consumer UX

What's next for Polymarket Wrapped

  • use a db instead of keeping everything in memory
  • sponsor user gas fees

Built With

Share this project:

Updates