Not An Insider (Just Lucky)
This is a submission for the MLH x DEV Writing Challenge What I Built What if the person betting on an outcome is also the person who can influence it? That question became our project at VTHacks 14: Not An Insider (Just Lucky). We built a prediction-market prototype that checks a trader’s identity and recorded affiliations before allowing a trade, rather than treating conflicts of interest as…
At VTHacks 14, a team developed a prediction-market prototype called "Not An Insider (Just Lucky)." The project focused on preventing conflicts of interest in trading by checking a trader's identity and affiliations before allowing a trade. This approach is a proactive solution, rather than reacting to conflicts of interest after they occur.
The system connects trader identities to market-specific restrictions, ensuring that only eligible traders can participate in relevant markets. The backend verifies signed trade requests through various checks, including a valid cryptographic signature, a unique nonce, account registration validity, affiliation and age restrictions, account balance, and proximity to a declared material event.
The timing check can flag a trade for review instead of automatically blocking it, providing an explanation for the decision in a hash-linked audit trail. The project was built using HTML, CSS, JavaScript, Next.js, and TypeScript for the frontend, with a backend API served by Next.js and TypeScript. Trades are signed in the browser and passed through six enforcement gates before being recorded in the audit trail.
The interface is designed to explain why a trade was blocked, rather than simply displaying a generic error message. The team used GoDaddy's Agent Name Service (ANS) to validate trader identities and Capital One Nessie to simulate account behavior.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.