ledger: 2026-11-04 crypto top-20 by market cap (CoinGecko, 20 rows) + verifier

This commit is contained in:
ledger committed 2026-11-04 08:34:17 +00:00
1 parent be2741131e
commit 406dd17ed3
3 files changed
+629

No files matched your search

@@ -0,0 +1,570 @@
[
{
"id": "bitcoin",
"symbol": "btc",
"name": "Bitcoin",
"image": "https://coin-images.coingecko.com/coins/images/1/large/bitcoin.png?1696501400",
"current_price": 78255,
"market_cap": 1573348488439,
"market_cap_rank": 1,
"fully_diluted_valuation": 1573348488439,
"total_volume": 30576695486,
"high_24h": 78234,
"low_24h": 75695,
"price_change_24h": 1730.46,
"price_change_percentage_24h": 2.25749,
"market_cap_change_24h": 34791574954,
"market_cap_change_percentage_24h": 2.26131,
"circulating_supply": 20105365.0,
"total_supply": 20105365.0,
"max_supply": 21000000.0,
"ath": 126080,
"ath_change_percentage": -37.93209,
"ath_date": "2025-10-06T10:57:42.000Z",
"atl": 67.81,
"atl_change_percentage": 115305.26581,
"atl_date": "2013-07-05T16:00:00.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "ethereum",
"symbol": "eth",
"name": "Ethereum",
"image": "https://coin-images.coingecko.com/coins/images/279/large/ethereum.png?1696501628",
"current_price": 2315.49,
"market_cap": 282928151018,
"market_cap_rank": 2,
"fully_diluted_valuation": 282928151018,
"total_volume": 10718322485,
"high_24h": 2306.54,
"low_24h": 2226.51,
"price_change_24h": 64.72,
"price_change_percentage_24h": 2.83732,
"market_cap_change_24h": 7914631415,
"market_cap_change_percentage_24h": 2.87791,
"circulating_supply": 122189135.08807562,
"total_supply": 122189135.08807562,
"max_supply": null,
"ath": 4946.05,
"ath_change_percentage": -53.18495,
"ath_date": "2025-08-24T11:21:03.000Z",
"atl": 0.432979,
"atl_change_percentage": 534682.44175,
"atl_date": "2015-10-19T16:00:00.000Z",
"roi": {
"times": 43.309089628863546,
"currency": "btc",
"percentage": 4330.908962886355
},
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "tether",
"symbol": "usdt",
"name": "Tether",
"image": "https://coin-images.coingecko.com/coins/images/325/large/Tether.png?1696501661",
"current_price": 0.998814,
"market_cap": 178162119887,
"market_cap_rank": 3,
"fully_diluted_valuation": 183622582367,
"total_volume": 49120905249,
"high_24h": 0.999211,
"low_24h": 0.998552,
"price_change_24h": 0.00021658,
"price_change_percentage_24h": 0.01886,
"market_cap_change_24h": -702174099.3463135,
"market_cap_change_percentage_24h": -0.39257,
"circulating_supply": 178373746488.0956,
"total_supply": 183840695078.1162,
"max_supply": null,
"ath": 1.32,
"ath_change_percentage": -24.50932,
"ath_date": "2018-07-23T16:00:00.000Z",
"atl": 0.572521,
"atl_change_percentage": 74.45885,
"atl_date": "2015-03-01T16:00:00.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "binancecoin",
"symbol": "bnb",
"name": "BNB",
"image": "https://coin-images.coingecko.com/coins/images/825/large/bnb-icon2_2x.png?1696501970",
"current_price": 701.79,
"market_cap": 92292888188,
"market_cap_rank": 4,
"fully_diluted_valuation": 92292887914,
"total_volume": 931951812,
"high_24h": 702.96,
"low_24h": 681.4,
"price_change_24h": 10.91,
"price_change_percentage_24h": 1.57254,
"market_cap_change_24h": 1434625323,
"market_cap_change_percentage_24h": 1.57897,
"circulating_supply": 131511203.55,
"total_supply": 131511203.16,
"max_supply": 200000000.0,
"ath": 1369.99,
"ath_change_percentage": -48.77434,
"ath_date": "2025-10-13T00:41:24.000Z",
"atl": 0.0398177,
"atl_change_percentage": 1762400.89052,
"atl_date": "2017-10-18T16:00:00.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "ripple",
"symbol": "xrp",
"name": "XRP",
"image": "https://coin-images.coingecko.com/coins/images/44/large/xrp-symbol-white-128.png?1696501442",
"current_price": 1.28,
"market_cap": 80961641062,
"market_cap_rank": 5,
"fully_diluted_valuation": 127779705889,
"total_volume": 2250442487,
"high_24h": 1.29,
"low_24h": 1.24,
"price_change_24h": 0.02921963,
"price_change_percentage_24h": 2.31476,
"market_cap_change_24h": 1851098758,
"market_cap_change_percentage_24h": 2.33989,
"circulating_supply": 63351197653.0,
"total_supply": 99985589443.0,
"max_supply": 100000000000.0,
"ath": 3.65,
"ath_change_percentage": -64.95204,
"ath_date": "2025-07-17T19:40:53.000Z",
"atl": 0.00268621,
"atl_change_percentage": 47475.68512,
"atl_date": "2014-05-21T16:00:00.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "usd-coin",
"symbol": "usdc",
"name": "USDC",
"image": "https://coin-images.coingecko.com/coins/images/6319/large/USDC.png?1769615602",
"current_price": 0.999384,
"market_cap": 70572322809,
"market_cap_rank": 6,
"fully_diluted_valuation": 70554367158,
"total_volume": 13659059638,
"high_24h": 0.999664,
"low_24h": 0.999234,
"price_change_24h": 0.00010829,
"price_change_percentage_24h": 0.00911,
"market_cap_change_24h": -381549610.4987488,
"market_cap_change_percentage_24h": -0.53774,
"circulating_supply": 70615833765.41429,
"total_supply": 70597867043.98936,
"max_supply": null,
"ath": 1.043,
"ath_change_percentage": -4.22446,
"ath_date": "2018-11-14T16:00:00.000Z",
"atl": 0.877647,
"atl_change_percentage": 13.87087,
"atl_date": "2023-03-11T00:02:13.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "solana",
"symbol": "sol",
"name": "Solana",
"image": "https://coin-images.coingecko.com/coins/images/4128/large/solana.png?1718769756",
"current_price": 93.16,
"market_cap": 54982618832,
"market_cap_rank": 7,
"fully_diluted_valuation": 59336612751,
"total_volume": 2711184215,
"high_24h": 93.79,
"low_24h": 90.1,
"price_change_24h": 1.59,
"price_change_percentage_24h": 1.71971,
"market_cap_change_24h": 938189309,
"market_cap_change_percentage_24h": 1.73596,
"circulating_supply": 590206691.0291849,
"total_supply": 636944303.7200489,
"max_supply": null,
"ath": 293.31,
"ath_change_percentage": -68.23916,
"ath_date": "2025-01-19T03:15:27.000Z",
"atl": 0.500801,
"atl_change_percentage": 18501.85858,
"atl_date": "2020-05-11T11:35:23.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "tron",
"symbol": "trx",
"name": "TRON",
"image": "https://coin-images.coingecko.com/coins/images/1094/large/photo_2026-04-13_09-59-16.png?1776048311",
"current_price": 0.322046,
"market_cap": 30602375497,
"market_cap_rank": 8,
"fully_diluted_valuation": 30602513802,
"total_volume": 515029378,
"high_24h": 0.323896,
"low_24h": 0.320669,
"price_change_24h": 0.00106301,
"price_change_percentage_24h": 0.32572,
"market_cap_change_24h": 101124203,
"market_cap_change_percentage_24h": 0.33154,
"circulating_supply": 95024889590.17348,
"total_supply": 95025319048.06659,
"max_supply": null,
"ath": 0.431288,
"ath_change_percentage": -25.32933,
"ath_date": "2024-12-03T16:10:40.000Z",
"atl": 0.00180434,
"atl_change_percentage": 17748.38789,
"atl_date": "2017-11-11T16:00:00.000Z",
"roi": {
"times": 175.85388089843906,
"currency": "usd",
"percentage": 17585.388089843906
},
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "figure-heloc",
"symbol": "figr_heloc",
"name": "Figure Heloc",
"image": "https://coin-images.coingecko.com/coins/images/68480/large/figure.png?1755863954",
"current_price": 1.03,
"market_cap": 26849274114,
"market_cap_rank": 9,
"fully_diluted_valuation": 26849274114,
"total_volume": 481283744,
"high_24h": 1.049,
"low_24h": 1.029,
"price_change_24h": null,
"price_change_percentage_24h": null,
"market_cap_change_24h": null,
"market_cap_change_percentage_24h": null,
"circulating_supply": 26063337181.779,
"total_supply": 26063337181.779,
"max_supply": null,
"ath": 1.076,
"ath_change_percentage": -4.23041,
"ath_date": "2026-11-01T13:20:30.000Z",
"atl": 0.155357,
"atl_change_percentage": 563.09052,
"atl_date": "2025-10-31T06:27:24.000Z",
"roi": null,
"last_updated": "2026-11-04T08:27:14.000Z"
},
{
"id": "zcash",
"symbol": "zec",
"name": "Zcash",
"image": "https://coin-images.coingecko.com/coins/images/486/large/Brandmark-Yellow_%281%29.png?1785810558",
"current_price": 1287.29,
"market_cap": 21912731207,
"market_cap_rank": 10,
"fully_diluted_valuation": 21913447260,
"total_volume": 1121561511,
"high_24h": 1283.98,
"low_24h": 1126.1,
"price_change_24h": 159.34,
"price_change_percentage_24h": 14.03285,
"market_cap_change_24h": 2720952910,
"market_cap_change_percentage_24h": 14.1777,
"circulating_supply": 17022426.7280448,
"total_supply": 17022982.9780448,
"max_supply": 21000000.0,
"ath": 3191.93,
"ath_change_percentage": -59.67061,
"ath_date": "2016-10-28T16:00:00.000Z",
"atl": 16.08,
"atl_change_percentage": 7905.44348,
"atl_date": "2024-07-04T20:22:29.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "hyperliquid",
"symbol": "hype",
"name": "Hyperliquid",
"image": "https://coin-images.coingecko.com/coins/images/50882/large/hyperliquid.jpg?1729431300",
"current_price": 85.52,
"market_cap": 20474312564,
"market_cap_rank": 11,
"fully_diluted_valuation": 81376514144,
"total_volume": 1342552084,
"high_24h": 87.7,
"low_24h": 81.35,
"price_change_24h": 2.67,
"price_change_percentage_24h": 3.12245,
"market_cap_change_24h": 638175970,
"market_cap_change_percentage_24h": 3.21724,
"circulating_supply": 239406814.37414145,
"total_supply": 951538272.9141414,
"max_supply": 1000000000.0,
"ath": 97.96,
"ath_change_percentage": -12.7006,
"ath_date": "2026-09-23T05:16:50.000Z",
"atl": 3.81,
"atl_change_percentage": 2145.38886,
"atl_date": "2024-11-29T01:30:30.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "monero",
"symbol": "xmr",
"name": "Monero",
"image": "https://coin-images.coingecko.com/coins/images/69/large/monero_logo.png?1696501460",
"current_price": 639.55,
"market_cap": 12040451158,
"market_cap_rank": 12,
"fully_diluted_valuation": 12040454996,
"total_volume": 191458043,
"high_24h": 643.93,
"low_24h": 618.41,
"price_change_24h": 18.69,
"price_change_percentage_24h": 2.95498,
"market_cap_change_24h": 352151958,
"market_cap_change_percentage_24h": 3.01286,
"circulating_supply": 18826493.755008258,
"total_supply": 18826499.755008258,
"max_supply": null,
"ath": 797.73,
"ath_change_percentage": -19.82946,
"ath_date": "2026-01-14T11:34:07.000Z",
"atl": 0.216177,
"atl_change_percentage": 295745.20029,
"atl_date": "2015-01-13T16:00:00.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "dogecoin",
"symbol": "doge",
"name": "Dogecoin",
"image": "https://coin-images.coingecko.com/coins/images/5/large/dogecoin.png?1696501409",
"current_price": 0.075119,
"market_cap": 11763786968,
"market_cap_rank": 13,
"fully_diluted_valuation": 11764026596,
"total_volume": 456606907,
"high_24h": 0.075622,
"low_24h": 0.072436,
"price_change_24h": 0.00147473,
"price_change_percentage_24h": 1.98138,
"market_cap_change_24h": 235293952,
"market_cap_change_percentage_24h": 2.04098,
"circulating_supply": 156602712860.16907,
"total_supply": 156605902860.16907,
"max_supply": null,
"ath": 0.731578,
"ath_change_percentage": -89.73197,
"ath_date": "2021-05-07T21:08:23.000Z",
"atl": 8.69e-05,
"atl_change_percentage": 86338.91692,
"atl_date": "2015-05-05T16:00:00.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "usds",
"symbol": "usds",
"name": "USDS",
"image": "https://coin-images.coingecko.com/coins/images/39926/large/usds.webp?1726666683",
"current_price": 1.0,
"market_cap": 9585058983,
"market_cap_rank": 14,
"fully_diluted_valuation": 9604740002,
"total_volume": 197965779,
"high_24h": 1.001,
"low_24h": 0.998716,
"price_change_24h": 0.00028981,
"price_change_percentage_24h": 0.00353,
"market_cap_change_24h": -16113728.467651367,
"market_cap_change_percentage_24h": -0.16783,
"circulating_supply": 9584404242.729515,
"total_supply": 9604083916.77919,
"max_supply": null,
"ath": 1.057,
"ath_change_percentage": -5.41502,
"ath_date": "2024-10-28T21:40:51.000Z",
"atl": 0.948265,
"atl_change_percentage": 5.46291,
"atl_date": "2024-10-03T05:19:28.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "whitebit",
"symbol": "wbt",
"name": "WhiteBIT Coin",
"image": "https://coin-images.coingecko.com/coins/images/27045/large/wbt_token.png?1696526096",
"current_price": 75.32,
"market_cap": 8940022640,
"market_cap_rank": 15,
"fully_diluted_valuation": 22089213660,
"total_volume": 130020498,
"high_24h": 75.22,
"low_24h": 72.73,
"price_change_24h": 1.72,
"price_change_percentage_24h": 2.32411,
"market_cap_change_24h": 204657977,
"market_cap_change_percentage_24h": 2.34287,
"circulating_supply": 118688311.0,
"total_supply": 293257810.0,
"max_supply": 400000000.0,
"ath": 87.91,
"ath_change_percentage": -14.3206,
"ath_date": "2026-09-21T20:29:10.000Z",
"atl": 3.06,
"atl_change_percentage": 2360.19026,
"atl_date": "2023-02-13T11:01:21.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "chainlink",
"symbol": "link",
"name": "Chainlink",
"image": "https://coin-images.coingecko.com/coins/images/877/large/Chainlink_Logo_500.png?1760023405",
"current_price": 11.18,
"market_cap": 8569991836,
"market_cap_rank": 16,
"fully_diluted_valuation": 11175578231,
"total_volume": 296144976,
"high_24h": 11.28,
"low_24h": 10.65,
"price_change_24h": 0.120127,
"price_change_percentage_24h": 1.08433,
"market_cap_change_24h": 92119264,
"market_cap_change_percentage_24h": 1.08658,
"circulating_supply": 766849970.424884,
"total_supply": 1000000000.0,
"max_supply": 1000000000.0,
"ath": 52.7,
"ath_change_percentage": -78.79252,
"ath_date": "2021-05-09T16:13:57.000Z",
"atl": 0.148183,
"atl_change_percentage": 7441.76123,
"atl_date": "2017-11-28T16:00:00.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "leo-token",
"symbol": "leo",
"name": "LEO Token",
"image": "https://coin-images.coingecko.com/coins/images/8418/large/leo-token.png?1696508607",
"current_price": 9.31,
"market_cap": 8561758684,
"market_cap_rank": 17,
"fully_diluted_valuation": 9170311328,
"total_volume": 170958,
"high_24h": 9.35,
"low_24h": 9.26,
"price_change_24h": 0.02930061,
"price_change_percentage_24h": 0.31682,
"market_cap_change_24h": 26952394,
"market_cap_change_percentage_24h": 0.31579,
"circulating_supply": 919857851.9,
"total_supply": 985239504.0,
"max_supply": null,
"ath": 10.61,
"ath_change_percentage": -12.30077,
"ath_date": "2026-05-04T09:35:00.000Z",
"atl": 0.799859,
"atl_change_percentage": 1063.66703,
"atl_date": "2019-12-24T07:14:35.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "cardano",
"symbol": "ada",
"name": "Cardano",
"image": "https://coin-images.coingecko.com/coins/images/975/large/cardano.png?1696502090",
"current_price": 0.191482,
"market_cap": 7195443079,
"market_cap_rank": 18,
"fully_diluted_valuation": 8616680468,
"total_volume": 232730074,
"high_24h": 0.192109,
"low_24h": 0.183398,
"price_change_24h": 0.00562088,
"price_change_percentage_24h": 2.98348,
"market_cap_change_24h": 211219724,
"market_cap_change_percentage_24h": 3.02424,
"circulating_supply": 37577688968.56947,
"total_supply": 45000000000.0,
"max_supply": 45000000000.0,
"ath": 3.09,
"ath_change_percentage": -93.79698,
"ath_date": "2021-09-01T22:00:10.000Z",
"atl": 0.01925275,
"atl_change_percentage": 894.56866,
"atl_date": "2020-03-12T18:22:55.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "stellar",
"symbol": "xlm",
"name": "Stellar",
"image": "https://coin-images.coingecko.com/coins/images/100/large/fmpFRHHQ_400x400.jpg?1735231350",
"current_price": 0.16398,
"market_cap": 5793582067,
"market_cap_rank": 19,
"fully_diluted_valuation": 8199285835,
"total_volume": 134739867,
"high_24h": 0.166789,
"low_24h": 0.157426,
"price_change_24h": 0.00308658,
"price_change_percentage_24h": 1.96378,
"market_cap_change_24h": 111478446,
"market_cap_change_percentage_24h": 1.96192,
"circulating_supply": 35331059479.69541,
"total_supply": 50001786837.39707,
"max_supply": null,
"ath": 0.875563,
"ath_change_percentage": -81.2715,
"ath_date": "2018-01-02T16:00:00.000Z",
"atl": 0.00047612,
"atl_change_percentage": 34340.62178,
"atl_date": "2015-03-04T16:00:00.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
},
{
"id": "bitcoin-cash",
"symbol": "bch",
"name": "Bitcoin Cash",
"image": "https://coin-images.coingecko.com/coins/images/780/large/bitcoin-cash-circle.png?1696501932",
"current_price": 276.59,
"market_cap": 5562750272,
"market_cap_rank": 20,
"fully_diluted_valuation": 5562838434,
"total_volume": 145523911,
"high_24h": 277.89,
"low_24h": 265.91,
"price_change_24h": 1.95,
"price_change_percentage_24h": 0.69821,
"market_cap_change_24h": 39225631,
"market_cap_change_percentage_24h": 0.71016,
"circulating_supply": 20112018.64665076,
"total_supply": 20112337.39665076,
"max_supply": 21000000.0,
"ath": 3785.82,
"ath_change_percentage": -92.6941,
"ath_date": "2017-12-19T16:00:00.000Z",
"atl": 76.93,
"atl_change_percentage": 259.51011,
"atl_date": "2018-12-15T16:00:00.000Z",
"roi": null,
"last_updated": "2026-11-04T08:28:51.000Z"
}
]
@@ -0,0 +1,28 @@
# Top 20 Cryptocurrencies by Market Cap (USD)
Source: CoinGecko (API `coins/markets`, 2026-11-04, vs_currency=USD, per_page=20).
| # | Name | Symbol | Price (USD) | Market Cap (USD) | 24h % | 24h Vol (USD) |
|---|---|---|---|---|---|---|
| 1 | Bitcoin | btc | $78255 | $1,573,348,488,439 | +2.26% | $30,576,695,486 |
| 2 | Ethereum | eth | $2315.49 | $282,928,151,018 | +2.84% | $10,718,322,485 |
| 3 | Tether | usdt | $0.998814 | $178,162,119,887 | +0.02% | $49,120,905,249 |
| 4 | BNB | bnb | $701.79 | $92,292,888,188 | +1.57% | $931,951,812 |
| 5 | XRP | xrp | $1.28 | $80,961,641,062 | +2.31% | $2,250,442,487 |
| 6 | USDC | usdc | $0.999384 | $70,572,322,809 | +0.01% | $13,659,059,638 |
| 7 | Solana | sol | $93.16 | $54,982,618,832 | +1.72% | $2,711,184,215 |
| 8 | TRON | trx | $0.322046 | $30,602,375,497 | +0.33% | $515,029,378 |
| 9 | Figure Heloc | figr_heloc | $1.03 | $26,849,274,114 | - | $481,283,744 |
| 10 | Zcash | zec | $1287.29 | $21,912,731,207 | +14.03% | $1,121,561,511 |
| 11 | Hyperliquid | hype | $85.52 | $20,474,312,564 | +3.12% | $1,342,552,084 |
| 12 | Monero | xmr | $639.55 | $12,040,451,158 | +2.95% | $191,458,043 |
| 13 | Dogecoin | doge | $0.075119 | $11,763,786,968 | +1.98% | $456,606,907 |
| 14 | USDS | usds | $1 | $9,585,058,983 | +0.00% | $197,965,779 |
| 15 | WhiteBIT Coin | wbt | $75.32 | $8,940,022,640 | +2.32% | $130,020,498 |
| 16 | Chainlink | link | $11.18 | $8,569,991,836 | +1.08% | $296,144,976 |
| 17 | LEO Token | leo | $9.31 | $8,561,758,684 | +0.32% | $170,958 |
| 18 | Cardano | ada | $0.191482 | $7,195,443,079 | +2.98% | $232,730,074 |
| 19 | Stellar | xlm | $0.16398 | $5,793,582,067 | +1.96% | $134,739,867 |
| 20 | Bitcoin Cash | bch | $276.59 | $5,562,750,272 | +0.70% | $145,523,911 |
*Numbers formatted for readability; full raw values in `crypto-top20.json`.*
+31
View File
@@ -0,0 +1,31 @@
#!/usr/bin/env bash
# CHECK -- 2026-11-04 Top 20 cryptocurrencies by market cap (CoinGecko).
# Verifies the committed table + raw JSON re-derive the same 20 rows.
# Exit 0 iff: 20 rows parsed, rank1==Bitcoin, rows 1..20 in order, every
# market_cap/price from the committed JSON appears in the committed MD.
set -u
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
MD="$HERE/2026-11-04-crypto-top20.md"
JS="$HERE/2026-11-04-crypto-top20.json"
[ -f "$MD" ] || { echo "CANNOT GRADE: missing $MD"; exit 2; }
[ -f "$JS" ] || { echo "CANNOT GRADE: missing $JS"; exit 2; }
python3 - "$MD" "$JS" <<'PY'
import json, sys
md, js = sys.argv[1], sys.argv[2]
txt = open(md).read()
body = [l for l in txt.splitlines() if l.startswith("| ") and " | " in l]
data = json.load(open(js))
assert len(data) == 20, f"json rows={len(data)}"
ranks = [d["market_cap_rank"] for d in data]
assert ranks == list(range(1, 21)), "ranks not 1..20"
names = [d["name"] for d in data]
assert names[0] == "Bitcoin", names[0]
assert names[19] == "Bitcoin Cash", names[19]
body_md = body[1:]
assert len(body_md) == 20, f"md rows={len(body_md)}"
for d in data:
assert d["market_cap"] > 0, d["name"]
assert f"{d['market_cap']:,}" in txt, f"raw cap {d['market_cap']} not in md for {d['name']}"
print("rows 20/20 | rank1=Bitcoin | last=Bitcoin Cash | all caps>0 | all raw caps present")
PY