{"id":20138330,"url":"https://github.com/pinax-network/substreams-atomic-api","last_synced_at":"2025-08-01T07:08:48.642Z","repository":{"id":205641543,"uuid":"704441080","full_name":"pinax-network/substreams-atomic-api","owner":"pinax-network","description":"Atomicmarket sales on Antelope chains","archived":false,"fork":false,"pushed_at":"2023-11-23T15:57:58.000Z","size":89,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2025-01-13T09:46:45.959Z","etag":null,"topics":["api","atomicassets","atomicmarket","blockchain","bun","clickhouse","rest"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pinax-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":"2023-10-13T09:07:41.000Z","updated_at":"2023-11-10T13:45:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"ec074610-859c-44f9-a7d0-56ca740936a3","html_url":"https://github.com/pinax-network/substreams-atomic-api","commit_stats":null,"previous_names":["pinax-network/substreams-atomicmarket-api"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinax-network%2Fsubstreams-atomic-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinax-network%2Fsubstreams-atomic-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinax-network%2Fsubstreams-atomic-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinax-network%2Fsubstreams-atomic-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pinax-network","download_url":"https://codeload.github.com/pinax-network/substreams-atomic-api/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241582552,"owners_count":19985845,"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","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","atomicassets","atomicmarket","blockchain","bun","clickhouse","rest"],"created_at":"2024-11-13T21:37:26.858Z","updated_at":"2025-03-02T23:14:37.909Z","avatar_url":"https://github.com/pinax-network.png","language":"TypeScript","readme":"# [`Substreams`](https://substreams.streamingfast.io/) Atomic API\n[![.github/workflows/bun-test.yml](https://github.com/pinax-network/substreams-atomic-api/actions/workflows/bun-test.yml/badge.svg)](https://github.com/pinax-network/substreams-atomic-api/actions/workflows/bun-test.yml)\n![License](https://img.shields.io/github/license/pinax-network/substreams-atomic-api)\n\n## REST API\n\n| \u003cdiv style=\"width:200px\"\u003ePathname\u003c/div\u003e| Description           |\n|----------------------------------------|-----------------------|\n| GET `/health`                          | Health check\n| GET `/chains`                          | Get available chains\n| GET `/sales`                           | Get sales by `chain`, `collection_name`, `sale_id`, `timestamp`, `block_number`, `template_id`, `listing_price_amount`, `listing_price_symcode`, `trx_id` or `contains_asset_id`\n| GET `/sales/aggregate`                 | Get aggregate of sales for given time range filtered by `chain`,`collection_name` or `listing_price_symcode`\n| GET `/metrics`                         | Prometheus metrics\n| GET `/openapi`                         | [OpenAPI v3 JSON](https://spec.openapis.org/oas/v3.0.0)\n\nSupported aggregate functions : `count`, `sum`, `min`, `max`, `avg`, `median`\n\nSupported aggregate columns: `sale_id`, `total_asset_ids`, `listing_price_amount`\n\n## Requirements\n\n- [Clickhouse](https://clickhouse.com/)\n\nAdditionnaly to pull data directly from a substream:\n- [Substreams Sink Clickhouse](https://github.com/pinax-network/substreams-sink-clickhouse/)\n\n## Quickstart\n```console\n$ bun install\n$ bun dev\n```\n\n## [`Bun` Binary Releases](https://github.com/pinax-network/substreams-sink-websockets/releases)\n\n\u003e Linux Only\n\n```console\n$ wget https://github.com/pinax-network/substreams-atomic-api/releases/download/v0.2.0/substreams-atomic-api\n$ chmod +x ./substreams-atomic-api\n```\n\n## `.env` Environment variables\n\n```env\n# API Server\nPORT=8080\nHOSTNAME=localhost\n\n# Clickhouse Database\nHOST=http://127.0.0.1:8123\nDATABASE=default\nUSERNAME=default\nPASSWORD=\nMAX_LIMIT=500\n\n# Logging\nVERBOSE=true\n```\n## Required database structure\n`substreams-sink-clickhouse` auto generates some tables (see [Database structure](https://github.com/pinax-network/substreams-sink-clickhouse#database-structure) section).\nFor this API to work, you will also need to provide following schemas to `substreams-sink-clickhouse` (see [Schema initialization](https://github.com/pinax-network/substreams-sink-clickhouse#schema-initialization) section):\n- `substreams-atomicmarket-sales` [schema](https://github.com/pinax-network/substreams-atomicmarket-sales/blob/master/schema.sql)\n- `substreams-atomicassets` [schema](https://github.com/pinax-network/substreams-atomicassets/blob/master/schema.sql)\n  \nThe minimum required added tables to the database structure are:\n```mermaid\nerDiagram\n    Sales }|--|{ Assets : \" \"\n\n    Sales {\n        sale_id     UInt64\n        trx_id      String\n        seller      String\n        asset_ids   Array(UInt64)\n        offer_id    Int64\n        listing_price_amount  Int64\n        listing_price_precision  UInt8\n        listing_price_symcode    String\n        settlement_symbol_precision   UInt8\n        settlement_symbol_code String\n        maker_marketplace String\n        collection_name String\n        collection_fee  Float64\n\n    }\n\n    Assets {\n        asset_id     UInt64\n        scope        String\n        collection_name String\n        template_id  Int32\n\n    }\n```\n## Help\n\n```console\n$ ./substreams-atomic-api -h\nUsage: substreams-atomic-api [options]\n\nAtomic API\n\nOptions:\n  -V, --version            output the version number\n  -p, --port \u003cnumber\u003e      HTTP port on which to attach the API (default: \"8080\", env: PORT)\n  -v, --verbose \u003cboolean\u003e  Enable verbose logging (choices: \"true\", \"false\", default: false, env: VERBOSE)\n  --hostname \u003cstring\u003e      Server listen on HTTP hostname (default: \"localhost\", env: HOSTNAME)\n  --host \u003cstring\u003e          Database HTTP hostname (default: \"http://localhost:8123\", env: HOST)\n  --username \u003cstring\u003e      Database user (default: \"default\", env: USERNAME)\n  --password \u003cstring\u003e      Password associated with the specified username (default: \"\", env: PASSWORD)\n  --database \u003cstring\u003e      The database to use inside ClickHouse (default: \"default\", env: DATABASE)\n  --max-limit \u003cnumber\u003e     Maximum LIMIT queries (default: 10000, env: MAX_LIMIT)\n  -h, --help               display help for command\n```\n\n## Docker environment\n\nPull from GitHub Container registry\n```bash\ndocker pull ghcr.io/pinax-network/substreams-atomic-api:latest\n```\n\nBuild from source\n```bash\ndocker build -t substreams-atomic-api .\n```\n\nRun with `.env` file\n```bash\ndocker run -it --rm --env-file .env ghcr.io/pinax-network/substreams-atomic-api\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinax-network%2Fsubstreams-atomic-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpinax-network%2Fsubstreams-atomic-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinax-network%2Fsubstreams-atomic-api/lists"}