Skip to content

KuCoin GemPool (Launchpool) Snapshot Pipeline

SyncKuCoinLaunchpoolWorkflow собирает KuCoin GemPool (launchpool) через публичные API и пишет snapshots в TimescaleDB.

Endpoints

  • GET https://www.kucoin.com/_api/gem-staking-front/gempool/staking/campaign?lang=en_US
  • GET https://www.kucoin.com/_api/gem-staking-front/gempool/staking/campaign/history?currentPage=<n>&pageSize=<m>&lang=en_US
  • GET https://www.kucoin.com/_api/gem-staking-front/gempool/staking/campaign/details?earnToken=<CODE>&lang=en_US (detail/fallback)
  • GET https://www.kucoin.com/_api/gem-staking-front/gempool/staking/overview?lang=en_US (summary)

Primary UI pages: - https://www.kucoin.com/gempool - https://www.kucoin.com/gempool/IMU

Ingestion

  • входной SQL-контракт: SELECT * FROM ingest_kucoin_launchpool_snapshot($1::jsonb)
  • projects upsert: ON CONFLICT (snapshot_at, project_id) DO UPDATE
  • subpools upsert: ON CONFLICT (snapshot_at, project_id, subpool_key) DO UPDATE
  • asset mapping:
  • project_asset_id и subpool_asset_id через exchange_symbol_assets (exchange_id='kucoin') с fallback на exchange_assets* + exchange_asset_mappings + global_asset_networks
  • если mapping отсутствует/неоднозначен, строки сохраняются, а причина уходит в fct_kucoin_launchpool_quarantine

Tables

  • fct_kucoin_launchpool_snapshot
  • fct_kucoin_launchpool_subpool_snapshot
  • fct_kucoin_launchpool_response_snapshot
  • fct_kucoin_launchpool_quarantine
  • fct_kucoin_launchpool_5min (continuous aggregate)
  • fct_kucoin_launchpool_daily (continuous aggregate)

Access Denied policy

  • HTTP 403 или challenge/access denied body -> typed error kucoin_access_denied
  • это fatal ошибка: workflow run завершается failed

Manual run

docker compose exec -T temporal temporal workflow start \
  --address temporal:7233 --namespace default --task-queue default \
  --type SyncKuCoinLaunchpoolWorkflow \
  --workflow-id sync-kucoin-launchpool-manual-$(date +%s) \
  --input '{"include_current":true,"include_history":true,"history_page_size":20,"max_history_pages":10}'

Request samples

  • docs/api/kucoin-gempool-requests.json