Summary
Some listing rows reference an !offer: slug that exists in references/offers/, but the offer is defined under a different category file than the listing that consumes it. This can make category-specific exports silently hydrate an offer from the wrong schema.
Evidence
Local CSV scan on current main found these concrete mismatches:
| listing row |
listing category |
referenced offer |
offer category |
listings/all-networks/analytics.csv:2 |
analytics.csv |
!offer:arkham |
references/offers/explorers.csv |
listings/all-networks/platforms.csv:19 |
platforms.csv |
!offer:sequence |
references/offers/wallets.csv |
listings/specific-networks/avalanche/analytics.csv:2 |
analytics.csv |
!offer:arkham |
references/offers/explorers.csv |
listings/specific-networks/filecoin/analytics.csv:19 |
analytics.csv |
!offer:starboard |
references/offers/explorers.csv |
Why this matters
Each listing CSV has category-specific columns. If an analytics listing hydrates an explorer offer, or a platform listing hydrates a wallet offer, downstream JSON consumers can receive fields that look valid but belong to another category schema.
Proposed guardrail
Add a validation rule for listing rows that use !offer:<slug>:
- Resolve the slug in
references/offers/**/*.csv.
- Compare the referenced offer file name with the listing file name.
- Fail validation when they differ, unless an explicit cross-category alias/exception file is introduced.
This keeps the check narrow and avoids blocking plain text rows that do not use !offer:.
Reward address
Public ERC-20 address for the DBIP reward, if approved:
0xb43d90BB4E22A43D77e9bfbc2f1CA826ec1CaBF1
Summary
Some listing rows reference an
!offer:slug that exists inreferences/offers/, but the offer is defined under a different category file than the listing that consumes it. This can make category-specific exports silently hydrate an offer from the wrong schema.Evidence
Local CSV scan on current
mainfound these concrete mismatches:listings/all-networks/analytics.csv:2analytics.csv!offer:arkhamreferences/offers/explorers.csvlistings/all-networks/platforms.csv:19platforms.csv!offer:sequencereferences/offers/wallets.csvlistings/specific-networks/avalanche/analytics.csv:2analytics.csv!offer:arkhamreferences/offers/explorers.csvlistings/specific-networks/filecoin/analytics.csv:19analytics.csv!offer:starboardreferences/offers/explorers.csvWhy this matters
Each listing CSV has category-specific columns. If an analytics listing hydrates an explorer offer, or a platform listing hydrates a wallet offer, downstream JSON consumers can receive fields that look valid but belong to another category schema.
Proposed guardrail
Add a validation rule for listing rows that use
!offer:<slug>:references/offers/**/*.csv.This keeps the check narrow and avoids blocking plain text rows that do not use
!offer:.Reward address
Public ERC-20 address for the DBIP reward, if approved:
0xb43d90BB4E22A43D77e9bfbc2f1CA826ec1CaBF1