Inspiration

AI has made it harder to verify genuine coding skills, while existing platforms rely on centralized records. We built MateQ to create a decentralized Proof of Skill platform where developers can stake crypto, compete in real-time coding battles, and earn permanent on-chain credentials.

What it does

MateQ is a decentralized, real-time competitive coding arena. Users connect their Web3 wallets, select a programming challenge, and stake tokens (POL/MATIC) to enter the matchmaking queue. The system matches them with an opponent of a similar Elo rating. During the battle, users solve algorithms in a live, synchronized code editor. Code submissions are securely evaluated against hidden test cases. When a player wins, an on-chain oracle/referee automatically triggers the SkillMatch smart contract to release the staked funds to the winner. Additionally, the winner is minted a Soulbound Credential (SBT)—a non-transferable NFT on the Polygon network that permanently records their verified skill, match details, and updated Elo rating.

How we built it

We utilized a robust, full-stack architecture bridging Web2 performance with Web3 mechanics: Frontend : Built with Next.js (App Router), React, TailwindCSS, and Zustand for state management. We integrated Monaco Editor for the coding interface and used Wagmi/Viem/WalletConnect for seamless Web3 wallet interactions. Backend : An Express Node.js server powered by Socket.IO for low-latency, real-time match synchronization (chat, opponent progress, spectators). Code Execution : We integrated the open-source Piston engine running inside an isolated Docker container. This sandboxed environment allows us to safely execute untrusted user code across multiple languages with strict CPU/memory limits. Database & Caching : PostgreSQL (via Prisma ORM) handles persistent user data and problem sets, while Redis powers the fast matchmaking queue and ephemeral session state. Smart Contracts : Written in Solidity and deployed on the Polygon Amoy Testnet (and Hardhat for local dev). We built a custom escrow contract (SkillMatch.sol) to hold stakes and a Soulbound ERC-721 token (SoulboundCredential.sol) by overriding standard transfer functions.

Challenges we ran into

Connecting our backend with smart contracts and making sure match results and blockchain transactions stayed in sync. Designing the project so real-time coding, matchmaking, and blockchain features worked together smoothly. Handling wallet connections, transaction approvals, and network switching without affecting the user experience.

Accomplishments that we're proud of

Successfully integrating a complex, multi-container Docker architecture (Postgres, Redis, Piston API) with a Node/Express backend. Building a seamless, real-time multiplayer coding environment that feels responsive and competitive. Creating a fully functional "Demo Mode" with simulated bots to test the platform without needing a live network or opponent.

What we learned

Learned how to effectively containerize un-trusted execution environments using Docker. Gained valuable experience writing secure Solidity smart contracts, specifically handling token escrows and building non-transferable NFTs (Soulbound Tokens). Mastered the integration of Next.js with Wagmi and Ethers.js for smooth dApp user experiences.

What's next for MateQ

Multi-round Tournaments : Expanding from 1v1 matchmaking to full 8-player and 16-player bracket tournaments. Anti-Cheat Mechanisms : Implementing keystroke biometrics, tab-focus tracking, and AI analysis to prevent LLM cheating during high-stakes matches. B2B Recruitment : Allowing Web3 companies to sponsor tournaments or seamlessly recruit developers based on their verified Soulbound Credentials.

Share this project:

Updates

Submission history