{
  "surface": "XPlorer SourceLess",
  "readOnly": true,
  "methods": [
    "GET",
    "HEAD"
  ],
  "provenance": {
    "mode": "following",
    "seedCount": 7,
    "genesisHashHex": "1cf8655125cc1bbbc0ca06a491f53775499785c349b4d0f5748d5ea170e517bf",
    "validatorSetSource": "genesis",
    "displacedAStaleLock": false,
    "progress": {
      "height": "23712",
      "target": {
        "status": "known",
        "value": "23712"
      },
      "behind": {
        "status": "known",
        "value": "0"
      },
      "caughtUp": {
        "status": "known",
        "value": true
      },
      "peers": 9,
      "knownPeers": 77,
      "syncApplied": 837,
      "followed": 1008,
      "stuck": false,
      "observedAtMs": 1793990462155
    }
  },
  "maxPageSize": 100,
  "note": "Every amount, height and nonce is a decimal string rather than a JSON number, because a bigint past 2^53 loses precision as a number and a balance that is wrong in its last digits is worse than one that is obviously a string.",
  "routes": [
    {
      "path": "/",
      "description": "chain head, ledger index, latest blocks and transactions"
    },
    {
      "path": "/search?q=",
      "description": "resolves a height, a block hash, a transaction id, an address, a domain, a wNFT id or a proposal id"
    },
    {
      "path": "/blocks",
      "description": "blocks, newest first"
    },
    {
      "path": "/block/{height|hash}",
      "description": "one block and all 20 kinds of record it carries: transactions, domain allocations, domain registrations, contract records, bridge collateral, governance, identity (wnft), domain burns, domains given up, lapsed domains burned, domain sales, wstr wraps, spending delegations, hostless spaces (oort), str.talk (occultation), validator bonds (fenrir), account key rotations (hamskipti), anonymous attestations (zk13), bridge vetoes (vitni), attestor suspensions (fjotur)"
    },
    {
      "path": "/block/{height|hash}/{kind}",
      "description": "one kind of record from one block, paged on its own; transactions are paged on the block page, and /block/{height|hash}/transactions redirects there"
    },
    {
      "path": "/txs",
      "description": "sealed transactions, newest first"
    },
    {
      "path": "/pending",
      "description": "the mempool: transactions no block carries yet"
    },
    {
      "path": "/tx/{id}",
      "description": "one transaction, sealed or pending"
    },
    {
      "path": "/address/{address}",
      "description": "balances across all seven ledgers, domain standing, nonce and history"
    },
    {
      "path": "/contracts",
      "description": "deployed contracts"
    },
    {
      "path": "/contracts/templates",
      "description": "the Daedalus template catalogue: drafts a deployer starts from, not deployed contracts. Each with its bytecode digest under the compiler in force, whether it matches the published vector, and its measured gas"
    },
    {
      "path": "/contracts/templates/zk13-token/configure?name=&symbol=&owner=&cap=",
      "description": "the token wizard: a GET form that turns a token name, a ticker, an owner wallet, a supply and a feature set into ready-to-deploy ZK13 source, its manifest and the exact commands to reproduce, dry-run and deploy it. It generates; it never deploys"
    },
    {
      "path": "/contracts/templates/{name}?deployer=&salt=",
      "description": "one template: source, ABI, bytecode digest, measured gas, the constants to edit, the commands to deploy it, and — for a deployer and salt you name — the address a deployment would land at. Read from the build; it asks the chain nothing"
    },
    {
      "path": "/contract/{address}",
      "description": "code, ABI, storage, events, calls, and verification by construction"
    },
    {
      "path": "/contract/{address}/read?fn=&arg=",
      "description": "calls one of the contract's view functions and shows what it answered. A read: it commits nothing and reaches no node"
    },
    {
      "path": "/identity",
      "description": "STR.domains and wNFTs"
    },
    {
      "path": "/domain/{domain}",
      "description": "one STR.domain, its wNFT, its slaves, and the burn record if the name has ever been burned"
    },
    {
      "path": "/wnft/{id}",
      "description": "one wNFT: entries, versions, master and slave relations"
    },
    {
      "path": "/organisations",
      "description": "proved master domains that have opened departments, and how many each holds"
    },
    {
      "path": "/organisation/{domain}",
      "description": "one organisation: its departments, which may be PAID, and its delegates, which may SIGN — counted apart"
    },
    {
      "path": "/validators",
      "description": "the Einherjar roll: who may seal at the head, what each has sealed, what each has bonded under Fenrir, and every admission, eviction, suspension and restoration with the reason recorded on it"
    },
    {
      "path": "/delegations",
      "description": "every live Gefjon spending authority: who may move whose money, the cap, what is left in the current window, and the height it expires at"
    },
    {
      "path": "/supply",
      "description": "supply, circulating and locked across every value ledger, the identity ledger apart, the $TR peg and the STR/CCOS parity"
    },
    {
      "path": "/spaces",
      "description": "hostless spaces (Oort): every space counted by visibility, public ones listed. No content and no link to any: the chain holds a manifest root and nothing else"
    },
    {
      "path": "/space/{id}",
      "description": "one hostless space: owner, visibility, price, manifest root and history. Readers are listed for a public space and deliberately not assembled for a private or dedicated one"
    },
    {
      "path": "/talk",
      "description": "STR.talk (Occultation): the published inbox-key directory, and a census of threads that is counts only — no participant, sender or reader is indexed here"
    },
    {
      "path": "/talk/{domain}",
      "description": "where a sender is entitled to seal a message to one domain, as the chain holds it"
    },
    {
      "path": "/governance",
      "description": "parameters in force, pools, proposals"
    },
    {
      "path": "/proposal/{id}",
      "description": "one proposal, its ballots and its timelock"
    },
    {
      "path": "/bridge",
      "description": "reserves, mints, redemptions and whether the peg reconciles"
    },
    {
      "path": "/network",
      "description": "height, finality line, validators, supply per ledger, state roots"
    },
    {
      "path": "/nodes",
      "description": "how many seats the network has and how much of it is signing, what each STARW class may be, how Praeco finds them, every node this process knows of through Praeco — counted exactly (known, declaring they validate, followers, in session, quarantined), each with its role named for its evidence (a seat only where its own network address is on the roll; otherwise what the node declares, since a network identity is not a seat key and the seat count is unknown with that reason), in a page of at most 500 rows — and, labelled apart as a local view, the peers in session with this process. Identities only: no peer address, port, rendezvous point or seed is published"
    },
    {
      "path": "/praeco",
      "description": "the Praeco directory on a page of its own: every node this explorer has heard of, counted by every STARW class, every role and every capability — a type nobody runs is listed at zero — and an arrivals feed of the newest 100, newest first by when THIS explorer’s directory first admitted the node’s signed record, with its class, role, capabilities, when it was last refreshed and whether it is in session. First heard is an observation since this process began listening, never a registration on the chain: a restart makes every node new, the directory is capped by class and evicts when full, and a record is forgotten when it expires. The seats the chain admitted are on /validators. Kept live by /praeco.js while the tab is visible; whole without it. Identities only: no peer address, port, rendezvous point or seed is published"
    },
    {
      "path": "/api/praeco",
      "description": "the /praeco view as JSON, and the route its page polls: the counts by class, role and capability, at most 100 arrivals, the directory capacity and whether it is full, when this explorer began listening, and the moment the directory was walked. One walk serves every caller for 5 s, so polling it costs the node at most one walk per window however many tabs ask, and the answer has a fixed maximum size"
    },
    {
      "path": "/consensus",
      "description": "the Tyr roll, whose slot it is, which seats have actually sealed, attestations and the finality line"
    },
    {
      "path": "/throughput",
      "description": "how fast this chain has actually gone: the observed gap between blocks against the nominal slot, transactions per block and per second, blocks that carried nothing, and what a block weighs against the block ceiling — every figure counted over a named window of blocks this node holds, and no peak or projected figure anywhere"
    },
    {
      "path": "/statistics",
      "description": "activity day by day over a rolling window of UTC days anchored on the newest block this node holds: transactions, records, active and new addresses per day, the distribution of gaps between blocks, an hour-of-day map of when the chain was quiet, the seats that sealed the most, and the supply split at the head. Read from a fixed-size model, with the window and every ceiling stated"
    },
    {
      "path": "/compliance",
      "description": "a disclosure aid for institutions and MiCA-style reporting, read from chain state: per native ledger the supply, cap, circulating and locked split, the issuance rule as the token definition states it and where the supply was assigned at genesis; deployed ZK13 contract tokens by their own view functions; every genesis account with its balance and newest movements; holder concentration (top 1, 10 and 100, Gini, fewest holders over half); seats, producers seen, the finality line and the measured block interval; the published canon; and a sustainability indicator that says it is not measured. Not legal advice and not an authorisation of any kind"
    },
    {
      "path": "/api/compliance/{assets|accounts|concentration|contract-tokens}.csv",
      "description": "the tables of /compliance as CSV: amounts in minor units with the precision beside them, an unmeasured value as an empty cell and never a zero, and every text cell quoted with formula characters defused. Built from the same reading as the page"
    },
    {
      "path": "/accounts/new",
      "description": "addresses by first appearance in a sealed transaction, newest first, with the block and transaction each first appeared in. A wallet that has been created and never used is not on the chain and cannot be listed"
    },
    {
      "path": "/cryptography",
      "description": "every primitive in force, what it protects, and which are carried by this build and unused by this chain"
    },
    {
      "path": "/ledgers",
      "description": "the eleven ledgers"
    },
    {
      "path": "/ledger/{id}",
      "description": "one ledger, shown in the terms that ledger counts in"
    },
    {
      "path": "/api-docs",
      "description": "both programmable surfaces: this explorer's JSON mirror with its bounds, and the node's JSON-RPC method catalogue — each rendered from the array the running code dispatches on rather than written out beside it"
    },
    {
      "path": "/status",
      "description": "what the node serving this page has actually verified — height, the finality line, the head's age and the mempool — off the cheapest read on the surface, with the caveat that one node's reading is not the network's. No uptime figure, because a node cannot measure one"
    },
    {
      "path": "/about",
      "description": "what this chain is made of and who holds the rights to it. The operating entity is not named anywhere in this software and is marked as a gap rather than guessed"
    },
    {
      "path": "/brand-assets",
      "description": "the marks and typefaces this node serves, with the byte length and digest of each measured from the bytes themselves, and how the lockup may be set"
    },
    {
      "path": "/contact",
      "description": "the one address published in this software, and the ones that are not set"
    },
    {
      "path": "/terms",
      "description": "what this surface does with a visitor, measured from the policy it sends and the one value it stores. It publishes no terms of service: the drafted documents are blocked on 27 items only the owner can supply"
    },
    {
      "path": "/bug-bounty",
      "description": "where to report a security finding, and what is in scope. No funded programme exists and the page promises no reward"
    },
    {
      "path": "/knowledge-base",
      "description": "the questions this chain gets asked, answered by the pages that measure themselves, plus how to read an unknown, a finality line and a bounded page"
    },
    {
      "path": "/what-is-a-block-explorer",
      "description": "what an explorer is, the four questions it answers, the five things it cannot do, and how to tell an honest one from a confident one"
    },
    {
      "path": "/advertise",
      "description": "none is offered or carried. Why this surface’s content security policy refuses a third-party ad tag outright, and what a first-party placement could honestly be"
    },
    {
      "path": "/eaas",
      "description": "the four ways this explorer can be pointed at a chain without a key and without stopping a node. The software is in the build; a hosted service is not"
    },
    {
      "path": "/multichain-api",
      "description": "one interface served identically by every chain built from this software, and the plain statement that no hosted endpoint answers for several chains at once"
    },
    {
      "path": "/priority-support",
      "description": "what a node operator can actually use today. No support contract exists and no response time is promised"
    },
    {
      "path": "/sourcescan",
      "description": "a cross-chain identity and analytics product the owner has described and this software does not contain. Marked not built, on the page and in this field"
    },
    {
      "path": "/ecosystem",
      "description": "a signpost to the other SourceLess products — identity, wallet, messaging, AI and platform — each a jump to its own origin. It carries no chain data and verifies no product’s state"
    },
    {
      "path": "/hex",
      "description": "buy STR with ETH or BNB: the live STR price in USD (a time-weighted average, never the spot price), the sale's limits read from the contract, a review step that prints the whole payout address, and a delivery tracker. The payment is signed in the reader's own wallet; this surface signs nothing"
    },
    {
      "path": "/hex/name",
      "description": "register a name with ETH or BNB: personal or business, its USD price with the launch countdown, the STR the payment buys and the part of it the chain locks when the buyer claims the name with their own key"
    },
    {
      "path": "/hex/token",
      "description": "create a token: what the ZK13 token wizard does and a link into it, with the owner filled in when a wallet hands over its address, and the three honest steps to deploy: a proved STR.domain, a dry run, then strblk wallet deploy against a producing seat with your own key. The browser never deploys"
    },
    {
      "path": "/hex/business",
      "description": "the HEX business catalogue: a free token, the Business Suite and a large fork, with prices that are indicative and set by the owner, what a fork does not get, and the address to request an order. Informational only: no form, no payment, and nothing a reader does here is collected"
    },
    {
      "path": "/hex/fork",
      "description": "business forks (Vanaheim): whether to fork or tokenise, the four stages from a rehearsal to a chain on delivered seats, a rehearsal command builder that runs in the tab and sends nothing, the one measured run and what it was measured on, what a fork does not get, what the genesis fixes, and how to order one"
    },
    {
      "path": "/buy",
      "description": "the sale’s address before it was named HEX: a permanent redirect (308) to /hex that keeps the query, so a link a wallet made earlier opens the same page with the same fields filled"
    },
    {
      "path": "/buy/name",
      "description": "the name sale’s address before it was named HEX: a permanent redirect (308) to /hex/name that keeps the query, the name and the class included"
    },
    {
      "path": "/forks",
      "description": "business forks (Vanaheim): whether to fork or tokenise, the four stages from a rehearsal to a chain on production keys, what a fork runs, the one measured run and what it was measured on, what a fork does not get and what the genesis fixes for ever"
    },
    {
      "path": "/forks/rehearse",
      "description": "the rehearsal command builder: a chain name, a chain id, a seat count and a treasury become the scripts/fork.mjs command that starts that rehearsal, with its owner domain, data root and Althing bar. It runs in the tab, refuses the chain ids of the realms in the register by name, and sends nothing"
    },
    {
      "path": "/forks/contracts",
      "description": "every contract template as a draft for a fork, grouped by what a business uses it for, with what is the same on a fork (bytecode, measured gas, the address formula) and what is not (state, which never migrates)"
    },
    {
      "path": "/forks/docs",
      "description": "the operator documentation for a business fork on one page: every flag and command of scripts/fork.mjs, the endpoints, the two key paths, the governance arithmetic, what the genesis fixes, contracts on a fork, what to check before value, and every refusal an operator may meet"
    },
    {
      "path": "/forks/stack",
      "description": "what a fork runs beside its seats, each part with its status in this build and the commands to run it against a fork: the three node classes (Pulsar, Quasar, Supernova), Praeco discovery, hostless storage, smart contracts, STR.talk, the sign-in door, eSIM access (not built) and an explorer for the fork"
    },
    {
      "path": "/forks/ideas",
      "description": "ideas for forks drawn from how other chain families launch a chain of your own, each with where it comes from, what it would mean for a SourceLess fork, and what exists today: built, part built or an idea"
    },
    {
      "path": "/forks/contracts/{name}?c.<constant>=&deployer=&salt=",
      "description": "one template as a draft for a fork: a GET form that sets the constants its header marks for editing, checked against their types, compiles the result with the compiler in force and shows its digest, whether any catalogue example is left (a deployment refuses while one is), and where a deployment by the named deployer would land; then the steps to deploy it to a fork. It signs nothing and reaches no node"
    },
    {
      "path": "/forks/contracts/{name}.ares?c.<constant>=",
      "description": "the same draft as a file to download, as plain text, or a 400 naming the values that were refused"
    },
    {
      "path": "/forks/realms",
      "description": "the realm register a fork is checked against: each realm’s chain id, mode, key provenance and pinned genesis hash, whether the chain this explorer reads is one of them or a fork of its own, and the registered partners with the chain ids held for them"
    },
    {
      "path": "/forks/pending",
      "description": "the register of business fork slots, a hundred to a page (`?page=1` to `8`): every slot with the chain id held for it, its status (pending, in progress or deployed) and its partner, with a button to the registered partners"
    },
    {
      "path": "/forks/partners",
      "description": "the registered partners: each with its slot, its chain id, its status, the steps done and its genesis hash once it has one"
    },
    {
      "path": "/forks/partners/{partner}",
      "description": "one registered partner: who the fork is for, its slot and chain id, where it stands on the path to a genesis, and a rehearsal command with the held chain id"
    },
    {
      "path": "/timestamps",
      "description": "GodCypher timestamps: each earthquake of magnitude 5 or more that at least two of five observatories (USGS, EMSC, GFZ GEOFON, INGV, GeoNet) locate independently, as a timestamp of its latitude, longitude, origin time and magnitude, read against the national time labs, digested, sealed, countersigned by GodCypher against a USGS earthquake window and with its raw evidence sealed to three parties. With the atomic watch, a world view and the list, newest first. Anchoring is not live yet, so every anchor reads pending. The old /prints addresses answer 308 to these"
    },
    {
      "path": "/timestamps/godcypher",
      "description": "how a GodCypher timestamp works: the three-party envelope, the Urdarbrunn counter-validator and every outcome it reports, how the layers bound a timestamp in time, and what runs today against what is a library"
    },
    {
      "path": "/timestamps/{id}",
      "description": "one GodCypher timestamp: its timestamp line, each observatory’s own report and event id, the time-lab readings when it was made, its digest, its seal, its GodCypher countersign and sealed evidence, its anchor status and how to check it yourself"
    },
    {
      "path": "/hex/exchanges",
      "description": "STR on exchanges, when the operator names any (--hex-exchanges; a 404 otherwise): per exchange its name, pair, market id, page, integration contract if any, and the STR allocated to its liquidity with the account it is drawn from and its value in USD at this explorer’s market reference; per account its live STR from the chain and whether it covers every allocation drawn from it; and the total allocated, in STR and USD. Every USD figure is unknown with the reason until the reference has one. The cards are on /hex, without the coverage. Nothing is read from the exchanges"
    },
    {
      "path": "/api/sale/{config|price|quote|delivery}",
      "description": "the sale service, asked by this server on the reader’s behalf: the chains and contracts the sale runs on, the STR price in USD with its source and age, a signed price quote for one wallet account, and the delivery state of one payment. Every answer is re-checked field by field before it is served; when no sale service is configured the config answers 200 with open false and no chains and the other routes 503, except that with --market-rpc-bsc the price route answers an hour-averaged market reference that carries no sale price, and with --market-rpc-eth beside it Chainlink ETH/USD as well"
    },
    {
      "path": "/head",
      "description": "the handful of figures that change while a page is open — height, head, finality line, mempool depth and the last observed interval. The route the front page polls, and deliberately the cheapest answer here: no roll read, no state root, no window fold"
    },
    {
      "path": "/de/{page}",
      "description": "every page above in German, under the /de prefix: the chrome and the pages are German, and a page not yet translated says so in German above its English text. Text the chain, the node or a legal document carries stays English, marked as English. Links stay in German; the JSON mirror, the assets, the files and the private payment-proof desk are not localised and answer 404 under /de"
    },
    {
      "path": "/health",
      "description": "liveness, deliberately thin"
    }
  ]
}