Market Viewr Update: Tackling Super-Long Richlists & a Question for You!
Hey everyone,
It seems like the Market Viewr app has been getting a bit of attention this week, not because I'm trying to dwell on it, but because new challenges and improvements keep popping up! This latest update addresses an interesting issue I encountered with tokens that have very large numbers of holders.
The Problem: Hive-Engine's 10,000 Record Speedbump
I noticed that for tokens with extremely long richlists – think of popular ones like ARCHON or PIZZA, which can have well over 10,000 individual holders (PIZZA has around 18,948!) – Market Viewr was either failing to load the complete richlist or would sometimes just hang.
After digging into it, I learned something new (or perhaps, re-learned something I'd forgotten): the Hive-Engine API has a hard pagination limit. You can't retrieve more than 10,000 records for a single query, period. So, if a token has more holders than that, the standard way of paginating through the balances (offset by 1000, get next 1000, etc.) hits a wall.
The Workaround: Iterating by Prefix
To get around this and attempt to build a more complete richlist for these massive tokens, I've implemented a new approach in Market Viewr. Instead of just trying to paginate through the entire balance list in one go, the tool now iterates through all possible starting characters for account names (a-z, 0-9, and even '_').
For each prefix (like "a", "b", "c", etc.), it fetches all account balances starting with that letter, paginating in chunks of 1000 until all accounts for that prefix are retrieved. It then combines these, removes duplicates (using a seen_accounts
set just in case), separates out the 'null' account balance for burned token calculation, and finally sorts the compiled list by balance.
You can see the gist of the change in the get_richlist
function from the git diff
I was working on:
# Simplified concept from the diff:
# ...
prefixes = list(string.ascii_lowercase) + list(string.digits) + ["_"]
seen_accounts = set()
for prefix in prefixes:
offset = 0
while True:
batch = he_api.find(
# ... query with account starting with prefix ...
)
if not batch:
break
for holder in batch:
# ... process holder, add to richlist if not 'null' and not seen ...
# ...
offset += page_size
# ...
richlist.sort(key=get_balance, reverse=True)
# ...
The Trade-off and a Question for You
This new method does allow Market Viewr to build a much more complete richlist for tokens that exceed the 10k holder limit. However, as you can imagine, making dozens of separate queries to the Hive-Engine API (one set for 'a' accounts, one for 'b' accounts, etc.) can take a significantly longer time to load for these very large tokens.
So, this brings me to a question for you all, the users:
For tokens with extremely long richlists (10,000+ holders):
- Do you prefer the application to attempt to load the entire richlist, even if it means a noticeably longer loading time for those specific tokens?
- Or, would you prefer it if Market Viewr capped the richlist display at a certain number (say, the top 5,000 or 10,000 holders) to ensure faster load times, even if it means not seeing every single tiny holder for the biggest tokens?
I'm trying to balance completeness with performance and usability. Your thoughts on this would be really helpful as I continue to refine the tool! Let me know in the comments what your preference would be.
As always,
Michael Garcia a.k.a. TheCrazyGM
By adding #bilpcoin or #bpc to original posts, you can earn BPC tokens

https://peakd.com/hive-140084/@bpcvoter1/my-way-keni-bpc-ai-music
https://peakd.com/hive-126152/@bpcvoter2/dear-themarkymark-buildawhale-gogreenbuddy-usainvote-ipromote-and-whoever-else-is-involved-in-this-scheme-you-call-us-nutty-as
https://peakd.com/hive-167922/@bilpcoinbpc/exploring-the-possibilities-of-ai-art-with-bilpcoin-nfts-episode-102-buildawhale-scam-farm-on-hive-and-dear-steevc
https://peakd.com/hive-133987/@bilpcoinbpc/comprehensive-analysis-of-punkteam-s-wallet-transactions
https://hive.blog/hive-163521/@bpcvoter1/deep-dive-into-meritocracy-s-activity-history-and-blockchain-audit
https://www.publish0x.com/the-dark-side-of-hive/to-downvoters-scammers-and-farmers-on-hive-the-time-to-chang-xmjzrmp
https://peakd.com/hive-163521/@bpcvoter3/themarkymark-we-ve-exposed-your-actions-repeatedly-how-you-and-your-army-of-bots-manipulate-rewards-to-benefit-yourselves-it-s
https://peakd.com/hive-168088/@bpcvoter3/the-shadow-matrix-a-tale-of-deceit-and-reckoning
Decentralization isn’t just a feature—it’s a fight. Let’s model fairness, rally allies, and pressure Hive to live up to its ideals.
https://peakd.com/hive-167922/@bpcvoter3/5m1kft-themarkymark-you-can-keep-pretending-to-be-oblivious-but-the-truth-is-out-you-ve-been-exposed-it-s-time-to-own-up-to-your
#StandForDecentralization #HiveTransparency
I would say, cap it, with search functionality. Is anyone really going to browse through a list of 18k names?
!HOPE
!PIZZA
!INDEED
!ALIVE
!BBH
!STRIDE
That's kind of where I was leaning, since a majority of the actual "rich list" is usually the top 100 maybe? A search function for that part is a smart add, I'll try to get that added soon(ish).
I was leary about cutting the list off as it's supposed to be a viewer of the whole e.g. how it shows who made the orders where other's stopped doing that.
Mainly asking if it's needed for completion sake?
I would lean towards not needed. if there is a need for it, you could go for a two-way implementation, go for top100 in standard mode, and full list for super mode…
that's actually a clever and simple fix, thank you, so a reasonable default and a "are you sure you want the whole thing" which is understandable when it's all done ( i intend to add an export to csv for example)
Indeed, it will also allow for much more scaleability and possibilities if needed/wanted. You could ask for a small contribution for instance for the advanced features (if you need to pay BEED for it in the future, covering your cost ;-) )
My vote is to be faster and show less, assuming we are showing the most important stuff - thos with the most significant balances
Personally I'd prefer richlists with caps, since beyond a certain number, the term 'richlist' begins to lose its meaning. Faster page loading is also a good reason for a cap I'd say. I keep trying to use it in the Hive Keychain app, and it sometimes, rather often actually, just hangs. Also when I touch certain area of the page, it crashes with an error, which I've screenshot and included below. 😁 🙏 💚 ✨ 🤙

Actually I appreciate the error report, that's actually unrelated to the app specifically, as it has to do with the webserver directly. Should be fixed now, if it does it again, please reach out to me.
I'm glad to hear that, and excellent. I'll give it another go shortly, and I'll let you know if anything goes awry. 😁 🙏 💚 ✨ 🤙
Lazy loading, thank me later :)