Skip to content

Data Models

exchanges

Основная таблица проекта.

Column Type Notes
exchange_id text PK slug биржи
display_name text отображаемое имя
website_url text URL сайта
category text cex/dex и т.д.
is_active bool участвует ли в sync
api_base_url text опционально
rate_limit_rps int лимит
country text страна
launch_year smallint год запуска
has_fiat bool fiat support
trust_score smallint 0..10
last_checked timestamptz последний sync
metadata jsonb доп. поля CoinGecko
created_at timestamptz created
updated_at timestamptz updated

networks_catalog

Каталог сетей/чейнов (EVM + non-EVM).

Column Type Notes
network_key text PK канонический ключ (evm:<chain_id>, cg:<id>, llama:<slug>)
display_name text отображаемое имя
family text evm/utxo/cosmos/other
is_evm bool флаг EVM-сети
chain_id bigint EVM chain id, UNIQUE WHERE NOT NULL
native_symbol text символ нативной монеты
native_name text название нативной монеты
native_decimals smallint decimals нативной монеты
is_active bool soft-delete флаг
first_seen_at timestamptz первый раз встречена
last_seen_at timestamptz последний раз встречена в sync
last_synced_at timestamptz последний успешный upsert
metrics_source text источник последних метрик
last_metrics_at timestamptz когда метрики были свежими
metrics_stale bool флаг stale-метрик
tvl_usd numeric(38,8) TVL
fees_24h_usd numeric(38,8) fees за 24ч
volume_24h_usd numeric(38,8) volume за 24ч
tx_count_24h bigint tx count за 24ч
active_addresses_24h bigint активные адреса за 24ч
metadata jsonb метаданные/сырьё источников
created_at timestamptz created
updated_at timestamptz updated

network_identifiers

Связки внешних идентификаторов сетей.

Column Type Notes
id bigserial PK surrogate key
network_key text FK ссылка на networks_catalog
source text coingecko/chainid/defillama
id_type text coingecko_platform_id/chainid_slug/defillama_slug
id_value text значение идентификатора
is_primary bool primary mapping для типа
first_seen_at timestamptz first seen
last_seen_at timestamptz last seen
metadata jsonb доп. поля

UNIQUE (source, id_type, id_value).

network_endpoints

Сетевые endpoint-ы (rpc, explorer) по каждой сети.

Column Type Notes
id bigserial PK surrogate key
network_key text FK ссылка на networks_catalog
endpoint_type text rpc/explorer
url text endpoint URL
is_active bool активность endpoint-а
source text источник endpoint-а
first_seen_at timestamptz first seen
last_seen_at timestamptz last seen

UNIQUE (network_key, endpoint_type, url).

network_metrics_snapshots

История метрик сетей по времени.

Column Type Notes
id bigserial PK surrogate key
network_key text FK ссылка на networks_catalog
observed_at timestamptz timestamp среза
source text источник метрик
tvl_usd numeric(38,8) TVL
fees_24h_usd numeric(38,8) fees 24h
volume_24h_usd numeric(38,8) volume 24h
tx_count_24h bigint tx count 24h
active_addresses_24h bigint active addresses 24h
is_stale bool stale snapshot
payload jsonb raw payload

UNIQUE (network_key, observed_at, source).

global_assets

Global registry активов для conservative mapping.

Column Type Notes
global_id uuid PK внутренний UUID идентификатор
canonical_symbol text канонический символ
canonical_name text каноническое имя
status text active/provisional/manual
created_at timestamptz created
updated_at timestamptz updated

global_asset_identifiers

Внешние и служебные идентификаторы глобального актива.

Column Type Notes
id bigserial PK surrogate key
global_id uuid FK ссылка на global_assets
source text contract/manual/exchange
id_type text network_contract/exchange_scoped_key/manual_alias
id_value text значение идентификатора
network_key text FK nullable ссылка на networks_catalog
is_primary bool primary flag
first_seen_at timestamptz first seen
last_seen_at timestamptz last seen

UNIQUE (source, id_type, id_value, COALESCE(network_key,'')) через expression index.

exchange_assets

Каталог монет по бирже.

Column Type Notes
id bigserial PK surrogate key
exchange_id text FK ссылка на exchanges
local_coin text локальный символ монеты на бирже
local_name text локальное имя
is_active bool soft-delete флаг
metadata jsonb доп. сырой payload
first_seen_at timestamptz first seen
last_seen_at timestamptz last seen
updated_at timestamptz updated

UNIQUE (exchange_id, local_coin).

exchange_asset_networks

Сетевые записи монеты внутри биржи.

Column Type Notes
id bigserial PK surrogate key
exchange_asset_id bigint FK ссылка на exchange_assets
local_network text локальный идентификатор сети
network_key text FK nullable сопоставление на networks_catalog
contract_address text nullable адрес контракта (normalized lower-case)
deposit_enabled bool nullable статус депозита
withdraw_enabled bool nullable статус вывода
withdraw_fee text nullable fee
withdraw_min text nullable min
withdraw_max text nullable max
confirmations text nullable подтверждения
memo_required bool nullable memo/tag required
raw_payload jsonb сырой payload сети
first_seen_at timestamptz first seen
last_seen_at timestamptz last seen
updated_at timestamptz updated

UNIQUE (exchange_asset_id, local_network).

global_asset_networks

Network-level представление глобального актива (AssetOnNetwork).

Column Type Notes
network_global_id uuid PK UUID network-level сущности
global_id uuid FK ссылка на global_assets (asset-level)
network_key text FK ссылка на networks_catalog
contract_address text nullable контракт в сети (если есть)
exchange_id text FK биржа-источник
local_symbol text symbol на бирже
source text contract/exchange_symbol_network/manual
confidence real confidence score
first_seen_at timestamptz first seen
last_seen_at timestamptz last seen
updated_at timestamptz updated

Ограничения: - UNIQUE (network_key, contract_address) при contract_address IS NOT NULL; - UNIQUE (exchange_id, local_symbol, network_key).

exchange_symbol_assets

Asset-level mapping для symbol внутри биржи (exchange_id + symbol -> global_id).

Column Type Notes
exchange_id text FK биржа
symbol text symbol на бирже
global_id uuid FK ссылка на global_assets
mapped_by text auto_contract/auto_exchange_symbol_network/manual
confidence real confidence score
mapped_at timestamptz timestamp маппинга

PRIMARY KEY (exchange_id, symbol).

exchange_asset_mappings

Mapping exchange network row -> network-level global asset.

Column Type Notes
id bigserial PK surrogate key
exchange_asset_network_id bigint FK ссылка на exchange_asset_networks
network_global_id uuid FK nullable ссылка на global_asset_networks
confidence real confidence score
mapped_by text auto_contract/auto_exchange_symbol_network/manual/none
mapped_at timestamptz mapping timestamp

UNIQUE (exchange_asset_network_id).

asset_mapping_quarantine

Очередь нерешенных кейсов нормализации/маппинга.

Column Type Notes
id bigserial PK surrogate key
exchange_id text nullable биржа
local_coin text nullable локальная монета
local_network text nullable локальная сеть
candidate_global_ids uuid[] nullable кандидаты на маппинг
reason text missing_network_mapping/missing_contract/ambiguous/missing_credentials/api_error/symbol_collision
details jsonb подробности причины
snapshot_at timestamptz timestamp записи

fct_gate_launchpool_snapshot

Snapshot fact table проектов Gate Launchpool.

Column Type Notes
snapshot_at timestamptz PK part время снимка
project_id bigint PK part pid из Gate
exchange_id text FK gate
project_asset_id uuid FK nullable mapping к global_assets по project_coin
project_coin text проектная монета
project_name text имя проекта
project_state integer state из Gate
exchange_status bool exchange status
project_url text product_url
start_time / end_time timestamptz окно проекта
raw_project jsonb полный raw project payload

ON CONFLICT (snapshot_at, project_id) DO UPDATE.

fct_gate_launchpool_subpool_snapshot

Snapshot fact table сабпулов Gate Launchpool.

Column Type Notes
snapshot_at timestamptz PK part время снимка
project_id bigint PK part pid
subpool_key text PK part rid::text, fallback coin#row_in_project
subpool_id bigint nullable rid
exchange_id text FK gate
project_asset_id uuid FK nullable asset-level mapping проекта
subpool_asset_id uuid FK nullable asset-level mapping сабпула
project_coin / subpool_coin text символы
rate_year / maybe_year_rate numeric APR поля
order_count integer participants
raw_subpool jsonb полный raw subpool payload

ON CONFLICT (snapshot_at, project_id, subpool_key) DO UPDATE.

fct_gate_launchpool_response_snapshot

Raw API response snapshot для аудита и дедупа payload-ов.

Column Type Notes
snapshot_at timestamptz PK part время снимка
payload_hash text PK part md5(payload::text)
exchange_id text FK gate
request_path text метод из envelope
response_code integer code
response_msg text message
payload jsonb полный ответ API

fct_gate_launchpool_quarantine

Неразрешенные кейсы маппинга/ингеста Gate Launchpool.

Column Type Notes
snapshot_at timestamptz время снимка
exchange_id text FK gate
project_id bigint nullable pid
subpool_key text nullable ключ сабпула
project_coin / subpool_coin text nullable символы
reason text missing_*, ambiguous_*, api_error, parse_error
details jsonb диагностические поля
raw_payload jsonb raw entity payload

fct_gate_launchpool_5min / fct_gate_launchpool_daily

Continuous aggregates: - fct_gate_launchpool_5min: bucket 5 minutes, APR min/avg/max, participants sum/max, last(...) descriptors. - fct_gate_launchpool_daily: bucket 1 day поверх fct_gate_launchpool_5min.

Политики: - retention: 7 days raw snapshots, 30 days 5m cagg, 1 year daily cagg; - compression: 1 day raw, 7 days 5m cagg, 30 days daily cagg.

fct_bingx_launchpool_snapshot

Snapshot fact table проектов BingX Launchpool (источник: Playwright scraping).

Column Type Notes
snapshot_at timestamptz PK part время снимка
project_id bigint PK part id проекта в BingX
exchange_id text FK bingx
project_asset_id uuid FK nullable mapping к global_assets по project_coin
project_coin text nullable символ проекта
project_name text имя проекта
project_url text ссылка на detail страницу
project_status text Active/Ended/Upcoming
est_apr_text / est_apr text / numeric APR (raw + parsed)
participants_text / participants text / numeric участники (raw + parsed)
raw_project jsonb raw project payload

ON CONFLICT (snapshot_at, project_id) DO UPDATE.

fct_bingx_launchpool_subpool_snapshot

Snapshot fact table подпулов BingX Launchpool.

Column Type Notes
snapshot_at timestamptz PK part время снимка
project_id bigint PK part id проекта
subpool_key text PK part стабильный ключ подпула
subpool_id bigint nullable id подпула из payload
exchange_id text FK bingx
project_asset_id / subpool_asset_id uuid FK nullable mapping к global_assets
project_coin / subpool_coin text nullable символы проекта/подпула
pool_name text имя подпула
est_apr_text / est_apr text / numeric APR
participants_text / participants text / numeric участники
raw_subpool jsonb raw subpool payload

ON CONFLICT (snapshot_at, project_id, subpool_key) DO UPDATE.

fct_bingx_launchpool_response_snapshot

Raw payload snapshot для аудита ingestion.

Column Type Notes
snapshot_at timestamptz PK part время снимка
payload_hash text PK part md5(payload::text)
exchange_id text FK bingx
request_path text internal request source
response_code integer технический статус (ingest)
response_msg text источник (playwright)
payload jsonb полный payload для SQL ingest

fct_bingx_launchpool_quarantine

Неразрешенные кейсы маппинга/ингеста BingX Launchpool.

Column Type Notes
snapshot_at timestamptz время снимка
exchange_id text FK bingx
project_id bigint nullable id проекта
subpool_key text nullable ключ подпула
project_coin / subpool_coin text nullable символы
reason text missing_*, missing_subpool_symbol, ambiguous_*, scrape_error
details jsonb диагностические поля
raw_payload jsonb raw entity payload

fct_bingx_launchpool_5min / fct_bingx_launchpool_daily

Continuous aggregates: - fct_bingx_launchpool_5min: bucket 5 minutes, APR min/avg/max, participants sum/max, last(...) descriptors. - fct_bingx_launchpool_daily: bucket 1 day поверх fct_bingx_launchpool_5min.

Политики: - retention: 7 days raw snapshots, 30 days 5m cagg, 1 year daily cagg; - compression: 1 day raw, 7 days 5m cagg, 30 days daily cagg.

fct_bingx_xpool_snapshot

Snapshot fact table проектов BingX XPool (источник: Playwright scraping).

Column Type Notes
snapshot_at timestamptz PK part время снимка
project_id bigint PK part id проекта в BingX
exchange_id text FK bingx
project_asset_id uuid FK nullable mapping к global_assets по project_coin
project_coin text nullable символ проекта
project_name text имя проекта
project_url text ссылка на detail страницу
project_status text Active/Ended/Upcoming
est_apr_text / est_apr text / numeric APR (raw + parsed)
participants_text / participants text / numeric участники (raw + parsed)
raw_project jsonb raw project payload

ON CONFLICT (snapshot_at, project_id) DO UPDATE.

fct_bingx_xpool_subpool_snapshot

Snapshot fact table подпулов BingX XPool.

Column Type Notes
snapshot_at timestamptz PK part время снимка
project_id bigint PK part id проекта
subpool_key text PK part стабильный ключ подпула
subpool_id bigint nullable id подпула из payload
exchange_id text FK bingx
project_asset_id / subpool_asset_id uuid FK nullable mapping к global_assets
project_coin / subpool_coin text nullable символы проекта/подпула
pool_name text имя подпула
est_apr_text / est_apr text / numeric APR
participants_text / participants text / numeric участники
raw_subpool jsonb raw subpool payload

ON CONFLICT (snapshot_at, project_id, subpool_key) DO UPDATE.

fct_bingx_xpool_response_snapshot

Raw payload snapshot для аудита ingestion.

Column Type Notes
snapshot_at timestamptz PK part время снимка
payload_hash text PK part md5(payload::text)
exchange_id text FK bingx
request_path text internal request source
response_code integer технический статус (ingest)
response_msg text источник (playwright)
payload jsonb полный payload для SQL ingest

fct_bingx_xpool_quarantine

Неразрешенные кейсы маппинга/ингеста BingX XPool.

Column Type Notes
snapshot_at timestamptz время снимка
exchange_id text FK bingx
project_id bigint nullable id проекта
subpool_key text nullable ключ подпула
project_coin / subpool_coin text nullable символы
reason text missing_*, missing_subpool_symbol, ambiguous_*, scrape_error
details jsonb диагностические поля
raw_payload jsonb raw entity payload

fct_bingx_xpool_5min / fct_bingx_xpool_daily

Continuous aggregates: - fct_bingx_xpool_5min: bucket 5 minutes, APR min/avg/max, participants sum/max, last(...) descriptors. - fct_bingx_xpool_daily: bucket 1 day поверх fct_bingx_xpool_5min.

Политики: - retention: 7 days raw snapshots, 30 days 5m cagg, 1 year daily cagg; - compression: 1 day raw, 7 days 5m cagg, 30 days daily cagg.

fct_bitget_launchpool_snapshot

Snapshot fact table проектов Bitget Launchpool (источник: Playwright scraping).

Column Type Notes
snapshot_at timestamptz PK part время снимка
project_id bigint PK part id проекта в Bitget
exchange_id text FK bitget
project_asset_id uuid FK nullable mapping к global_assets по project_coin
project_coin text nullable символ проекта
project_name text имя проекта
project_url text ссылка на detail страницу
project_status text Active/Ended/Upcoming
est_apr_text / est_apr text / numeric APR (raw + parsed)
participants_text / participants text / numeric участники (raw + parsed)
raw_project jsonb raw project payload

ON CONFLICT (snapshot_at, project_id) DO UPDATE.

fct_bitget_launchpool_subpool_snapshot

Snapshot fact table подпулов Bitget Launchpool.

Column Type Notes
snapshot_at timestamptz PK part время снимка
project_id bigint PK part id проекта
subpool_key text PK part стабильный ключ подпула
subpool_id bigint nullable id подпула из payload
exchange_id text FK bitget
project_asset_id / subpool_asset_id uuid FK nullable mapping к global_assets
project_coin / subpool_coin text nullable символы проекта/подпула
pool_name text имя подпула
est_apr_text / est_apr text / numeric APR
participants_text / participants text / numeric участники
raw_subpool jsonb raw subpool payload

ON CONFLICT (snapshot_at, project_id, subpool_key) DO UPDATE.

fct_bitget_launchpool_response_snapshot

Raw payload snapshot для аудита ingestion.

Column Type Notes
snapshot_at timestamptz PK part время снимка
payload_hash text PK part md5(payload::text)
exchange_id text FK bitget
request_path text internal request source
response_code integer технический статус (ingest)
response_msg text источник (playwright)
payload jsonb полный payload для SQL ingest

fct_bitget_launchpool_quarantine

Неразрешенные кейсы маппинга/ингеста Bitget Launchpool.

Column Type Notes
snapshot_at timestamptz время снимка
exchange_id text FK bitget
project_id bigint nullable id проекта
subpool_key text nullable ключ подпула
project_coin / subpool_coin text nullable символы
reason text missing_*, missing_subpool_symbol, ambiguous_*, scrape_error
details jsonb диагностические поля
raw_payload jsonb raw entity payload

fct_bitget_launchpool_5min / fct_bitget_launchpool_daily

Continuous aggregates: - fct_bitget_launchpool_5min: bucket 5 minutes, APR min/avg/max, participants sum/max, last(...) descriptors. - fct_bitget_launchpool_daily: bucket 1 day поверх fct_bitget_launchpool_5min.

Политики: - retention: 7 days raw snapshots, 30 days 5m cagg, 1 year daily cagg; - compression: 1 day raw, 7 days 5m cagg, 30 days daily cagg.