[{"data":1,"prerenderedAt":874},["Reactive",2],{"navigation":3,"/networks/monad/monitoring":87,"/networks/monad/monitoring-surround":870},[4,11],{"title":5,"_path":6,"children":7},"Learning Center","/general",[8],{"title":9,"_path":10},"Install & Use Docker","/general/docker",{"title":12,"_path":13,"children":14},"Networks","/networks",[15,17,41,68,78],{"title":16,"_path":13},"Introduction",{"title":18,"_path":19,"children":20},"Namada","/networks/namada",[21,22,25,28],{"title":16,"_path":19},{"title":23,"_path":24},"Services","/networks/namada/services",{"title":26,"_path":27},"Snapshots","/networks/namada/snapshots",{"title":29,"_path":30,"children":31},"Namada Node Guide","/networks/namada/nodes-guide",[32,35,38],{"title":33,"_path":34},"Getting Started","/networks/namada/nodes-guide/getting-started",{"title":36,"_path":37},"Fullnode & Validator","/networks/namada/nodes-guide/node",{"title":39,"_path":40},"Monitoring","/networks/namada/nodes-guide/monitoring",{"title":42,"_path":43,"children":44},"0G - Zero Gravity","/networks/zero-gravity",[45,46,48],{"title":16,"_path":43},{"title":23,"_path":47},"/networks/zero-gravity/services",{"title":49,"_path":50,"children":51},"0G Nodes Guide","/networks/zero-gravity/nodes-guide",[52,54,56,59,62,65],{"title":33,"_path":53},"/networks/zero-gravity/nodes-guide/getting-started",{"title":36,"_path":55},"/networks/zero-gravity/nodes-guide/node",{"title":57,"_path":58},"Storage Node - ZeroGravity","/networks/zero-gravity/nodes-guide/storage",{"title":60,"_path":61},"KV Node - ZeroGravity","/networks/zero-gravity/nodes-guide/kv",{"title":63,"_path":64},"DA Client - ZeroGravity","/networks/zero-gravity/nodes-guide/da-client",{"title":66,"_path":67},"DA Node - ZeroGravity","/networks/zero-gravity/nodes-guide/da-node",{"title":69,"_path":70,"children":71},"Initia","/networks/initia",[72,73,75],{"title":16,"_path":70},{"title":23,"_path":74},"/networks/initia/services",{"title":76,"_path":77},"Node Guide","/networks/initia/guide",{"title":79,"_path":80,"children":81},"Monad","/networks/monad",[82,83,85],{"title":16,"_path":80},{"title":26,"_path":84},"/networks/monad/snapshots",{"title":39,"_path":86},"/networks/monad/monitoring",{"_path":86,"_dir":88,"_draft":89,"_partial":89,"_locale":90,"title":39,"description":91,"body":92,"_type":865,"_id":866,"_source":867,"_file":868,"_extension":869},"monad",false,"","Monitoring your Monad validator with monprobe, EmberStake's on-node Telegram bot",{"type":93,"children":94,"toc":856},"root",[95,103,126,139,179,186,188,271,276,282,287,288,372,384,390,417,423,428,499,504,623,644,699,713,719,724,838,850],{"type":96,"tag":97,"props":98,"children":100},"element","h2",{"id":99},"monprobe",[101],{"type":102,"value":99},"text",{"type":96,"tag":104,"props":105,"children":106},"p",{},[107,115,117,124],{"type":96,"tag":108,"props":109,"children":113},"a",{"href":110,"rel":111},"https://github.com/EmberStake/monprobe",[112],"nofollow",[114],{"type":102,"value":99},{"type":102,"value":116}," is a lightweight Telegram bot we built for\nMonad validators. Send ",{"type":96,"tag":118,"props":119,"children":121},"code",{"className":120},[],[122],{"type":102,"value":123},"/status",{"type":102,"value":125}," from your phone and get a one-screen answer about your node.",{"type":96,"tag":104,"props":127,"children":128},{},[129,131,137],{"type":102,"value":130},"It is deliberately ",{"type":96,"tag":132,"props":133,"children":134},"strong",{},[135],{"type":102,"value":136},"not",{"type":102,"value":138}," a remote alerting service. It runs on the node itself, reads only that\nnode, and nothing leaves the machine except the Telegram messages to you. Think of it as a pocket\nglance: check from your phone, and if something looks wrong, go to your laptop and dig in. It does\ninclude a minimal watchdog, but that watchdog lives on the node too — if the server dies, the bot\ndies with it. If you need external, always-on alerting, monprobe complements that rather than\nreplacing it.",{"type":96,"tag":140,"props":141,"children":142},"ul",{},[143,154,169],{"type":96,"tag":144,"props":145,"children":146},"li",{},[147,152],{"type":96,"tag":132,"props":148,"children":149},{},[150],{"type":102,"value":151},"On-node and private",{"type":102,"value":153}," — no dashboard, no third-party service seeing your validator",{"type":96,"tag":144,"props":155,"children":156},{},[157,162,164],{"type":96,"tag":132,"props":158,"children":159},{},[160],{"type":102,"value":161},"Lightweight",{"type":102,"value":163}," — one static Go binary, one systemd unit, ",{"type":96,"tag":132,"props":165,"children":166},{},[167],{"type":102,"value":168},"zero listening ports",{"type":96,"tag":144,"props":170,"children":171},{},[172,177],{"type":96,"tag":132,"props":173,"children":174},{},[175],{"type":102,"value":176},"Read-only",{"type":102,"value":178}," — the bot can report, never act",{"type":96,"tag":180,"props":181,"children":183},"h3",{"id":182},"what-it-shows",[184],{"type":102,"value":185},"What it shows",{"type":102,"value":187},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":96,"tag":189,"props":190,"children":191},"table",{},[192,211],{"type":96,"tag":193,"props":194,"children":195},"thead",{},[196],{"type":96,"tag":197,"props":198,"children":199},"tr",{},[200,206],{"type":96,"tag":201,"props":202,"children":203},"th",{},[204],{"type":102,"value":205},"Command",{"type":96,"tag":201,"props":207,"children":208},{},[209],{"type":102,"value":210},"Shows",{"type":96,"tag":212,"props":213,"children":214},"tbody",{},[215,232,245,258],{"type":96,"tag":197,"props":216,"children":217},{},[218,227],{"type":96,"tag":219,"props":220,"children":221},"td",{},[222],{"type":96,"tag":118,"props":223,"children":225},{"className":224},[],[226],{"type":102,"value":123},{"type":96,"tag":219,"props":228,"children":229},{},[230],{"type":102,"value":231},"The glance card: sync status, height and lag vs external RPC, epoch/round, peers, 24h own blocks, throughput, raptorcast p99, txpool, service states, identity",{"type":96,"tag":197,"props":233,"children":234},{},[235,240],{"type":96,"tag":219,"props":236,"children":237},{},[238],{"type":102,"value":239},"🔄 Refresh",{"type":96,"tag":219,"props":241,"children":242},{},[243],{"type":102,"value":244},"Re-scrape and redraw the card in place",{"type":96,"tag":197,"props":246,"children":247},{},[248,253],{"type":96,"tag":219,"props":249,"children":250},{},[251],{"type":102,"value":252},"📡 Live",{"type":96,"tag":219,"props":254,"children":255},{},[256],{"type":102,"value":257},"Recent own block events from the ledger tail",{"type":96,"tag":197,"props":259,"children":260},{},[261,266],{"type":96,"tag":219,"props":262,"children":263},{},[264],{"type":102,"value":265},"🏦 Staking",{"type":96,"tag":219,"props":267,"children":268},{},[269],{"type":102,"value":270},"Stake, active-set standing, reliability over 24h/7d/30d, payouts, registration status",{"type":96,"tag":104,"props":272,"children":273},{},[274],{"type":102,"value":275},"The watchdog messages you only when something is actually wrong — height frozen past a threshold,\nmetrics endpoint unreachable, a core service down, or a burst of missed leader slots — once per\ncondition, with a recovery message when it clears and a cooldown so it cannot spam you. Alerts\ncarry the validator name from the config, so one Telegram chat can serve several nodes.",{"type":96,"tag":180,"props":277,"children":279},{"id":278},"where-the-data-comes-from",[280],{"type":102,"value":281},"Where the data comes from",{"type":96,"tag":104,"props":283,"children":284},{},[285],{"type":102,"value":286},"Everything is read locally from your own node. There is no external dependency:",{"type":102,"value":187},{"type":96,"tag":189,"props":289,"children":290},{},[291,307],{"type":96,"tag":193,"props":292,"children":293},{},[294],{"type":96,"tag":197,"props":295,"children":296},{},[297,302],{"type":96,"tag":201,"props":298,"children":299},{},[300],{"type":102,"value":301},"Source",{"type":96,"tag":201,"props":303,"children":304},{},[305],{"type":102,"value":306},"Provides",{"type":96,"tag":212,"props":308,"children":309},{},[310,323,342,359],{"type":96,"tag":197,"props":311,"children":312},{},[313,318],{"type":96,"tag":219,"props":314,"children":315},{},[316],{"type":102,"value":317},"Node metrics endpoint",{"type":96,"tag":219,"props":319,"children":320},{},[321],{"type":102,"value":322},"Height, commits, peers, proposals, statesync, consensus events, raptorcast p99, txpool",{"type":96,"tag":197,"props":324,"children":325},{},[326,337],{"type":96,"tag":219,"props":327,"children":328},{},[329,335],{"type":96,"tag":118,"props":330,"children":332},{"className":331},[],[333],{"type":102,"value":334},"monad-ledger-tail",{"type":102,"value":336}," journal",{"type":96,"tag":219,"props":338,"children":339},{},[340],{"type":102,"value":341},"Your own proposed / finalized / timeout blocks, filtered by your secp key",{"type":96,"tag":197,"props":343,"children":344},{},[345,354],{"type":96,"tag":219,"props":346,"children":347},{},[348],{"type":96,"tag":118,"props":349,"children":351},{"className":350},[],[352],{"type":102,"value":353},"monad-status",{"type":96,"tag":219,"props":355,"children":356},{},[357],{"type":102,"value":358},"Service states, epoch/round, statesync, block lag vs external RPC",{"type":96,"tag":197,"props":360,"children":361},{},[362,367],{"type":96,"tag":219,"props":363,"children":364},{},[365],{"type":102,"value":366},"Local RPC, staking precompile",{"type":96,"tag":219,"props":368,"children":369},{},[370],{"type":102,"value":371},"Validator ID, stake, commission, active-set membership, unclaimed rewards",{"type":96,"tag":104,"props":373,"children":374},{},[375,377,382],{"type":102,"value":376},"Notably the staking figures are read from the staking precompile ",{"type":96,"tag":132,"props":378,"children":379},{},[380],{"type":102,"value":381},"through your own node's RPC",{"type":102,"value":383},",\nnever an external endpoint.",{"type":96,"tag":180,"props":385,"children":387},{"id":386},"requirements",[388],{"type":102,"value":389},"Requirements",{"type":96,"tag":104,"props":391,"children":392},{},[393,395,400,402,408,410,415],{"type":102,"value":394},"A binary-mode Monad node — systemd services, not Docker — with ",{"type":96,"tag":118,"props":396,"children":398},{"className":397},[],[399],{"type":102,"value":353},{"type":102,"value":401}," at\n",{"type":96,"tag":118,"props":403,"children":405},{"className":404},[],[406],{"type":102,"value":407},"/usr/local/bin/monad-status",{"type":102,"value":409}," and the ",{"type":96,"tag":118,"props":411,"children":413},{"className":412},[],[414],{"type":102,"value":334},{"type":102,"value":416}," service running.",{"type":96,"tag":180,"props":418,"children":420},{"id":419},"install",[421],{"type":102,"value":422},"Install",{"type":96,"tag":104,"props":424,"children":425},{},[426],{"type":102,"value":427},"The installer downloads the prebuilt static binary from the latest release (sha256 verified),\nchecks the node preconditions, then asks for your Telegram bot token and chat ID, validator name\nand secp public key:",{"type":96,"tag":429,"props":430,"children":434},"pre",{"className":431,"code":432,"language":433,"meta":90,"style":90},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -fsSL https://raw.githubusercontent.com/EmberStake/monprobe/main/scripts/install-remote.sh -o monprobe-install.sh\n\nsudo bash monprobe-install.sh\n","bash",[435],{"type":96,"tag":118,"props":436,"children":437},{"__ignoreMap":90},[438,471,481],{"type":96,"tag":439,"props":440,"children":443},"span",{"class":441,"line":442},"line",1,[444,450,456,461,466],{"type":96,"tag":439,"props":445,"children":447},{"style":446},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[448],{"type":102,"value":449},"curl",{"type":96,"tag":439,"props":451,"children":453},{"style":452},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[454],{"type":102,"value":455}," -fsSL",{"type":96,"tag":439,"props":457,"children":458},{"style":452},[459],{"type":102,"value":460}," https://raw.githubusercontent.com/EmberStake/monprobe/main/scripts/install-remote.sh",{"type":96,"tag":439,"props":462,"children":463},{"style":452},[464],{"type":102,"value":465}," -o",{"type":96,"tag":439,"props":467,"children":468},{"style":452},[469],{"type":102,"value":470}," monprobe-install.sh\n",{"type":96,"tag":439,"props":472,"children":474},{"class":441,"line":473},2,[475],{"type":96,"tag":439,"props":476,"children":478},{"emptyLinePlaceholder":477},true,[479],{"type":102,"value":480},"\n",{"type":96,"tag":439,"props":482,"children":484},{"class":441,"line":483},3,[485,490,495],{"type":96,"tag":439,"props":486,"children":487},{"style":446},[488],{"type":102,"value":489},"sudo",{"type":96,"tag":439,"props":491,"children":492},{"style":452},[493],{"type":102,"value":494}," bash",{"type":96,"tag":439,"props":496,"children":497},{"style":452},[498],{"type":102,"value":470},{"type":96,"tag":104,"props":500,"children":501},{},[502],{"type":102,"value":503},"Download the script to a file first as shown — the interactive prompts do not work when piped\nstraight into a shell. For unattended installs (Ansible and similar), pass the same values as\nenvironment variables instead:",{"type":96,"tag":429,"props":505,"children":507},{"className":431,"code":506,"language":433,"meta":90,"style":90},"sudo env MONPROBE_TG_TOKEN=\"123:ABC\" MONPROBE_TG_CHAT_ID=123456789 \\\n  MONPROBE_VALIDATOR_NAME=\"my-validator\" \\\n  MONPROBE_SECP_KEY=\"03...\" \\\n  bash monprobe-install.sh\n",[508],{"type":96,"tag":118,"props":509,"children":510},{"__ignoreMap":90},[511,560,585,610],{"type":96,"tag":439,"props":512,"children":513},{"class":441,"line":442},[514,518,523,528,534,539,543,548,554],{"type":96,"tag":439,"props":515,"children":516},{"style":446},[517],{"type":102,"value":489},{"type":96,"tag":439,"props":519,"children":520},{"style":452},[521],{"type":102,"value":522}," env",{"type":96,"tag":439,"props":524,"children":525},{"style":452},[526],{"type":102,"value":527}," MONPROBE_TG_TOKEN=",{"type":96,"tag":439,"props":529,"children":531},{"style":530},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[532],{"type":102,"value":533},"\"",{"type":96,"tag":439,"props":535,"children":536},{"style":452},[537],{"type":102,"value":538},"123:ABC",{"type":96,"tag":439,"props":540,"children":541},{"style":530},[542],{"type":102,"value":533},{"type":96,"tag":439,"props":544,"children":545},{"style":452},[546],{"type":102,"value":547}," MONPROBE_TG_CHAT_ID=",{"type":96,"tag":439,"props":549,"children":551},{"style":550},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[552],{"type":102,"value":553},"123456789",{"type":96,"tag":439,"props":555,"children":557},{"style":556},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[558],{"type":102,"value":559}," \\\n",{"type":96,"tag":439,"props":561,"children":562},{"class":441,"line":473},[563,568,572,577,581],{"type":96,"tag":439,"props":564,"children":565},{"style":452},[566],{"type":102,"value":567},"  MONPROBE_VALIDATOR_NAME=",{"type":96,"tag":439,"props":569,"children":570},{"style":530},[571],{"type":102,"value":533},{"type":96,"tag":439,"props":573,"children":574},{"style":452},[575],{"type":102,"value":576},"my-validator",{"type":96,"tag":439,"props":578,"children":579},{"style":530},[580],{"type":102,"value":533},{"type":96,"tag":439,"props":582,"children":583},{"style":556},[584],{"type":102,"value":559},{"type":96,"tag":439,"props":586,"children":587},{"class":441,"line":483},[588,593,597,602,606],{"type":96,"tag":439,"props":589,"children":590},{"style":452},[591],{"type":102,"value":592},"  MONPROBE_SECP_KEY=",{"type":96,"tag":439,"props":594,"children":595},{"style":530},[596],{"type":102,"value":533},{"type":96,"tag":439,"props":598,"children":599},{"style":452},[600],{"type":102,"value":601},"03...",{"type":96,"tag":439,"props":603,"children":604},{"style":530},[605],{"type":102,"value":533},{"type":96,"tag":439,"props":607,"children":608},{"style":556},[609],{"type":102,"value":559},{"type":96,"tag":439,"props":611,"children":613},{"class":441,"line":612},4,[614,619],{"type":96,"tag":439,"props":615,"children":616},{"style":452},[617],{"type":102,"value":618},"  bash",{"type":96,"tag":439,"props":620,"children":621},{"style":452},[622],{"type":102,"value":470},{"type":96,"tag":104,"props":624,"children":625},{},[626,628,635,637,642],{"type":102,"value":627},"You will need a bot token from ",{"type":96,"tag":108,"props":629,"children":632},{"href":630,"rel":631},"https://t.me/BotFather",[112],[633],{"type":102,"value":634},"@BotFather",{"type":102,"value":636}," and your Telegram chat ID.\nOnce the service is running, send ",{"type":96,"tag":118,"props":638,"children":640},{"className":639},[],[641],{"type":102,"value":123},{"type":102,"value":643}," — if the card shows the Identity section, everything\nis wired up correctly.",{"type":96,"tag":429,"props":645,"children":647},{"className":431,"code":646,"language":433,"meta":90,"style":90},"systemctl status monprobe\n\njournalctl -u monprobe -f\n",[648],{"type":96,"tag":118,"props":649,"children":650},{"__ignoreMap":90},[651,669,676],{"type":96,"tag":439,"props":652,"children":653},{"class":441,"line":442},[654,659,664],{"type":96,"tag":439,"props":655,"children":656},{"style":446},[657],{"type":102,"value":658},"systemctl",{"type":96,"tag":439,"props":660,"children":661},{"style":452},[662],{"type":102,"value":663}," status",{"type":96,"tag":439,"props":665,"children":666},{"style":452},[667],{"type":102,"value":668}," monprobe\n",{"type":96,"tag":439,"props":670,"children":671},{"class":441,"line":473},[672],{"type":96,"tag":439,"props":673,"children":674},{"emptyLinePlaceholder":477},[675],{"type":102,"value":480},{"type":96,"tag":439,"props":677,"children":678},{"class":441,"line":483},[679,684,689,694],{"type":96,"tag":439,"props":680,"children":681},{"style":446},[682],{"type":102,"value":683},"journalctl",{"type":96,"tag":439,"props":685,"children":686},{"style":452},[687],{"type":102,"value":688}," -u",{"type":96,"tag":439,"props":690,"children":691},{"style":452},[692],{"type":102,"value":693}," monprobe",{"type":96,"tag":439,"props":695,"children":696},{"style":452},[697],{"type":102,"value":698}," -f\n",{"type":96,"tag":104,"props":700,"children":701},{},[702,704,711],{"type":102,"value":703},"Building from source and the full configuration reference are covered in the\n",{"type":96,"tag":108,"props":705,"children":708},{"href":706,"rel":707},"https://github.com/EmberStake/monprobe#readme",[112],[709],{"type":102,"value":710},"repository README",{"type":102,"value":712},".",{"type":96,"tag":180,"props":714,"children":716},{"id":715},"security-model",[717],{"type":102,"value":718},"Security model",{"type":96,"tag":104,"props":720,"children":721},{},[722],{"type":102,"value":723},"monprobe is built to open zero holes in your validator:",{"type":96,"tag":140,"props":725,"children":726},{},[727,737,747,778,802,812],{"type":96,"tag":144,"props":728,"children":729},{},[730,735],{"type":96,"tag":132,"props":731,"children":732},{},[733],{"type":102,"value":734},"No inbound ports.",{"type":102,"value":736}," It uses Telegram long polling, which is outbound-only. A port scan of your\nvalidator looks identical before and after installing it.",{"type":96,"tag":144,"props":738,"children":739},{},[740,745],{"type":96,"tag":132,"props":741,"children":742},{},[743],{"type":102,"value":744},"No shell, no injection surface.",{"type":102,"value":746}," Messages are matched against a fixed dispatch table; user\ninput never becomes part of a command, path or URL.",{"type":96,"tag":144,"props":748,"children":749},{},[750,755,757,762,764,769,771,776],{"type":96,"tag":132,"props":751,"children":752},{},[753],{"type":102,"value":754},"Least privilege.",{"type":102,"value":756}," Runs as a dedicated ",{"type":96,"tag":118,"props":758,"children":760},{"className":759},[],[761],{"type":102,"value":99},{"type":102,"value":763}," user that is ",{"type":96,"tag":765,"props":766,"children":767},"em",{},[768],{"type":102,"value":136},{"type":102,"value":770}," in the ",{"type":96,"tag":118,"props":772,"children":774},{"className":773},[],[775],{"type":102,"value":88},{"type":102,"value":777}," group — it\ncannot read your validator keys even if compromised.",{"type":96,"tag":144,"props":779,"children":780},{},[781,786,788,793,795,800],{"type":96,"tag":132,"props":782,"children":783},{},[784],{"type":102,"value":785},"One narrow sudo rule",{"type":102,"value":787},", permitting exactly one argument-less command (",{"type":96,"tag":118,"props":789,"children":791},{"className":790},[],[792],{"type":102,"value":353},{"type":102,"value":794},", which\nprints public identifiers only). The installer verifies that binary cannot be modified by the\n",{"type":96,"tag":118,"props":796,"children":798},{"className":797},[],[799],{"type":102,"value":88},{"type":102,"value":801}," user and refuses to install otherwise.",{"type":96,"tag":144,"props":803,"children":804},{},[805,810],{"type":96,"tag":132,"props":806,"children":807},{},[808],{"type":102,"value":809},"Allowlist.",{"type":102,"value":811}," Only the chat IDs you list get any response; unknown senders get silence.",{"type":96,"tag":144,"props":813,"children":814},{},[815,820,822,828,830,836],{"type":96,"tag":132,"props":816,"children":817},{},[818],{"type":102,"value":819},"Sandboxed systemd unit",{"type":102,"value":821}," with a read-only filesystem view, private ",{"type":96,"tag":118,"props":823,"children":825},{"className":824},[],[826],{"type":102,"value":827},"/tmp",{"type":102,"value":829},", no device access and\na minimal capability set. The config file holding your bot token is ",{"type":96,"tag":118,"props":831,"children":833},{"className":832},[],[834],{"type":102,"value":835},"0600",{"type":102,"value":837},", and the token is\nredacted from all log output.",{"type":96,"tag":104,"props":839,"children":840},{},[841,843,849],{"type":102,"value":842},"monprobe is MIT licensed. Issues and pull requests are welcome on\n",{"type":96,"tag":108,"props":844,"children":846},{"href":110,"rel":845},[112],[847],{"type":102,"value":848},"GitHub",{"type":102,"value":712},{"type":96,"tag":851,"props":852,"children":853},"style",{},[854],{"type":102,"value":855},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":90,"searchDepth":473,"depth":473,"links":857},[858],{"id":99,"depth":473,"text":99,"children":859},[860,861,862,863,864],{"id":182,"depth":483,"text":185},{"id":278,"depth":483,"text":281},{"id":386,"depth":483,"text":389},{"id":419,"depth":483,"text":422},{"id":715,"depth":483,"text":718},"markdown","content:1.networks:4.monad:3.monitoring.md","content","1.networks/4.monad/3.monitoring.md","md",[871,873],{"_path":84,"title":26,"description":872},"Snapshots provided by EmberStake for Monad",null,1788138378375]