{"id":15540632,"url":"https://github.com/vondas-network/magicedenjs","last_synced_at":"2025-08-18T08:11:01.254Z","repository":{"id":223208736,"uuid":"759597954","full_name":"vondas-network/MagicEdenJS","owner":"vondas-network","description":"An API service for sourcing Rare Sats and Bitcoin Ordinal listing data from Magic Eden.","archived":false,"fork":false,"pushed_at":"2024-06-27T00:41:55.000Z","size":1209,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-23T17:02:00.445Z","etag":null,"topics":["api","bitcoin","cron","cryptocurrency","docker","javascript","magic-eden","marketplace","nodejs","ordinals","service"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vondas-network.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-02-19T00:42:43.000Z","updated_at":"2024-12-22T16:56:42.000Z","dependencies_parsed_at":"2024-02-19T01:45:29.393Z","dependency_job_id":"50544894-9d0c-40ea-b449-5fd4174022ac","html_url":"https://github.com/vondas-network/MagicEdenJS","commit_stats":null,"previous_names":["vondas-network/magicedenjs"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/vondas-network/MagicEdenJS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vondas-network%2FMagicEdenJS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vondas-network%2FMagicEdenJS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vondas-network%2FMagicEdenJS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vondas-network%2FMagicEdenJS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vondas-network","download_url":"https://codeload.github.com/vondas-network/MagicEdenJS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vondas-network%2FMagicEdenJS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270962391,"owners_count":24675965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"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":["api","bitcoin","cron","cryptocurrency","docker","javascript","magic-eden","marketplace","nodejs","ordinals","service"],"created_at":"2024-10-02T12:14:11.207Z","updated_at":"2025-08-18T08:11:01.179Z","avatar_url":"https://github.com/vondas-network.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch3 align=\"center\"\u003e\n  \u003cimg height=\"40%\" width=\"40%\" src=\"https://github.com/vondas-network/MagicEdenJS/blob/main/img/MagicEdenJS-logo-1.png?raw=true\"/\u003e\n\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\u003cem\u003eAn API service for sourcing Rare Sats and Bitcoin Ordinal listing data from Magic Eden. \u003c/em\u003e\u003c/p\u003e \n\n## What can this service do?\n* Aggregate Rare Sats listings on Magic Eden and filter by *sat type*\n* Aggregate Bitcoin Ordinal listings on Magic Eden and filter using a *time interval*\n* Load API image on another computer and *schedule* requests* with cron\n\n## How does it work?\n\n### Build \u0026 Run Docker Image\n1. Build the Docker image\n\t* ```docker build -t magicedenjs-api .```\n\n2. Run Docker image\n\t* ```docker run -p 7100:7100 -v FILE_DIRECTORY_FOR_SAVING_FILES:/app/tmp magicedenjs-api:latest```\n\n---\n\n### Load Docker Image\n\n1. Load Docker image\n\t* ```docker load -i magicedenjs-api_latest.tar.gz```\n\n2. Run Docker image\n\t*  ```docker run -p 7100:7100 -v FILE_DIRECTORY_FOR_SAVING_FILES:/app/tmp magicedenjs-api:latest```\n\n---\n\n### Local install\n1. Install dependencies\n\t* ``` npm i ```\n\n2. Start project\n\t* ```node app.js ```\n\n\n## API Functions\n\n\n### processBtcListings\n\n\u003ch3 align=\"center\"\u003e\n  \u003cimg height=\"100%\" width=\"100%\" src=\"https://github.com/vondas-network/MagicEdenJS/blob/main/img/MagicEdenJS-BitcoinOrdinalListings.png?raw=true\"/\u003e\n\u003c/h3\u003e\n\n#### Endpoint\n```\n /magiceden/process-btc-listings\n```\n\n#### Parameters\n\n* timeInterval\n\t* 10m\n\t* 1h\n\t* 6h\n\t* 1d\n\t* 7d\n\t* 30d\n\n#### Example\n``` bash\n/magiceden/process-btc-listings?timeInterval=10m\n\n```\n\n#### Response\n``` json\n[\n    {\n        \"chain\": \"bitcoin\",\n        \"collectionId\": \"nodemonkes\",\n        \"collectionSymbol\": \"nodemonkes\",\n        \"vol\": 0.544,\n        \"txns\": 2,\n        \"totalVol\": 0.544,\n        \"fp\": 0.2439,\n        \"marketCap\": 2439,\n        \"totalSupply\": 10000,\n        \"ownerCount\": 4579,\n        \"listedCount\": 1032,\n        \"pending\": 2,\n        \"uniqueOwnerRatio\": 0.4579,\n        \"name\": \"NodeMonkes\",\n        \"image\": \"https://creator-hub-prod.s3.us-east-2.amazonaws.com/ord-nodemonkes_pfp_1705639827890.png\",\n        \"description\": \"The first original 10k collection inscribed on bitcoin.\",\n        \"currency\": \"BTC\",\n        \"currencyUsdRate\": 51447.74,\n        \"marketCapUsd\": 125481037.86\n    },\n    {\n        \"chain\": \"bitcoin\",\n        \"collectionId\": \"quantum_cats\",\n        \"collectionSymbol\": \"quantum_cats\",\n        \"vol\": 0.423,\n        \"txns\": 2,\n        \"totalVol\": 0.423,\n        \"fp\": 0.22,\n        \"marketCap\": 733.26,\n        \"totalSupply\": 3333,\n        \"ownerCount\": 2590,\n        \"listedCount\": 463,\n        \"pending\": 2,\n        \"uniqueOwnerRatio\": 0.7770777077707771,\n        \"name\": \"Quantum Cats\",\n        \"image\": \"https://creator-hub-prod.s3.us-east-2.amazonaws.com/ord-taproot_wizards_presents_pfp_1706542390359.png\",\n        \"description\": \"The Quantum Cats by Taproot Wizards are on a mission to revive Satoshi's beloved pet and scripting function, OP_CAT.\",\n        \"currency\": \"BTC\",\n        \"currencyUsdRate\": 51447.74,\n        \"marketCapUsd\": 37724569.8324\n    },\n    {\n        \"chain\": \"bitcoin\",\n        \"collectionId\": \"rmm\",\n        \"collectionSymbol\": \"rmm\",\n        \"vol\": 0.10859,\n        \"txns\": 8,\n        \"totalVol\": 0.10859,\n        \"fp\": 0.0134,\n        \"listedCount\": 400,\n        \"pending\": 6,\n        \"uniqueOwnerRatio\": 0,\n        \"name\": \"Rune Mania Miner\",\n        \"image\": \"https://creator-hub-prod.s3.us-east-2.amazonaws.com/ord-rmm_pfp_1708461604099.png\",\n        \"description\": \"Rune Mania: Utilize your RMM to mine Runes using:⛏️ Mining Boosts🧱 Block Boosts🧪 Mana Boosts🗿 Stone Boosts ✨ Rune Boosts\",\n        \"currency\": \"BTC\",\n        \"currencyUsdRate\": 51447.74\n    },\n    ...\n]\n```\n\n---\n\n### processSatUrl\nSearch for a specific Rare Sats. Rare Sats are attributes, or \"satributes,\" ascribed to different types of sats. Sats are the smallest unit of a Bitcoin, and satributes commemorate special moments like when a sat was mined or used in a transaction.\n\n\u003ch3 align=\"center\"\u003e\n  \u003cimg height=\"100%\" width=\"100%\" src=\"https://github.com/vondas-network/MagicEdenJS/blob/main/img/MagicEdenJS-RareSatsListings.png?raw=true\"/\u003e\n\u003c/h3\u003e\n\n#### Endpoint\n```\n /magiceden/process-sat-url\n```\n\n#### Parameters\n\n* satType\n\t* Uncommon\n\t* Rare\n\t* Epic\n\t* Legendary\n\t* Black Uncommon\n\t* Black Rare\n\t* Black Epic\n\t* Black Legendary\n\t* Palindrome\n\t* Uniform Palinception\n\t* Perfect Palinception\n\t* Vintage\n\t* Nakamoto\n\t* Block 9\n\t* Block 286\n\t* Block 78\n\t* First Transaction\n\t* Pizza\n\t* Alpha\n\t* Omega\n\t* JPEG\n\n#### Example\n``` bash\n/magiceden/process-sat-url?satType=Rare\n\n```\n\n#### Response\n``` json\n{\n    \"Satributes\": [\n        {\n            \"value\": \"Rare\",\n            \"label\": \"Rare\",\n            \"floor\": 4\n        }\n    ]\n}\n```\n\n---\n\n## How to save a new Docker image?\n1. Build Docker image\n\t* ```docker build -t magicedenjs-api .```\n\n2. Save Docker image\n\t* ```docker save magicedenjs-api:latest | gzip \u003e magicedenjs-api_latest.tar.gz```\n\n---\n\n## Cron\n\n* Open *[crontab](https://www.geeksforgeeks.org/crontab-in-linux-with-examples/)*\n\n``` bash\ncrontab -e\n```\n\n* Add a new *job*. Every 10 minutes, create an HTTP GET Request for the API service using cURL.  \n\n``` text \n*/10 * * * * /usr/bin/curl --silent 'http://localhost:7100/magiceden/process-btc-listings?timeInterval=10m'\n```\n* Optionally, create a second *job* to track the HTTP GET Requests.\n\n``` text\n*/10 * * * * echo \"JOB at $(date)\" \u003e\u003e ~/Desktop/job-tracker.txt\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvondas-network%2Fmagicedenjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvondas-network%2Fmagicedenjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvondas-network%2Fmagicedenjs/lists"}