{
"__typename": "MsgCall",
"caller": "g1manfred47kzduec920z88wfr64ylksmdcedlf5",
"send": "",
"pkg_path": "gno.land/r/moul/blog",
"func": "SetIntro",
"args": [
"# moul's blog\n\nNotes on gno.land, from someone building on it. Short, specific, mostly about\nthings I made for myself and then found out other people wanted too.\n\nNothing here is official. It is one person's working notes."
],
"max_deposit": ""
}msg:0,success:true,log:,events:[] msg:1,success:true,log:,events:[]
Tx{0ABA020A0A2F766D2E6D5F63616C6C12AB020A2867316D616E6672656434376B7A647565633932307A38387766723634796C6B736D646365646C66352214676E6F2E6C616E642F722F6D6F756C2F626C6F672A08536574496E74726F32DE0123206D6F756C277320626C6F670A0A4E6F746573206F6E20676E6F2E6C616E642C2066726F6D20736F6D656F6E65206275696C64696E67206F6E2069742E2053686F72742C2073706563696669632C206D6F73746C792061626F75740A7468696E67732049206D61646520666F72206D7973656C6620616E64207468656E20666F756E64206F7574206F746865722070656F706C652077616E74656420746F6F2E0A0A4E6F7468696E672068657265206973206F6666696369616C2E204974206973206F6E6520706572736F6E277320776F726B696E67206E6F7465732E0A8D210A0A2F766D2E6D5F63616C6C12FE200A2867316D616E6672656434376B7A647565633932307A38387766723634796C6B736D646365646C66352214676E6F2E6C616E642F722F6D6F756C2F626C6F672A0353657432096D79676E6F7363616E321173686172696E67206D79676E6F7363616E320A323032362D30392D3233321A6D79676E6F7363616E2C746F6F6C696E672C6578706C6F72657232F01F492068617665206265656E206275696C64696E67205B6D79676E6F7363616E5D2868747470733A2F2F6D79676E6F7363616E2E6D6F756C2E7032702E7465616D292073696E636520417072696C20616E640A6E6576657220616E6E6F756E6365642069742C2062656361757365206974206973206E6F742066696E697368656420616E642069742077696C6C206E6F742062652E0A0A5468656E2070656F706C6520666F756E642069742C20736169642074686579206C696B65642069742C20616E642061736B6564207768656E204920776F756C642073686172652069742E20536F3A0A686572652069742069732E204E6F7420612070726F647563742C206E6F74206F6666696369616C2E204120424920746F6F6C20492077726F746520746F20616E73776572206D79206F776E0A7175657374696F6E732061626F757420676E6F2E6C616E642C207468617420492061646420746F2065766572792074696D65206974206661696C7320746F20616E737765722061206E6577206F6E652E0A0A2323207768617420492061637475616C6C79206F70656E20697420666F720A0A47656E65726963206578706C6F7265727320617265206275696C742061726F756E6420626C6F636B7320616E64207472616E73616374696F6E732E2054686F736520617265207461626C650A7374616B65732E204D79207175657374696F6E732077657265206120646966666572656E742073686170653A2077686174206973206465706C6F7965642C2077686F2063616C6C732069742C20616E640A77686174206368616E6765642074686973207765656B2E0A0A536F207468652066726F6E74207061676520697320612077696E646F772C206E6F742061206C65646765722E205069636B20612072616E67652C2073656520697420616761696E7374207468650A72616E6765206265666F72652069742C207468656E2066697665206C697374733A0A0A2D202A2A686F74207265616C6D732A2A2C2062792063616C6C732C2077697468207468652063616C6C657220636F756E7420626573696465207468656D2E20332C3831372063616C6C732066726F6D0A202032362061646472657373657320616E6420342C3939382066726F6D2034363120617265206E6F74207468652073616D65206576656E742C20616E64206F6E65206E756D6265722063616E6E6F740A202074656C6C20796F7520776869636820796F7520617265206C6F6F6B696E672061742E0A2D202A2A686F74206173736574732A2A3A2075676E6F742061742031392C323830207472616E73666572732066726F6D203938302073656E646572732C20474E5320617420362C3332342066726F6D203134312E0A2D202A2A686F7420646576656C6F706572732A2A2C20666C6167676564207768656E206974206973207468656972206669727374206465706C6F7920657665722E205468726565206F66207468650A2020746F7020666F75722074686973207765656B206172652066697273742D74696D6572732E0A2D202A2A686F74206C69627261726965732A2A2C2072616E6B6564206279202A6E65772A20696D706F727465727320726174686572207468616E20746F74616C2E2060702F6E742F75666D74600A2020746F6F6B203233206E657720696D706F72746572732074686973207765656B20616761696E73742031313320616C6C2074696D652E0A2D202A2A6E6F7461626C65207472616E73666572732E2A2A0A0A556E64657220746861743A207265616C6D20736F757263652C20696D706F7274732C20646570656E64656E74732C2063616C6C6572732C2074686520604D736752756E6020736372697074730A74686174207573652061207265616C6D20776974686F757420696D706F7274696E672069742C206120646570656E64656E63792067726170682C20616E642073637265656E73686F7473206F660A776861742065616368207265616C6D2061637475616C6C79206C6F6F6B73206C696B652E0A0A23232074776F207468696E67732074686520696E646578657220746175676874206D650A0A48616C66206F66207468697320697320612066726F6E74656E642E20546865206F746865722068616C66206973206C6561726E696E6720686F77207468650A5B74782D696E64657865725D2868747470733A2F2F6769746875622E636F6D2F676E6F6C616E672F74782D696E6465786572292061637475616C6C7920626568617665732C2077686963682069730A77686572652074686520696E746572657374696E672062756773206C6976652E0A0A2A2A5468657265206973206E6F20706167696E6174696F6E2E2A2A20606765745472616E73616374696F6E73602074616B6573206077686572656020616E6420606F72646572602C20616E640A6E6F7468696E6720656C73652E20546865207365727665722063617073206120726573756C74207365742061742031302C30303020656C656D656E74732C20616E64206F6E207265616368696E670A697420746865207265736F6C7665722073746F707320616E642072657475726E732074686520726F777320697420686173202A616C6F6E67736964652A2061204772617068514C206572726F722E0A536F20612063617070656420726573706F6E7365206973207061727469616C2C206E6F7420656D7074792C20616E6420746865206F6E6C792077617920746F2077616C6B2061206C61726765720A7365742069732074686520626C6F636B206865696768742066696C7465723A0A0A6060606772617068716C0A6765745472616E73616374696F6E732877686572653A207B0A2020626C6F636B5F6865696768743A207B2067743A203235303030302C206C74653A20323630303030207D0A7D29207B206861736820626C6F636B5F686569676874207D0A6060600A0A5265616420746861742077726F6E6720616E6420796F752073686F772061207472756E636174656420686973746F7279206173206966206974207765726520636F6D706C6574652E0A0A2A2A4F6E6520756E6B6E6F776E2074797065206B696C6C732065766572792071756572792E2A2A204D657373616765207479706573206172652073656C656374656420696E73696465206F6E650A73686172656420667261676D656E74207365743A0A0A6060606772617068716C0A6D65737361676573207B2076616C7565207B205F5F747970656E616D650A20202E2E2E206F6E204D736743616C6C202020202020202020207B2063616C6C657220706B675F706174682066756E632061726773207D0A20202E2E2E206F6E204D73674164645061636B616765202020207B2063726561746F72207061636B616765207B206E616D652070617468207D207D0A20202E2E2E206F6E204D7367456E61626C655061636B616765207B20617070726F76657220706B675F70617468207D0A7D207D0A6060600A0A416E20696E6465786572207468617420646F6573206E6F7420646566696E6520604D7367456E61626C655061636B616765602072656A65637473202A2A65766572792A2A207472616E73616374696F6E0A71756572792C206E6F74206A75737420746865206F6E6573207468617420776F756C642068617665206D6174636865642069743A0A0A6060600A73796E63207061636B616765733A20696E64657865722072657475726E6564203432323A20556E6B6E6F776E207479706520224D7367456E61626C655061636B616765220A6060600A0A5468617420746F6F6B20612077686F6C6520636861696E27732073796E63206F66666C696E652E20416E642074686520747970657320736869707065642073657061726174656C792C20736F0A6D61696E6E657420646566696E657320604D7367456E61626C655061636B6167656020616E64206E6F7420604D736743726561746553657373696F6E603A2070726F62696E6720666F72206F6E650A616E642073656C656374696E6720746865206F74686572206661696C73206576657279207175657279207768696C65207265706F7274696E6720737570706F72742E0A0A232320776865726520492077616E7420746F2074616B652069740A0A4120646576656C6F7065722073656374696F6E2C206D6F73746C792E205265616C6D2073746174652061732061207265616461626C65207472656520696E7374656164206F66206120626C6F622E0A436F646520736561726368206163726F737320657665727920602E676E6F602066696C65206F6E20636861696E2E20412074696D65206D616368696E652C20626563617573652074686520636861696E0A6F76657277726974657320737461746520616E642074686520696E646578657220697320746865206F6E6C79207468696E67207761746368696E672E20416E64206120726561642D6F6E6C790A656E64706F696E7420736F20616E206167656E742063616E2061736B207768617420492061736B207468726F756768207468652055492E0A0A232320706C6561736520627265616B2069740A0A5B676E6F76657273652F6D79676E6F7363616E5D2868747470733A2F2F6769746875622E636F6D2F676E6F76657273652F6D79676E6F7363616E292E204F6E6520476F2062696E6172792C207468650A66726F6E74656E6420656D6265646465642C2053514C69746520666F722074686520677261706820616E616C797369732E205468650A5B524541444D455D2868747470733A2F2F6769746875622E636F6D2F676E6F76657273652F6D79676E6F7363616E23726561646D6529207361797320686F7720746F2072756E20796F7572206F776E0A616761696E737420796F7572206F776E206E6F64652C207768696368204920776F756C64206C696B65206D6F72652070656F706C6520746F20646F2E0A0A5768617420492077616E74206D6F737420697320616E206973737565207768656E20697420646F6573206E6F7420616E7377657220796F7572207175657374696F6E2E2045766572790A6665617475726520696E2074686572652063616D652066726F6D2061207175657374696F6E204920636F756C64206E6F7420616E737765722C20616E642049206F6E6C792068617665206D696E652E0A5365636F6E64206D6F73743A2074656C6C206D65207768656E2061206E756D626572206C6F6F6B732077726F6E672E20536F6D652068617665206265656E2C20616E6420616E206578706C6F7265720A7468617420697320636F6E666964656E746C792077726F6E6720697320776F727365207468616E206E6F6E652E0A0A4920616D206E6F74206275696C64696E6720746865206578706C6F72657220666F7220676E6F2E6C616E642E205B676E6F7363616E2E696F5D2868747470733A2F2F676E6F7363616E2E696F292069730A746865206F6E6520746F2068616E64206120737472616E6765722E204920616D206275696C64696E6720746865206F6E6520492077616E74206F70656E20696E206120746162207768696C6520490A776F726B2C20616E64206974207475726E73206F7574206120666577206F746865722070656F706C652077616E7420746861742074616220746F6F2E1212089089F60A120B31313435333075676E6F741AA8010A3A0A132F746D2E5075624B6579536563703235366B3112230A210200524A3F8D2C003A89C43F45FEAF6EB8ED45B6E3A35F7BBE6B3B49FF9E2D83C81240715C56CB6EB9CEA4A95FFDC4AA21391601BD08A33252C691214BA92ED328C8E77C5800EDA0E47FA0826DD3202B2662BC0E1D822F9B11595B2F962F3DCA5CF7D81A2867317171717171717171717171717171717171717171717171717171717171717171716C75757865}{
"__typename": "MsgCall",
"caller": "g1manfred47kzduec920z88wfr64ylksmdcedlf5",
"send": "",
"pkg_path": "gno.land/r/moul/blog",
"func": "Set",
"args": [
"mygnoscan",
"sharing mygnoscan",
"2026-09-23",
"mygnoscan,tooling,explorer",
"I have been building [mygnoscan](https://mygnoscan.moul.p2p.team) since April and\nnever announced it, because it is not finished and it will not be.\n\nThen people found it, said they liked it, and asked when I would share it. So:\nhere it is. Not a product, not official. A BI tool I wrote to answer my own\nquestions about gno.land, that I add to every time it fails to answer a new one.\n\n## what I actually open it for\n\nGeneric explorers are built around blocks and transactions. Those are table\nstakes. My questions were a different shape: what is deployed, who calls it, and\nwhat changed this week.\n\nSo the front page is a window, not a ledger. Pick a range, see it against the\nrange before it, then five lists:\n\n- **hot realms**, by calls, with the caller count beside them. 3,817 calls from\n 26 addresses and 4,998 from 461 are not the same event, and one number cannot\n tell you which you are looking at.\n- **hot assets**: ugnot at 19,280 transfers from 980 senders, GNS at 6,324 from 141.\n- **hot developers**, flagged when it is their first deploy ever. Three of the\n top four this week are first-timers.\n- **hot libraries**, ranked by *new* importers rather than total. `p/nt/ufmt`\n took 23 new importers this week against 113 all time.\n- **notable transfers.**\n\nUnder that: realm source, imports, dependents, callers, the `MsgRun` scripts\nthat use a realm without importing it, a dependency graph, and screenshots of\nwhat each realm actually looks like.\n\n## two things the indexer taught me\n\nHalf of this is a frontend. The other half is learning how the\n[tx-indexer](https://github.com/gnolang/tx-indexer) actually behaves, which is\nwhere the interesting bugs live.\n\n**There is no pagination.** `getTransactions` takes `where` and `order`, and\nnothing else. The server caps a result set at 10,000 elements, and on reaching\nit the resolver stops and returns the rows it has *alongside* a GraphQL error.\nSo a capped response is partial, not empty, and the only way to walk a larger\nset is the block height filter:\n\n```graphql\ngetTransactions(where: {\n block_height: { gt: 250000, lte: 260000 }\n}) { hash block_height }\n```\n\nRead that wrong and you show a truncated history as if it were complete.\n\n**One unknown type kills every query.** Message types are selected inside one\nshared fragment set:\n\n```graphql\nmessages { value { __typename\n ... on MsgCall { caller pkg_path func args }\n ... on MsgAddPackage { creator package { name path } }\n ... on MsgEnablePackage { approver pkg_path }\n} }\n```\n\nAn indexer that does not define `MsgEnablePackage` rejects **every** transaction\nquery, not just the ones that would have matched it:\n\n```\nsync packages: indexer returned 422: Unknown type \"MsgEnablePackage\"\n```\n\nThat took a whole chain's sync offline. And the types shipped separately, so\nmainnet defines `MsgEnablePackage` and not `MsgCreateSession`: probing for one\nand selecting the other fails every query while reporting support.\n\n## where I want to take it\n\nA developer section, mostly. Realm state as a readable tree instead of a blob.\nCode search across every `.gno` file on chain. A time machine, because the chain\noverwrites state and the indexer is the only thing watching. And a read-only\nendpoint so an agent can ask what I ask through the UI.\n\n## please break it\n\n[gnoverse/mygnoscan](https://github.com/gnoverse/mygnoscan). One Go binary, the\nfrontend embedded, SQLite for the graph analysis. The\n[README](https://github.com/gnoverse/mygnoscan#readme) says how to run your own\nagainst your own node, which I would like more people to do.\n\nWhat I want most is an issue when it does not answer your question. Every\nfeature in there came from a question I could not answer, and I only have mine.\nSecond most: tell me when a number looks wrong. Some have been, and an explorer\nthat is confidently wrong is worse than none.\n\nI am not building the explorer for gno.land. [gnoscan.io](https://gnoscan.io) is\nthe one to hand a stranger. I am building the one I want open in a tab while I\nwork, and it turns out a few other people want that tab too."
],
"max_deposit": ""
}