A decentralized prediction market smart contract on Solana, inspired by Polymarket. Create markets, trade Yes/No positions, and resolve outcomes—all on-chain.
This project provides a full-featured prediction market built with the Anchor framework. Users can create binary outcome markets for any event, add liquidity, trade positions using Yes/No SPL tokens, and resolve markets based on real-world outcomes. The architecture is modular and the patterns can be adapted for EVM chains.
- Market Creation — Create binary outcome markets for any event
- Liquidity Provision — Add and withdraw liquidity to support trading
- Trading — Trade positions using Yes/No tokens
- Market Resolution — Resolve markets based on final outcomes with automatic payouts
- Fee Structure — Configurable platform and LP fees
- Extensible — Clear patterns for adapting to other chains
- Anchor — Solana smart contract framework
- Solana Web3.js — JavaScript SDK
- SPL Token Program
- Associated Token Program
- Node.js
- Yarn
- Solana CLI
- Anchor Framework
- Clone the repository:
git clone https://github.com/rustjesty/solana-prediction-market-smart-contract
cd solana-prediction-market-smart-contract- Install dependencies:
yarn install- Build and deploy the program:
anchor build
anchor deployConfigure environment, keypair, and RPC URL:
yarn script config -e devnet -k <your-keypair-path> -r <your-rpc-url>Workflow order: config → market → addlp → swap (optional) → withdraw → resolution
yarn script market -e devnet -k <your-keypair-path> -r <your-rpc-url>You must add liquidity before you can withdraw it.
yarn script addlp -y <yes-token-address> -n <no-token-address> -a <amount> -e devnet -k <your-keypair-path> -r <your-rpc-url>-s(style):0= buy,1= sell-t(token-type):0= NO token,1= YES token
yarn script swap -y <yes-token-address> -n <no-token-address> -a <amount> -s <style> -t <token-type> -e devnet -k <your-keypair-path> -r <your-rpc-url>Requires that you have added liquidity first via addlp.
yarn script withdraw -y <yes-token-address> -n <no-token-address> -a <amount> -e devnet -k <your-keypair-path> -r <your-rpc-url>yarn script resolution -y <yes-token-address> -n <no-token-address> -e devnet -k <your-keypair-path> -r <your-rpc-url>Config transaction on Solscan (Devnet)
Create market transaction on Solscan (Devnet)
For questions or custom implementations:
Contributions are welcome. Please open an issue or submit a pull request.
MIT — see LICENSE for details.