{"id":51520636,"url":"https://github.com/essedev/solplace","last_synced_at":"2026-07-08T15:03:28.859Z","repository":{"id":332958412,"uuid":"1038511629","full_name":"essedev/solplace","owner":"essedev","description":"Collaborative on-chain token map on Solana. Claim territory, plant your token's logo anywhere on Earth, and battle other communities for visibility. Think r/Place meets Solana tokens.","archived":false,"fork":false,"pushed_at":"2026-01-16T13:51:23.000Z","size":830,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-17T04:15:32.904Z","etag":null,"topics":["blockchain","community","game","memecoin","solana"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/essedev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-15T10:38:37.000Z","updated_at":"2026-01-16T13:53:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/essedev/solplace","commit_stats":null,"previous_names":["essedev/solplace"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/essedev/solplace","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/essedev%2Fsolplace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/essedev%2Fsolplace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/essedev%2Fsolplace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/essedev%2Fsolplace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/essedev","download_url":"https://codeload.github.com/essedev/solplace/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/essedev%2Fsolplace/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35268561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-08T02:00:06.796Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","community","game","memecoin","solana"],"created_at":"2026-07-08T15:03:28.355Z","updated_at":"2026-07-08T15:03:28.852Z","avatar_url":"https://github.com/essedev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SolPlace\n\n**The collaborative token map on Solana.** Plant your token's flag anywhere on Earth.\n\nThink Reddit's r/Place, but for Solana tokens on a real world map. Communities compete for territory, meme coins battle for landmarks, and the entire ecosystem fights for visibility — all on-chain.\n\n![Solana](https://img.shields.io/badge/Solana-black?style=flat\u0026logo=solana)\n![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat\u0026logo=typescript\u0026logoColor=white)\n![React](https://img.shields.io/badge/React-20232A?style=flat\u0026logo=react)\n![Rust](https://img.shields.io/badge/Rust-000000?style=flat\u0026logo=rust)\n\n![SolPlace Map](docs/images/map-example.jpeg)\n\n## How It Works\n\n1. **Connect** your Solana wallet\n2. **Navigate** the world map and pick a location\n3. **Enter** any Solana token address\n4. **Pay** a small fee in SOL\n5. **Watch** your token's logo appear on the map\n\n![Token Placement](docs/images/placement-example.jpeg)\n\nSomeone placed BONK on Times Square? Overwrite it with WIF for 5x the fee. Territory wars are encouraged.\n\n## Why SolPlace?\n\nEvery token community wants visibility. SolPlace turns that into a game.\n\n- **Meme coins** battle for iconic landmarks — the Eiffel Tower, the Colosseum, Mount Fuji\n- **DeFi protocols** claim financial districts — Wall Street, the City of London, Singapore\n- **New launches** grab unclaimed territory to get noticed\n- **Communities** coordinate to paint entire regions in their colors\n\nIt's marketing, it's community building, it's on-chain PvP — all in one.\n\n## Features\n\n**For token communities:**\n- Claim territory and show dominance on the global map\n- Defend your spots or raid competitors\n- Rally your community for coordinated takeovers\n\n**For explorers:**\n- Discover new tokens by browsing the map\n- See which communities are most active\n- Find hidden gems in unexpected places\n\n**On-chain guarantees:**\n- Every placement is a Solana transaction\n- No backend, no database — just the blockchain\n- Verifiable history of who placed what, when\n\n## The Game\n\nThe map starts empty. Early movers claim prime real estate cheap.\n\nAs spots fill up, competition heats up. Want that landmark? Pay 5x what the last person paid. They lose their spot, you take it. They can take it back — for 5x what you paid.\n\nPrices escalate. Communities mobilize. Alliances form. Memes are made.\n\n30-second cooldown per wallet keeps it fair. No bots spamming placements.\n\n## Try It Yourself\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org/) 18+\n- [pnpm](https://pnpm.io/) (`npm install -g pnpm`)\n- [Rust](https://rustup.rs/) (for program development)\n- [Solana CLI](https://docs.solana.com/cli/install-solana-cli-tools)\n- [Anchor](https://www.anchor-lang.com/docs/installation) 0.31+\n\n### Quick Start\n\n```bash\n# Clone and install\ngit clone https://github.com/your-username/solplace.git\ncd solplace\npnpm install\n\n# Start the frontend\npnpm dev\n```\n\nOpen http://localhost:5173 and connect a Solana wallet (Phantom, Solflare, etc.).\n\n### Testing the Solana Program\n\nThe on-chain program runs on **devnet**. To run the full test suite:\n\n```bash\n# 1. Configure Solana for devnet\nsolana config set --url devnet\n\n# 2. Create a wallet if you don't have one\nsolana-keygen new --outfile ~/.config/solana/id.json\n\n# 3. Get devnet SOL (free)\nsolana airdrop 2\n\n# 4. Build the program\ncd packages/program\npnpm build\n\n# 5. Run the tests\npnpm test\n```\n\nTests cover logo placement, overwriting, cooldowns, and fee calculations.\n\n### Testing with a Local Validator\n\nFor faster iteration without hitting devnet:\n\n```bash\n# Terminal 1: Start local validator\nsolana-test-validator\n\n# Terminal 2: Configure for localhost\nsolana config set --url localhost\nsolana airdrop 5\n\n# Terminal 3: Deploy and test\ncd packages/program\nanchor build\nanchor deploy\npnpm test\n```\n\n### Testing the Frontend\n\n```bash\ncd packages/web\npnpm dev      # Start dev server\npnpm lint     # Check for issues\npnpm build    # Production build\n```\n\n### Testing the Shared Library\n\n```bash\ncd packages/shared\npnpm test        # Run Jest tests\npnpm type-check  # TypeScript validation\n```\n\n## Project Structure\n\n```\nsolplace/\n├── packages/\n│   ├── program/     # Solana program (Anchor/Rust)\n│   ├── web/         # React frontend (Vite)\n│   └── shared/      # TypeScript client library\n└── docs/            # Architecture \u0026 design docs\n```\n\n## Key Concepts\n\n| Concept | Description |\n|---------|-------------|\n| **Grid Cells** | The world is divided into cells. Each cell holds one token logo. |\n| **Placement Fee** | 0.001 SOL for empty cells, 5x for overwrites |\n| **Cooldown** | 30 seconds between placements per user |\n| **Logo Resolution** | Fetches logos from Metaplex, Pump.fun, Jupiter, DexScreener |\n\n## Tech Stack\n\n- **Blockchain**: Solana + Anchor framework\n- **Frontend**: React 19, Zustand, MapLibre GL, Tailwind CSS\n- **Build**: Vite, pnpm workspaces, TypeScript\n\n## Development Commands\n\n```bash\n# Root (all packages)\npnpm dev          # Start everything\npnpm build        # Build everything\npnpm test         # Test everything\n\n# Program only\npnpm --filter program build\npnpm --filter program test\npnpm --filter program deploy\n\n# Web only\npnpm --filter web dev\npnpm --filter web build\n```\n\n## Environment Setup\n\nCreate `packages/web/.env`:\n\n```env\nVITE_RPC_ENDPOINT=https://api.devnet.solana.com\nVITE_SOLPLACE_PROGRAM_ID=\u003cyour-deployed-program-id\u003e\n```\n\n## Contributing\n\n1. Fork the repo\n2. Create a feature branch\n3. Make your changes\n4. Run tests: `pnpm test`\n5. Submit a PR\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fessedev%2Fsolplace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fessedev%2Fsolplace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fessedev%2Fsolplace/lists"}