{"id":49933775,"url":"https://github.com/doom-protocol/doom-index","last_synced_at":"2026-05-17T05:36:28.185Z","repository":{"id":323421208,"uuid":"1093140330","full_name":"doom-protocol/doom-index","owner":"doom-protocol","description":"A perpetual engine that turns market history into onchain paintings.","archived":false,"fork":false,"pushed_at":"2026-04-08T04:56:23.000Z","size":33339,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-08T06:27:21.163Z","etag":null,"topics":["ai","art","cloudflare","devdotfun","flux","pumpdotfun","solana"],"latest_commit_sha":null,"homepage":"https://doomindex.fun","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/doom-protocol.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":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-11-10T00:47:14.000Z","updated_at":"2026-04-08T04:56:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/doom-protocol/doom-index","commit_stats":null,"previous_names":["posaune0423/doom-index"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/doom-protocol/doom-index","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doom-protocol%2Fdoom-index","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doom-protocol%2Fdoom-index/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doom-protocol%2Fdoom-index/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doom-protocol%2Fdoom-index/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doom-protocol","download_url":"https://codeload.github.com/doom-protocol/doom-index/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doom-protocol%2Fdoom-index/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33128669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T18:38:32.183Z","status":"online","status_checked_at":"2026-05-17T02:00:05.366Z","response_time":107,"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":["ai","art","cloudflare","devdotfun","flux","pumpdotfun","solana"],"created_at":"2026-05-17T05:36:25.419Z","updated_at":"2026-05-17T05:36:28.180Z","avatar_url":"https://github.com/doom-protocol.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DOOM INDEX\n\nDOOM INDEX is a Cloudflare-first generative art project. It turns live crypto market context into paintings, stores the resulting image on Arweave via ArDrive Turbo during recurring generation, and uploads the framed GLB plus NFT metadata only when a mint happens. D1 indexes the artwork and caches mint-time GLB refs for the web UI, archive, OGP, and mint flow.\n\n## Overview\n\n- Frontend: Next.js 16 App Router\n- Runtime: Cloudflare Workers via OpenNext\n- Storage: Arweave for artwork assets, D1 for searchable metadata\n- Generation inputs: CoinGecko, Fear \u0026 Greed, Tavily, Runware\n- Minting: custom Doom NFT program on Solana\n\n## Arweave History\n\nHistorical items uploaded from the current DOOM INDEX Arweave address:\n\n- Address: `w-0BSqoDiZoct2ISCa1uSCgjm374kFE9hJwKMzAKJ-s`\n- ViewBlock: \u003chttps://viewblock.io/arweave/address/w-0BSqoDiZoct2ISCa1uSCgjm374kFE9hJwKMzAKJ-s?tab=items\u003e\n\n## Local Setup\n\nInstall dependencies:\n\n```bash\nbun install\n```\n\nCopy `.example.vars` to `.dev.vars`, then fill in the required values:\n\n```bash\ncp .example.vars .dev.vars\n```\n\nMinimum local env:\n\n```bash\nNEXT_PUBLIC_BASE_URL=http://localhost:8787\nRUNWARE_API_KEY=your_runware_api_key\nARDRIVE_TURBO_SECRET_KEY='{\"kty\":\"RSA\", ...}'\n```\n\nCommon optional env:\n\n```bash\nCOINGECKO_API_KEY=your_coingecko_api_key\nTAVILY_API_KEY=your_tavily_api_key\nARWEAVE_GATEWAY_BASE_URL=https://permagate.io\n```\n\n`bun run dev` uses Next.js' native `.env.local` loading. Point `.env.local` at `.dev.vars` so Next.js and the Bun scripts share the same values:\n\n```bash\nln -s .dev.vars .env.local\n```\n\n## Development\n\nRun the Next.js app:\n\n```bash\nbun run dev\n```\n\nRun the Cloudflare preview build:\n\n```bash\nbun run build:cf\nbun run preview\n```\n\nTrigger the cron loop locally:\n\n```bash\nbun run watch-cron\n```\n\nGenerate a painting locally:\n\n```bash\nbun run generate\n```\n\nGenerate the framed GLB directly:\n\n```bash\nbun run generate:framed-glb --image ./out/example.webp --out ./out/framed.glb\n```\n\n## Arweave Uploads\n\nUpload an explicit image + GLB bundle to Arweave:\n\n```bash\nbun --env-file=.dev.vars scripts/upload-metadata-ardrive.ts \\\n  --token-id 1 \\\n  --thumbnail ./out/example.webp \\\n  --glb ./out/framed.glb\n```\n\nUpload the built-in placeholder fixture bundle:\n\n```bash\nbun --env-file=.dev.vars scripts/upload-metadata-ardrive.ts \\\n  --token-id 1 \\\n  --fixture\n```\n\n## Database\n\nGenerate and apply Drizzle migrations:\n\n```bash\nbun run db:generate\nbun run db:migrate\n```\n\nProduction migration and deployment commands:\n\n```bash\nbun run db:migrate:prod\nbun run deploy\n```\n\n## Verification\n\n```bash\nbun run lint\nbun run typecheck\nbun run test\n```\n\nFocused test commands:\n\n```bash\nbun run test:unit\nbun run test:integration\n```\n\n## Project Docs\n\n- [docs/PRODUCT.md](docs/PRODUCT.md)\n- [docs/TECH.md](docs/TECH.md)\n- [docs/STRUCTURE.md](docs/STRUCTURE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoom-protocol%2Fdoom-index","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoom-protocol%2Fdoom-index","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoom-protocol%2Fdoom-index/lists"}