Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.18.0] - 2026-09-11
Added
- Published
SWEEP_ZERO_LEG_ACTIVATION, the canonical per-chain height at which a SWEEP stops writing zero-amount legs for a held tick with nothing to move. - Published
STAKE_KEY_REUSE_ACTIVATION, the canonical per-chain height at which a retired STAKE v1 signing key becomes reusable. - The sync configuration page documents
REPLICA_GAP_ALERT_SWEEPSandREPLICA_GAP_ALERT_REPEAT_MS, the persistent replica-gap escalation tunables. - Published
TRAIN_ACTIVATION, the platform-train consensus activation map keyed by platform version and network, seeded with the 1.0.0 floor. - Published
PRICE_FEE_BATCH_LANDED_ACTIVATION, the landed-batch bound for native fee pricing, unarmed on every network. - The hub configuration page documents
ATTESTATION_FETCH_TIMEOUT(default 20000 ms) andATTESTATION_PROPOSER_SEEN_MAX. - The sync configuration page documents the outbound
SYNC_UPSTREAM_KEYcredential and the rollout order it depends on. - The encoder reference documents
FEE_ESTIMATE_SANITY_CEILINGand its per-chain defaults.
Changed
- The SDK websocket page matches the producer roster, adding the mempool, expiry, bet, attestation and xcall event types.
- The explorer API page describes the merged
hub_statuson the validators endpoint.
[0.17.0] - 2026-09-10
Added
- The node operations page explains how to stop a coin daemon or a service, the stop budget each gets, and why a
bitcoin-cli stopinside the container is undone by the restart policy. - The node, decoder and utxo-tracker configuration pages document
XCHAIN_NODE_MODULE_STOP_TIMEOUT_SECONDS_<SERVICE>andSHUTDOWN_TIMEOUT_MS. - The node configuration page documents
XCHAIN_NODE_STOP_TIMEOUT_SECONDS, the flush budget a coin node daemon gets before docker kills it on update. - The deployment guide describes the
NODE UNREACHABLEstatepsprints for a decoder or tracker whose coin node is not answering, and how it differs fromWAITING FOR NODE. - The hub mirror page documents the watermark stall detector and its two windows.
- The hub configuration page documents the three oracle catch-up backlog and retirement variables,
ORACLE_PUBLISH_SELF_CHAIN_MAX_DEPTH, and the attestation batch head-refusal retry bound. - The indexer page documents the genesis-arm replay witness harness variables.
- The deployment guide names the shared disk as the multi-chain bottleneck.
Changed
- The upgrading, validator and quickstart guides say why the one-time CLI checkout comes before any
updatefrom an older CLI: a CLI before v0.15.0 kills a coin node instead of stopping it. - The validator guide’s mainnet section notes that
install allcreates the coin node before the services that poll it. - The upgrading guide’s multi-host step 2 covers host-native sync servers: pin the checkout to the release tag, restart, and confirm health and ledger-hash parity with the origin.
- The DISPENSER effective-oracle-price rule is stated as a validity condition independent of escrow, with its activation status named, and the oracle usage fee lists the ownership dispenser among the cases owing no fee output.
- The protocol constants are armed at mainnet genesis under the 2026-09-09 ruling.
- The flag-day page is regenerated: CONTRACT_META_REQUIRED arms on testnet at 2026-09-13T00:00:00Z, and REST_PATTERN_METER gets the mainnet row it had been missing.
[0.16.0] - 2026-09-08
- Testnet activation heights sized in the canon: ATTEST_ZERO_CONF_ACTIVATION 151800 and ROLLCALL_GATES_ACTIVATION 152208.
Added
- The contract identity manifest (
meta) is documented across the protocol, developer-guide, concepts, component and AI-agent pages: the sevenCONTRACT_MANIFESTverdicts, the text grammar, thereadManifestreport fields, the fourcontracts.meta_*columns, the explorer’s contract search type, and the measured gas cost of the block. - The explorer API reference documents the two batch POST routes (
/api/balances,/api/coinpay_obligations), the explorer and node configuration pages carryEXPLORER_BATCH_RATE_LIMIT_RPM, and the SDK explorer page documentsgetBalancesBatchandgetCoinpayObligationsBatch. - The deployment guide’s bootstrap section states that a restore assumes a coin node at or past the archive’s height, documents the install-time comparison and its four outcomes (
WAITING FOR NODE, refused, unknown, ok), and the validator guide’s mainnet section gives the two orderings that avoid the wait on a slow host. - The validator operations guide marks the
full_nodefloor as a tier that is not active yet and links the explanation. - The deployment guide gains a “Memory on a multi-chain host” section (the tracker’s derived container limit, the recreate-after-adding-a-chain rule, why other services stay unlimited), cross-linked from the tracker configuration page and the node’s
XCHAIN_NODE_MODULE_MEMORY_MB_<SERVICE>variable. - The DEPLOY action page documents deferred chunked assembly: the action that completes a chunk group deploys it at its own index, an early assembler waits as
pending, and the carriers-first ordering is kept as a pre-activation note; the flag-day page showsDEPLOY_DEFERRED_ASSEMBLYarmed on testnet. - The indexer, explorer and SDK component pages document the deferred-assembly columns and status strings, the explorer’s
deployed_contract_indexandassembly_statusfields, andworkflows.resolveDeployedContract. - The decoder operations page documents the REORG_HALT marker, its health fields, the two cases a node tip below the stored tip is not treated as a reorg, and the audited
clear-reorg-haltrecovery; the node command table lists the command. components/indexer/operations.mddocuments thegetpricebatchesfederation read.- The zero-confirmation attestation flip (serve at the tip, the stage-2 widening ladder with headroom, applier fall-through, signer-based fee split) and its activation height, with conformance vectors for the widened set.
- ROLLCALL v1 with the gates list, its canonical, the gates activation height, the
rollcall_gatestable and the rules-aware attestation capability set, with the v1 canonical and wire vectors.
Fixed
- The e2e component’s published action-test-file count tracks the tree at 80.
- The attestation mirror roster is declared as a dedicated staking venue, so its seeded stakes are not read as teardown debt.
[0.15.0] - 2026-09-07
Added
- The ATTEST response-mirror activation height, its two hub overrides, the attestation batch publisher settings, the round cadence knobs and the indexer’s three hub-mirror grace windows are documented, with the
attestation_responsesmirror table. - A two-chain regtest venue can opt in to roll-call activation, and the roll-call, frozen-tip and config-oracle variables are documented for the hub and indexer.
- Flag-day gates parked on the unarmed testnet sentinel are reported.
- The v0.14.0 release train is recorded on the releases page.
- ROLLCALL, a validator liveness action published on Dogecoin, is documented: wire format, EQUIV canonical, the rules each chain judges, the accept window and its cut, and the eviction rule.
- Eight frozen ROLLCALL consensus constants are declared in
protocol/constants.js, with mainnet shipping inert atnull. XROLLCALLjoinsENGINE_TAGSwith header vectors; it is namespacing only and deliberately not a SLASH family.rollcall_canonical.jsonfreezes the canonical and wire bytes with real Ed25519 signatures, including negative cases for a wrong ledger hash, network or epoch.- The indexer configuration page states that the existing DOGE wiring becomes required a second time from
ROLLCALL_ACTIVATION, and that a BTC indexer without it defers every block. - ATTEST’s hub-mirror response path is documented: the mirror-era signed canonical, deterministic callback timing with no broadcast transaction, the v5/v6 batch format, and the escrow-split change once broadcasting stops.
Changed
- The white paper is bumped to version 1.4, dated 2026-08-31, for the announcement.
- White paper §6 reconciles its action counts with the corpus: ROLLCALL joins the non-user-submittable list and thirty-six of the 37 actions are wire-decoded.
- The white paper describes ROLLCALL in §6.6 and replaces §11.1’s governance-adjudicated non-participation claim with roll-call eviction.
- The white paper’s stale tenses are corrected: the BATCH mainnet activation is in the past, the source repositories are public, and the per-version Node failure modes defer to the docs.
- The four texts promising a non-participation slash are corrected: an absent validator is counted in
Nand nothing on-chain penalises it; where ROLLCALL is active it is evicted by deactivation, never burned. - The hub decentralization table separates on-chain slashing, which is equivocation only, from hub-local suspension, which leaves stake untouched.
- ACTION counts move to 37 named and 36 wire-decoded across the docs; user-submittable stays 31.
- The ANCHOR version set restarts at v0 (checkpoint bundle), v1 (archive head, publisher attestation always appended) and v2 (continuation), gated by a new per-network
ANCHOR_ACTIVATIONheight below which any version is invalid; the checkpoint bundle carries one anchor per network per cycle with every chain as its own section, and the pre-restart version numbers are retired. - The anchor publish reward is now one
anchor_bundlerow per bundle instead of oneanchor_<chain>row per chain, across the COLLECT, hub and indexer reference pages. getanchorstatusdocumentsanchorsPublishedas a count of bundles, and adds thesectionsAnchoredandbundlesOversizefields.- The
anchor_actionstable is documented as keyed on(action_index, section_index), one row per bundle section. - The frozen ANCHOR canonical vectors carry the restarted v0 case, and the pre-restart version cases are dropped.
- The light-client guide documents
parseAnchorV0andanchorBundleSectionin place ofparseAnchorV3, and explains that a bundle omitting a chain is normal. - The hub configuration reference documents the anchor startup flush, the confirmed-inputs rule and the two confirmation-watchdog settings.
- The explorer REST endpoint counts in the component map are re-derived after the token holders route was added to both namespaces.
- The ATTEST v3 rules document the relay-identity exactly-once gate the reference indexer enforces.
- The utxo-tracker configuration reference documents the derived bulk-sync RAM budget alongside the other memory-budget figures.
- The decoder configuration reference documents the mempool response cache duration.
- The sync configuration reference documents the replication-connection setting for multi-source replicas, and names the MariaDB privilege that replica-status reads actually require.
- The open-mint terms now carry a 1,000 XCHAIN per-address cap in the white paper, overview and genesis runbook, enforced by the distribution-figures test.
- The regtest guide now documents creating XCHAIN and minting gas on a fresh chain, replacing the incorrect claim that a pre-funded GAS address exists, and explains seeding oracle prices for native-coin fees.
- Intro pages, FAQ, use cases, concepts and component pages now lead with the chain-agnostic claim and time-stamp Bitcoin, Litecoin, and Dogecoin as the live-today roster, enforced by a new chain-positioning test.
- White paper §13.3 now publishes the genesis figures (100,000,000 cap, the seven-leg distribution, snapshot pins and open-mint terms) instead of deferring them, carrying the pre-launch “not yet final” qualifier.
- Overview, GAS, COLLECT and the genesis runbook no longer claim supply is created only by public mints, which held only while the distribution was unpublished.
Added
- A test that keeps the genesis allocation table arithmetically closed and in agreement with the genesis runbook.
operations/release-process.md: how a release train is cut, signed and published, the hotfix path, and the classification rule that decides whether a fix needs an activation point.- The operations index now lists Release Signing, which existed as a page but was reachable only by direct link.
Fixed
- The smart-contract development guide counted 13 shipped
xchain-contractstemplates and omittedcounterpartyBridge; it now counts 14 and lists it, matching whatnpx xchain-contracts listreports.
Removed
- The operator-dashboard pages and every listing of it (components index, README table, platform map, test counts); it is internal operator tooling, not part of the public platform.
Activation
- The ATTEST response mirror activates on Bitcoin testnet at block 151324 and on regtest from genesis. Mainnet is unratified and the legacy on-chain response path runs there byte for byte.
- ROLLCALL activates on Bitcoin testnet at block 151200, which the chain has already passed, so it is live from the moment a node updates. Mainnet is unratified.
- Both change state derived from existing bytes on testnet, so an updated node and one still on 0.14.0 judge a mirrored response differently once one lands. Update every indexer and hub together.
[0.14.0] - 2026-09-02
Added
- Documented the attestation responsible-set widening flag day and its activation heights.
Activation
- Attestation responsible-set widening activates on Bitcoin testnet at block 150780 and on regtest from genesis. Mainnet is unratified and the rule is inert there. Below the height, and on an unratified network, behaviour is byte-for-byte unchanged.
- This train changes state derived from existing bytes, so nodes on either side of the height disagree once a widened response lands. Upgrade every indexer and hub before the height.
[0.12.1] - 2026-08-13
Added
components/wallet/release/mobile/android-play.md: the Play content-rating (IARC) questionnaire, answered from the surfaces the store build ships and cross-referenced to the data-safety form it has to agree with.components/dashboard/: README, architecture, configuration and operations pages for the operator console.architecture/platform-map.md(+platform-map-app.html/platform-map.json): interactive platform map with selectable end-to-end flows, embedded in a sidebar-listed doc page, plus the same graph as machine-readable JSON for AI agents, guarded by a new integrity/parity test.
Fixed
- The gated-FILE layout is documented as nonce then GCM tag then ciphertext, matching what the encoder emits.
- Six flat-cap P2SH statements across four files describe the chunked model and its compiled ceiling.
- The trading guide states the shipped duration-metered listing fee instead of a Bitcoin-only introductory free tier.
- The env-var coverage surveyor propagates real file I/O errors instead of treating them as files that raced away, and reports a git failure as a tool error rather than as a documentation gap.
- The docs suite pins partial-scan survey behaviour and specific collected gates.
- Stake-weighted quorum reference implementation rejects a validator entry with a missing or non-numeric weight, with test vectors for the missing, null, non-numeric and explicit-zero cases.
- The stakeable-contract tutorial queries stake with the signing pubkey rather than the caller address, so its stake gate and admin slash path work as written.
- The contract-staking worked example uses the current DEPLOY encoding instead of the retired hex form.
- PRICE_MAX and ORACLE_DEVIATION_THRESHOLD are covered by the cross-repo value-equality gate.
- keys-signing.md counts four signer implementations, not five.
- Review-round accuracy fixes: white paper repinned to the shipped 2.0.0 flag day 2026-08-07, SLASH described as burning the entire bond, the stakeable-contract tutorial authorizes on
getSourceAddress()instead of caller-supplied calldata,xchain-lintdescribed as a conservative preflight rather than exact deploy parity, the stake-weighted predicate no longer called 2f+1, and the contract-staking example takes the gateway argument. components/wallet/README.md:MultisigSignerwas listed among the shipped signers; the class does not exist (it is planned, and Keys_Signing.md already said so). There are four concrete signers.components/wallet/release/desktop/mac-app-store.md: the Mac App Store screenshots were re-captured, and the page describes the frozen seed and clock that make a capture reproducible instead of calling the demo address freshly generated.components/wallet/TESTING.md: the multisig session state machine named anindexedstatus that does not exist and four other wrong status names.components/wallet/ARCHITECTURE.md:subscribe()was missing from the signer interface list.components/wallet/MULTISIG.md,FEATURES.md: dropped thexchain-sdk@1.13.0+floor, which predates the 2.0.0 SDK.components/hub/OPERATIONS.md: the write-method table listed 17 of the 20 methods;proposeslashpenalty,pauseeffectorspendandresumeeffectorspendwere missing.components/hub/DATABASE.md: three tables added since June were undocumented (anchor_reward_attestations,attestation_validator_stats,price_ingest_watermarks).components/indexer/DATABASE.md: 9 of 124 tables were undocumented, including the whole VOTE governance set andcoinpays.concepts/ACTIONS.md,components/indexer/ACTIONS.md,components/indexer/README.md: ACTIONs are gated by the indexer’s protocol version, not by block heights; all 36 carry zero activation thresholds (21 at 1.0.0, 15 at 2.0.0).- The “original 22 actions” figure was stale: BET brought the 1.0.0 wire count to 21.
- Platform-wide ACTION counts were stale everywhere: 35 wire-decoded ACTIONs (was 34) and 31 SDK-invocable (was 30), corrected across 13 pages.
components/indexer/README.md: the indexer processes 48 record types (was 45); BET, BET_EXPIRE, and VOTE were missing from the list.components/decoder/README.md: the ACTION-name whitelist has 35 entries (was 34).components/wallet/README.md: the wallet now authors all 31 user-encodable ACTIONs; the “29 of 30, all except ADDRESS” claim was wrong on both counts.WHITEPAPER.md: the ACTION-set summary undercounted user-submittable actions by one and omitted the Governance category entirely.developer-guide/TESTING.md: all platform test counts re-measured; the headline went from “over 10,500 tests” across six components to roughly 33,000 across fifteen.- Component test counts re-measured against the suites for decoder, encoder, hub, indexer, node, regtest-miner, sync, utxo-tracker, VM, and wallet.
architecture/Component_Map.md,architecture/Data_Pipeline.md: indexer handler-class count corrected to 48, SDK action-builder count to 31, explorer query wrappers to 118, and the explorer endpoint total re-derived to 232 (was 129/api+ 68/explorer).developer-guide/Smart_Contract_Development.md,developer-guide/Solidity_To_XChain.md: the contract template library ships 13 templates, not 4.components/decoder/CONFIGURATION.md: the claim that non-getRawTransactionRPCs retry with no sleep was stale;backoffOnTimeout()now backs off the block-path methods too.concepts/Smart_Contracts.md:attestation.requestcosts 500 + 5,000 gas, not “5,000 + provider escrow”; the escrow is token-denominated and never belonged in a gas column.- 13 dead in-page anchors across 7 pages, all of which assumed heading punctuation becomes a hyphen when the site deletes it.
protocol/actions/DISPENSER.md: the front-running section wrongly said a first oracle price takes effect immediately; every PRICE v1 publish is delayed 24 hours, first included.protocol/actions/DISPENSER.md: five v0 examples were one field short and shifted every field afterGIVE_OWNERSHIP, including both FIAT examples.- Accuracy corrections: zero-premint genesis, GAS supply, SPV wallet status, WS statuses filter, explorer port, open-source claim, ANCHOR v0-v6, VM lint-rule inventories, recursion depth, slashable engines, manifest re-vendor with encoder as sixth copy.
Added
test/wallet-signer-surface.test.js: gate requiring every Signer method to be documented and forbidding docs from naming a signer class that does not exist.components/hub/OPERATIONS.md: how to halt one effector’s on-chain spend at runtime, its four valid labels, and the fact that the pause does not survive a restart.test/schema-table-coverage.test.js: gate requiring every table in a service’ssrc/sqlto be named in its DATABASE.md.test/action-activation-model.test.js: gate pinning the ACTION activation model toprotocol_changes.js, including a guard against the “activate at block heights” phrasing returning.protocol/Protocol_Activation.md: a rule may leave both thresholds at 0, which is how every ACTION is registered.- Configuration references now document every environment variable the services read: 196 were undocumented, now none are.
test/env-var-doc-coverage.test.js: gate failing the build when a service reads an environment variable its own component pages do not document, or documents a default the code contradicts.test/explorer-endpoint-counts.test.js: gate deriving the explorer’s endpoint counts from its dispatch table instead of trusting the hand-written figures.test/internal-link-integrity.test.js: gate resolving every relative link and every#fragmentagainst real headings, with the slug rule pinned against the docs site’s own renderer.concepts/Smart_Contracts.md: a note stating that every Gas column figure is in gas units and that token escrows never appear there.- Security-relevant switches that had been undocumented: the
http_getattestation provider’s SSRF guard, the hub’s second reorg-scoped API key, the indexer’s keyless escape hatch, the hub-mirror migration password, and the telemetry collector’s IP salt and admin key. components/hub/CONFIGURATION.md: new sections for the hub-DB WebSocket, indexer tip freshness, oracle publishing, attestation publishing, state checkpoints, the full-node challenge, retraction consensus, XCHAIN price derivation, and the LLM attestation provider.components/indexer/CONFIGURATION.md: new sections for block-processing barriers, the hub push queue, fee quote and pre-flight, state-tree metrics, and genesis overrides.components/explorer/CONFIGURATION.md: new contract-simulation section coveringEXPLORER_VM_QUERY_ENABLEDand its four resource caps.components/node/CONFIGURATION.md: new bootstrap and go-live-gate sections.components/regtest-miner/CONFIGURATION.md:NODE_RPC_TIMEOUT, whose default (60000) differs from the decoder’s (30000) under the same variable name.components/contracts/README.md: new component page for the MIT-licensed contract template library, its 13 templates, 5 patterns, CLI, and policy generator; indexed in the components README.concepts/ACTIONS.md,getting-started/What_Is_XChain.md: BET documented in the ACTION set and the feature tour.WHITEPAPER.md: section 6.10 documents the VOTE governance action.components/sdk/EXPLORER.md: documentedgetOracleFeeQuoteandgetPreflight.components/explorer/API.md: documented the/preflightand/oraclefeequoteproxy routes.components/wallet/TESTING.md: per-suite vitest counts and a measured smoke-file breakdown.protocol/actions/PRICE.md,protocol/actions/DISPENSER.md: documented the oracle usage fee, paid up front by the dispenser opener as a native-coin output, with the quote endpoint to size it.test/action-example-fields.test.js: lint pinning the DISPENSER v0 examples to the declared 17-field format.protocol/actions/DISPENSER.md,protocol/actions/ADDRESS.md: documented the origin-standing create rule (DISPENSER_ORIGIN_STANDING): the source of a prior valid dispenser create on an address may open additional dispensers on it.developer-guide/AI_Assisted_Authoring.md: AI-assisted authoring on-ramp (describe a contract in English or paste Solidity, then gate-validate the model’s reply withxchain-foundry); indexed in the developer-guide README and cross-linked from Solidity to XChain.protocol/Protocol_Activation.md: new flag-day mechanism reference (the per-network version+time/height gate, the three activation cohorts A/B/C, and forking vs halt-recoverable straggler behavior); indexed in the protocol README and cross-linked from the Upgrade Notice Policy.protocol/constants.js: armed the four remaining Cohort-B maps at BTC 961000 andSTATE_COMMITMENT_ACTIVATIONper chain (2026-07-07 state-hash heights).protocol/Upgrade_Notice_Policy.md: adopted the upgrade-notice policy (14 days pre-launch, 60 days once any third-party validator is live).protocol/constants.js: armedCROSS_CHAIN_ROYALTY_ACTIVATIONmainnet at BTC anchor 961000 (~2026-08-04).protocol/constants.js: registeredCROSS_CHAIN_ROYALTY_ACTIVATION(XMATCH royalty-legs flag-day) as the canonical for the hub/indexer twin modules.protocol/Contract_ABI.md: optional self-declared contract display metadata (method summaries, typed params,viewflags), with fail-closed reader rules and a security note; cross-referenced from DEPLOY, Smart Contracts, and the protocol index.protocol/XChain_URI_Scheme.md: newexecuteaction (contract/method/params/gas) for wallet deep links from the explorer’s Write Contract card.- Explorer CONFIGURATION/API pages document the self-synced checkpoint mirror (
self_sync,HUB_API_URL, staleness behavior,/hub-mirror/status); hub API page documentsgetvotes,getvalidatorcapabilities, and the newgetproposalsfilters. developer-guide/Adding_A_Blockchain.md: step-by-step procedure for adding a chain via the single canonical per-coin config file inxchain-hub/src/coins/; linked fromdeveloper-guide/README.md.components/explorer/API.md: documented the VOTE governance read surface (polls/poll/poll results/votesendpoints, DataTables twins, quick-reference rows) and the hub federation/governance reads (validator_capabilities,governance_proposals,governance_votes,capability_slash_events,oracle_prices).components/sdk/ACTIONS.md: added the VOTE action (v0/v1/v3 wire formats,sdk.voting.*param builders) and bumped the SDK action count to 30 (also inREADME.md).components/sdk/WORKFLOWS.md: documented thecreatePoll/castBallot/delegateVote/clearVoteDelegationgovernance submit recipes.components/sdk/EXPLORER.md: added a Governance section coveringgetPolls/getPoll/getPollResults/getVotesand the hub-governance readersgetValidatorCapabilities/getGovernanceProposals/getGovernanceVotes.components/wallet/FEATURES.md: added the Governance (VOTE) UI section (GovernancePolls,PollDetail,CreatePollForm,DelegateVoteForm) and the UR hardware-signer ingestion bullet.components/wallet/URI_Schemes.md: documented theur:crypto-psbt(Keystone/Passport) animated-QR decoder (UrPsbtDecoder, fountain-code reassembly).components/hub/API.md: documentedgetanchorstatus(publisher runway monitoring);components/hub/CONFIGURATION.md: addedHUB_ALLOW_UNAUTHENTICATED,ORACLE_EARLY_MSG_MAX_ROUNDS, andCROSS_CHAIN_INDEXER_TIMEOUT.components/sync/CONFIGURATION.md: documentedWS_BACKPRESSURE_MAX_BYTES/WS_BACKPRESSURE_STALL_MS(replacing the retiredWS_BACKPRESSURE_LIMIT),CLIENT_SOURCE_STALE_MS,DISPENSERS_RECONCILE_EVERY/DISPENSERS_RECONCILE_MAX_INTERVAL_MS,CHECKPOINT_ANCHOR_URL, andCHECKPOINT_SEED_<CHAIN>_<NETWORK>.components/explorer/CONFIGURATION.md: addedEXPLORER_FORCE_HTTPS,EXPLORER_HOLDERS_CACHE_MS/EXPLORER_HOLDERS_CACHE_MAX, andSPV_CHECKPOINT_MAX_LAG_BLOCKS.components/regtest-miner/OPERATIONS.md: documentedinvalidate_block/reconsider_blockreorg helpers, the opt-inMINER_API_KEYauth gate (ping/statusexempt), themining_pausedstatus field, and the pinnedsettxfeewallet fee rate;CONFIGURATION.md: mainnet is refused at startup.components/utxo-tracker/OPERATIONS.md: documentedGET /status, thereorg_count/last_reorg_depthsync-status fields, and the fullTxHash re-index error.components/decoder/OPERATIONS.md: documentedGET /statusand thenode_height_stalehealth field;CONFIGURATION.md:DECODER_API_PORTis now validated at startup.components/node/CONFIGURATION.md: addedXCHAIN_NODE_HUB_SIGNER_DIR, theXCHAIN_NODE_DB_*MariaDB tuning vars (max-connections defaults to 1000),ALLOW_NO_COLOCATED_HUB_DBforwarding, explorer port-override notes, and the regtestINDEXER_ALLOW_UNAUTHENTICATEDdefault.
Changed
protocol/providers/llm.md: default Claude CLI config dir updated to the renamed~/.claude-xchain(was~/.claude-xchain-hub).BLOCKCHAINS.md: “Adding New Blockchains” now describes the single canonical coin-file model and links the new developer guide.protocol/Index_Id_References.md: specify the canonical^<id>form (caret plus decimal digits, no leading zero, id >= 1, referencing an existing block-stamped id); all other caret forms are rejected.operations/XCHAIN_GENESIS.md: rewritten to match the shipped genesis (token injected at the pinned genesis block with zero pre-mint and aMINT_START_BLOCKsentinel, public fair mint at launch, per-network genesis pins and hash verification) instead of the old mint-everything-and-lock runbook.protocol/README.md: index now links the ACTION manifest, Controller-Bound Tokens, Cross-Chain Calls, Cross-Chain DEX, x402 Payments, attestation providers, and Error Codes.components/hub/OPERATIONS.md: validator-mode hubs withoutHUB_API_KEYnow refuse to boot unlessHUB_ALLOW_UNAUTHENTICATED=true.components/explorer/API.md:getAddressresponse fields documented, includingtracker_availableandmempool_ready.architecture/Component_Map.md: indexer/explorer key details now mention VOTE poll finalization and the governance read pages.
Fixed
components/decoder/OPERATIONS.md:lag_blocksisnullwhen either height is unknown, not0.- Explorer WEBSOCKET.md no longer advertises the
statusesfilter: it is out of WELCOMEfeaturesand both SUBSCRIBEDactive_filtersexamples, matching what the server actually emits, and the parameter row now records that it is not supported.
[0.12.0] - 2026-06-20
Added
- Three-week documentation drift sweep (2026-06-13): audited all
xchain-*sub-repos against the docs; entries below are its output. components/sdk/NFT_AND_REGISTRY.md: new reference forsdk.nft.*builders (unique,edition,collectionItem,attachContentParams,tisDocument,isNft,action:<COIN>:<index>data-ref) andsdk.project.*registry builders; linked fromcomponents/sdk/README.md.components/sdk/WORKFLOWS.md: documentedissueNft,issueNftEdition,issueCollectionItem,attachContent, andsetRosterworkflow helpers.components/sdk/ERRORS.md: addedSDKPolicyError(POLICY_*) andSDKX402Error(X402_*) classes with full code registries for AgentSession policy enforcement and the x402 payment flow.components/sdk/README.md,SESSIONS.md, andai-agents/Agent_Wallets.md: surfacedsdk.agentSession(wif, policy), the x402 gateway/client, and the MCP server; documentedstateFilepolicy override andPOLICY_STATE_CORRUPT.components/sdk/EXPLORER.md: addedgetProject,fileRawUrl,getFeeQuote,getFeeSchedule,getPriceSnapshots, andgetMempool;components/sdk/ENCODER.md: addedestimateFees.components/hub/API.md: documentedgetcapabilitythresholds,getstakesourcebypubkey,anchorflush,pushvalidatorrewards, four hub-db snapshot REST endpoints, the full six-table WebSocket mirror, andGET /openrpc.json.components/hub/ARCHITECTURE.md: addedStateCheckpointEngineandStateAnchorPublisherto source-file map and event-wiring diagram;components/hub/CONFIGURATION.md: corrected table count (13 to 20) and documented seven previously-undocumented tables,ANCHOR_*knobs, andHUB_SIGNER_MODULE;components/hub/OPERATIONS.md: added checkpoint/anchor engines to startup sequence plusanchorflushand DOGE-publisher-wallet troubleshooting.components/explorer/API.md: added checkpoint-verification endpoints,feequote/feeschedule/price/price_snapshots/cross_chain_matches/cross_chain_settlements, andGET /openapi.json; expanded/api/statusand/api/networkresponse examples;components/explorer/CONFIGURATION.md: addedNO_HUBandDECODER_API_URL[_<COIN>_<NETWORK>];components/explorer/WEBSOCKET.md: documented mempool and attestation events.components/indexer/OPERATIONS.md: documentedfeequote,feeschedule, andgetactionconfirmations;components/indexer/DATABASE.md: addedstake_key_revocationstable (DELEGATE v2);components/indexer/ACTIONS.md: addedANCHORaction (DOGE-only, no protocol fee, writesanchor_actions).- Attestation paid-request (E1) fields:
protocol/actions/ATTEST.md,protocol/providers/llm.md,protocol/providers/README.md, andconcepts/Smart_Contracts.mdnow documentfeeTick/feeAmountrequest options and the governance-configurablemin_fee_xchainfloor. protocol/actions/EXECUTE.md: documented DEPLOY constructor emissions and the 50-emission-per-invocation cap;concepts/Smart_Contracts.md: addedxchain.getCallDepth()/getCrossHops();components/vm/CONFIGURATION.md: addedVM_MAX_CALL_DEPTHandVM_MIN_CALL_GAS;developer-guide/Smart_Contract_Development.md: added deploy-time validation checks 4 (banned transcendentalMath.*) and 5 (bannedBigInt/RegExpliterals).protocol/actions/README.md: addedXCALLandXEXECto the VM-actions table;concepts/CROSS_CHAIN.md: added a cross-chain-contract-calls (emit.crossExecute) section.concepts/GAS.md: documented theFEE_PAYMENT_MODEper-chain parameter;components/encoder/README.md: added theestimate_feemethod,GET /openrpc.json, and the Litecoin 5,460-litoshi dust threshold.
Changed
components/sdk/ACTIONS.md,architecture/Component_Map.md,architecture/Data_Pipeline.md: corrected P2WSH capacity figures to the 476-byte per-chunk element bound and 8,192-byte compiled-payload ceiling (MAX_COMPILED_ACTION_DATA_LENGTH); fixed wire-format strings for ADDRESS, DISPENSER, MESSAGE, ORDER, SWAP, and SWEEP to matchxchain-sdk/src/formats.js(addingDISPENSER_PREFERENCE,GIVE_OWNERSHIP/GET_OWNERSHIP,ORACLE_ADDRESS,COIN, and the three SWEEP escrow flags).protocol/actions/ATTEST.md,protocol/actions/XCALL.md,WHITEPAPER.md: correctedrequest_id/CALL_IDpreimage definitions to match the post-refactor implementation (attestationrequest_id=sha256(tx_hash:root_action_index:emitter_path:contract_index:emitter_position); cross-chaincall_id=sha256(network:source_chain:tx_hash:root_action_index:contract_index:emitter_path:emitter_position:target_chain)).protocol/actions/DEPLOY.md: documented that inlineCODE_ENCODINGis gated behind theDEPLOY_BASE64_CODEactivation (hex before, base64 after); added an “Encoding activation” section explaining the gate is keyed on block time so historicalcode_hashvalues stay stable; chunked slices are base64 from genesis and unaffected.protocol/actions/XCALL.md: theCALL_IDpreimage no longer binds the emitting sub-action’s own per-emissionaction_index, which is indexer-synthetic and non-deterministic across nodes. The deterministicroot_action_indexandemitter_pathtake its place, giving the canonical eight-field form recorded above.getting-started/Quickstart_Developer.md,getting-started/Quickstart_Node_Operator.md: corrected the Node.js requirement from “18 or later” to Node 22 (Node 18 fails on the ESM-onlymariadbpackage; Node 24 cannot buildisolated-vm).protocol/Contract_Staking.md: documentedDELEGATE v2(capability revoke) andDELEGATE v3(contract-targeted revoke); relabelled the rotate example field toNEW_SIGNING_PUBKEYto matchDELEGATE.mdand the handler.protocol/NFT_Standard.md: updated the guided create-NFT flow recommendation to reflect the shippedsdk.nft.*builders andsdk.issueNft*workflows.protocol/actions/MESSAGE.md: documented that MESSAGE v2 carries noENCRYPTION_METHODfield on the wire and its absence must be interpreted asENCRYPTION_METHOD = 1(ECIES); encoders must not include the field in a v2 message.
Fixed
components/hub/ARCHITECTURE.md,protocol/actions/PRICE.md,protocol/actions/ANCHOR.md: corrected the PBFT quorum formula to include the simple-majority floor:max(2f+1, ceil((N+1)/2)); the bare2f+1degenerates to quorum=1 at N=3.protocol/actions/README.md: retitled the staking section header from “Hub Staking (BTC chain only)” to scope the BTC-only restriction to capability staking only (contract-targeted staking runs on every chain).components/vm/ARCHITECTURE.md: corrected the “Replaced” deterministicMathsubset by removing the banned transcendentals (sqrt/pow/log/log2/log10); also fixed stale emit/validator action counts (gateway-emit.js16 to 18,validator.js16 to 20).protocol/actions/XCALL.md: corrected cross-chain-call injection ordering from “hub-idorder” to(snapshot_block, call_id)in both the dispatch and ANCHOR-archive descriptions.components/explorer/API.md: corrected the mempool endpoint description from “reserved for future implementation” to live, serving pre-validation rows from the decoder DB withaddress/tokenfilters.concepts/CROSS_CHAIN.md: corrected that SWAP create (format 0) has no counterpartyACTION_INDEXfield, and that cross-chain DEX settlement is finalized by the hub’sCrossChainDexEnginevia PBFT, not the attestation engine.components/indexer/DATABASE.md,ACTIONS.md,ARCHITECTURE.md: corrected stalereward_typevalues (removed non-existentcross_chain_attestation; real types areoracle_round,attest_fee,anchor_<chain>,anchor_archive).components/hub/DECENTRALIZATION.md: extended the quorum-floor correction to thecross_chaincapability section and consensus summary; added a Phase 7 row (federation key rotation, 2026-06, complete).protocol/actions/ATTEST.md: correctedRESPONSE_PAYLOADfrom “inline UTF-8” to base64-encoded on the wire; corrected the signing hash from “UTF-8 response bytes” to raw response bytes after base64-decoding.components/sdk/ENCODER.md: corrected the P2WSH capacity from 9,956 to 8,192 bytes;protocol/Error_Codes.md: corrected the encoder and hub OpenRPC URLs from/{COIN}/openrpc.jsonto root/openrpc.json.
[0.11.0] - 2026-06-06
Added
operations/DISK_MANAGEMENT.md: new operator guide for moving a chain’s block data to a larger disk; documentsXCHAIN_NODE_BLOCKS_DIRand symlinking patterns, and warns that bareblocks/bind-mounts miss subdirectory paths on DOGE/LTC testnet/regtest;components/node/CONFIGURATION.md: added a matching network-subdirectory warning callout cross-linked to the new guide.protocol/constants.js: canonical CommonJS module declaringMAX_ACTION_DATA_LENGTH(8192),OP_RETURN_PUSH_OVERHEAD(3), andMAX_CODE_SIZE(65536) as the shared source of truth across services; cross-service regression suite asserts every service’s local copy matches it.
Changed
components/e2e-test/CONFIGURATION.md,components/node/CONFIGURATION.md: renamed the documented indexer service-host variableINDEXER_HOSTtoINDEXER_URLto match the<SERVICE>_URLnaming convention.protocol/Contract_Staking.md,protocol/actions/STAKE.md,protocol/actions/UNSTAKE.md,protocol/actions/DELEGATE.md,components/hub/DECENTRALIZATION.md: corrected the staking activation delay to be calibrated per chain (BTC 6 / LTC 24 / DOGE 60 blocks) for equivalent ~60-minute reorg protection, rather than a flat 6-block value.xchain-indexer-syncrepository renamed toxchain-syncthroughout the documentation; decoder DB replication added; all REST and WebSocket endpoints gained a/:dbType/path segment (breaking for external clients).
Fixed
components/sync/OPERATIONS.mdandcomponents/hub/ARCHITECTURE.md: documented the client WebSocketheartbeatmessage shape, thePOST /validator-heartbeat/:dbType/:chain/:networkREST fallback, theGET /validator-statusendpoints, and the full P2P gossip envelope schema with all gossip message types.components/hub/API.md,components/indexer/OPERATIONS.md, andcomponents/sync/OPERATIONS.md: documented the fullhealthendpoint response shapes for all three services, including per-field types, 503-on-degraded behaviour, and circuit-breaker fields.components/hub/API.mdandcomponents/sync/CONFIGURATION.md: corrected thegetallconfigsresponse shape from a bare nested object to the real envelope{ configs, seq, watermark }, and documented thesince_updated_atdelta-polling parameter.protocol/actions/ATTEST.mdanddeveloper-guide/Smart_Contract_Development.md: documented thatcallbackParamselements are string-coerced at injection regardless of original type (e.g.[42, true]arrives as['42', 'true']).protocol/actions/ATTEST.md: corrected the response lifecycle to distinguish retryable statuses (no_quorum/timeout/provider_error, leave requestpending) from terminal statuses (ok/expired, fire callback and close request).- VM gas docs: disclosed that indexed
forloops are charged twice per iteration (body top + update expression); added notes acrossconcepts/GAS.md,developer-guide/Smart_Contract_Development.md,components/vm/CONFIGURATION.md,components/vm/OPERATIONS.md, andcomponents/vm/ARCHITECTURE.md. developer-guide/andgetting-started/Quickstart_Developer.md: corrected allsdk.explorer.*snippets from options-object calling style to positional arguments (getToken(tick),getBalances(address, opts), etc.); rewrote calls to the non-existentgetActions(...)to real methods.- Removed the obsolete validator/staking
tierfield fromcomponents/hub/API.md,components/sdk/EXAMPLES.md,components/sdk/WORKFLOWS.md,components/hub/CONFIGURATION.md, andcomponents/indexer/DATABASE.md. components/indexer/DATABASE.md: corrected theunstakescooldown from hardcodedblock_index + 1000toSTAKING.COOLDOWN_BLOCKS(governance-configurable); added a Contract-Staking Tables subsection documentingcontract_stakes,contract_unstakes, andcontract_delegations.components/encoder/Format_Selection.md: corrected the documented P2WSH payload capacity from ~9,956 bytes to 8,192 bytes in the table, section heading, and decision flowchart.components/encoder/README.md: documented thebroadcast_txandget_utxosJSON-RPC methods, which were always exposed but absent from the API reference.components/indexer/CONFIGURATION.md: corrected theFEE_PAYMENT_MODEentry (previously listed non-existent values); clarified the key is informational only and mode is detected implicitly bydetectFeePaymentMode().concepts/GAS.md: corrected the execution time limit from “100ms CPU” to the real two-tier model (gas exhaustion primary; 30-second wall-clock secondary safety net).components/sync/: updated README, ARCHITECTURE, OPERATIONS, and CONFIGURATION to reflect decoder DB replication and the/:dbType/path namespace (breaking; old paths return 404).concepts/GAS.mdanddeveloper-guide/Smart_Contract_Development.md: added missing VM gas constantsVM_CROSS_CHAIN_READ(100 gas) andVM_ATTEST_REQUEST(5,000 gas); correctedxchain.attestation.requestcost from 500 to 5,500 gas total.
Added: Five platform initiatives
1. AI-callable smart contracts (Attestation Framework + LLM provider). Smart contracts can now ask the outside world a question and get a verified answer back on-chain. A contract calls xchain.attestation.request(...), and the validator network independently fetches the answer from a registered provider, compares results across validators, and writes the agreed-upon response back to the chain, which then re-enters the contract through a callback method. Two providers ship in the initial release: http_get (any HTTPS endpoint, exact byte-equality consensus) and llm (large-language-model prompt, judge-model semantic consensus across Claude Sonnet 4.6 and Claude Opus 4.7). This is the platform’s bridge between blockchain logic and the real world, usable for AI-judged contests, sentiment-gated airdrops, content moderation oracles, price feeds, dispute resolution, and any other real-world data trigger a contract needs.
protocol/actions/ATTEST.md: request (v0), response (v1), and system-synthesized expire (v2) phasesprotocol/providers/llm.md: full LLM provider spec including approved models, judge-model consensus, transport options, costuser-guide/Use_Cases.md: new AI-Powered Smart Contracts sectiondeveloper-guide/Smart_Contract_Development.md: new sections for thexchain.attestation.*VM gateway namespace with worked examples
2. Contract-targeted staking: multi-chain. Any token on any chain (Bitcoin, Litecoin, Dogecoin) can now be staked against any smart contract. The contract author declares the staking rules at deploy time (how long the cooldown is, and where slashed tokens go) and the contract’s own code decides what staking unlocks and when to slash. This is a general-purpose developer primitive: build prediction markets, security bonds, validator-style services, conditional escrow, or any logic where users back a contract with locked tokens. Coexists with the existing capability-based staking (XCHAIN-only, hub-facing); the two systems share no state.
protocol/Contract_Staking.md: full spec (STAKE v3, UNSTAKE v1, DELEGATE v1, DEPLOY v1 metadata,xchain.contract.*VM API)user-guide/Use_Cases.md: new Native Multi-Chain Staking sectiondeveloper-guide/Smart_Contract_Development.md: new section for thexchain.contract.*VM gateway namespace
3. Capability-based validator staking. Replaces the previous tier model. Validators stake XCHAIN and automatically qualify for any of four independent capabilities (price, cross_chain, oracle_publish, attestation) based on the amount staked against each. Each capability has its own governance-configurable minimum stake. Validators participate in consensus per capability at block-boundary snapshots.
protocol/actions/STAKE.md,UNSTAKE.md,DELEGATE.md,COLLECT.md: rewritten for the capability modelgetting-started/What_Is_XChain.md: staking summary updated
4. Token-gated encrypted publishing. A token issuer can now publish a file (or a multi-file pack) on the blockchain, encrypted such that only holders of the gating token can decrypt it. The decryption key is automatically re-encrypted to each new holder during every transfer, end-to-end on-chain, with no third-party server or key escrow. Sell the token via dispenser or order, and the buyer receives the decryption key in the same transaction. Useful for sealed album drops, paid downloads, gated research, holder-only resources, and any “first-access” mechanic.
protocol/Token_Gated_Content.md: full spec including the binary key-handoff payload formatprotocol/actions/FILE.md: gating fields (GATE_TICKER,ENCRYPTION_METHOD,KEY_HASH)protocol/actions/MESSAGE.md: v2 ECIES binary mode for key handoffuser-guide/Use_Cases.md: Token-Gated Encrypted Content and Packs section expandeddeveloper-guide/Advanced_Token_Features.md: new walkthrough
5. Token-ownership trading. The issuer role of a token can now be bought and sold on the DEX. New GIVE_OWNERSHIP and GET_OWNERSHIP flags on ORDER, SWAP, and DISPENSER let a seller advertise the ownership of an entire token issuance, and a buyer purchase it atomically. No off-chain trust required. SWEEP was restructured into three independent flags (BALANCES, OWNERSHIPS, ESCROWS) so a holder can sweep just one category at a time.
protocol/actions/ORDER.md,SWAP.md,DISPENSER.md: ownership-trading flagsprotocol/actions/SWEEP.md: three-flag restructureuser-guide/Use_Cases.md: new Token Ownership Trading sectiondeveloper-guide/Advanced_Token_Features.md: new walkthrough
Added: Documentation surface
protocol/actions/COLLECT.md: renamed fromCLAIM_REWARDS.md, consolidated with capability-staking rewardsprotocol/actions/DEPLOY.md:COOLDOWN_BLOCKSandSLASH_DESTINATIONfields documented for v1user-guide/FAQ.md: entries on AI-callable contracts, contract staking vs capability staking, selling encrypted content, and selling issuer rightsgetting-started/What_Is_XChain.md: top-level pitch now calls out AI-callable contracts as a platform differentiatorcomponents/sync/: directory renamed fromcomponents/indexer-sync/; documentation updated for decoder DB replication scope expansion
[0.10.0] - 2026-04-25
Added
components/wallet/: full component documentation set forxchain-wallet:README.md: overview, full feature list, doc index, installation, quick start, four usage modes (web / extension / desktop / dApp integration), repository layout, scripts, dependenciesARCHITECTURE.md: three-shell-one-core model, package boundaries, vault & state model, schema migrations, signer interface, build pipelinesKeys_Signing.md: Argon2id KDF parameters, vault encryption, BIP39 + Counterwallet mnemonic handling, BIP32 HD derivation, the five signers (Software / Trezor / Ledger / Remote / Multisig) in detail, backup / recovery / dry-run-restore, label-syncSECURITY.md: protected assets, in-scope and out-of-scope threats, sign-screen safety rails, audit posture, disclosure policyUX.md: full route map for all 64 shared routes, onboarding, lock/unlock, Home, Send, Receive, History, sign screens, multisig session view, contacts, QR scanner, command palette, settingsFEATURES.md: capability-by-capability walk: token issuance, distribution surfaces, DEX, encrypted messaging, smart contracts, BTC staking + delegation, multisig, cross-chain flows, dApp bridge, air-gapped PSBT signing, onboarding & recovery, lock / unlock / auto-lock, i18n + a11y, reproducible builds, URI scheme handling, connected sites, notifications, developer modeBRIDGE.md: fullwindow.xchainAPI reference (connect,getAccounts,getBalances,getSupportedChains,signMessage,signPsbt,signAction,sendAction,signIn), events, permissions, error model, test dApp, security modelURI_Schemes.md: BIP21, chunked PSBT-QR transport, multisig PSBT envelope, animated QR cadence, detect-and-route classifierMULTISIG.md: schema, create flow, classical n-of-m + MuSig2 state machines, cosigner transport, hardware-signer status, address browsingShell_Extension.md: Chrome MV3 manifest + audit, service worker, content script, injected provider, approval window, storage, privacy policy + CWS submissionShell_Desktop.md: Electron main / renderer split, OS keychain, hardware transports, auto-updater, packagingShell_Web.md: Vite SPA, mobile responsiveness, camera + WebHID, extension-detect banner, CSP, session lifetimeBuild_Release.md: synchronized versioning, extension version-derivation rule, per-shell build, signing, distribution channels, CWS submission, release artifacts, pre-launch readiness gatesReproducible_Builds.md: Level-2 reproducibility scope, scaffolding audit, run-twice verification protocol, comparison against maintainer release, common drift sources, roadmapTESTING.md: 92-smoke breakdown, audit gates, Playwright E2E, bridge E2E, hardware-signer E2E, multisig coverage, repro-build verification, what’s not coveredCONFIGURATION.md: per-chain endpoints, settings store schema, signer registration, connected sites, build-time variables, developer mode, locale, branding, ADS, schema migrations
Changed
README.md: addedxchain-walletrow to the platform Components table; updated the Documentation row’s component count from 12 to 13.components/README.md: added wallet entry to the components index; updated the lead sentence’s component count from 12 to 13.
[0.9.9] - 2026-04-24
Added
protocol/actions/ADDRESS.md: addedDISPENSER_PREFERENCEfield to format0(controls who may open a dispenser:1=owner only (default),2=anyone); updated examples and noted that a blank field in a subsequentADDRESSaction preserves the previous non-blank value.protocol/actions/DISPENSER.md: explicit rules for who may open a dispenser on a non-SOURCEaddress (DISPENSER_PREFERENCE=2or fresh address);GET_ADDRESS == SOURCEis always allowed.protocol/actions/DISPENSER.md: escrow-routing rules forSWEEP-driven close (escrow toSWEEPDESTINATION) andEXPIRATIONclose with no canceller (escrow toSOURCE).protocol/actions/DISPENSER.md: fresh-address dispenser example illustrating the1FreshAddr...pattern from a main walletSOURCE.
Changed
protocol/actions/DISPENSER.md: removed the standalone “no new/empty address limitation” note, superseded by the explicit rules above.
[0.9.8] - 2026-04-08
Added
protocol/actions/PRICE.md: full rewrite to match implementation: 12 fiat currencies (36 pairs per round), DOGE_ADDRESS in Tier 3 STAKE format, 24-hour user oracle lock window, publishable on any chain, hub-aggregatedprice_snapshotswithsource_chaincolumn, three-database model architecture, signature aggregation flowprotocol/actions/STAKE.md: Tier 3 (oracle publisher, 500 XCHAIN), DOGE_ADDRESS field with format validation, 6-block activation delayprotocol/actions/UNSTAKE.md: Tier 3 support, two distinct delays (6-block validator removal vs 1000-block token return)protocol/actions/DELEGATE.md: 6-block activation delay for key rotationprotocol/actions/REVOKE_DELEGATION.md: 6-block deactivation delay with key overlap windowprotocol/actions/DISPENSER.md: ORACLE_ADDRESS field for user TOKEN/FIAT oracle pricing, EUR/KRW added to FIAT_CODE list (12 currencies total), dual reverse-matching algorithms (validator and user oracle paths), front-running protection notesprotocol/actions/CLAIM_REWARDS.md: reward sources table, hub-to-indexer reward push path viapushvalidatorrewardsprotocol/actions/README.md: new “Oracles” section listing PRICEarchitecture/Database_Design.md: three-database model (Decoder DB, Indexer DB, local Hub DB) with separation principle and cross-node determinism guaranteecomponents/hub/ARCHITECTURE.md: PriceAggregator, OraclePublisher, EncoderClient, HubDbBroadcaster source files; Tier 3 publishing pipeline diagram; multi-validator signature aggregation in PBFT prepare/commit; hub DB sync channel REST + WebSocket flowcomponents/hub/DATABASE.md:oracle_pricestable schema;price_snapshotsupdated withsource_chainandsource_action_indexcolumnscomponents/hub/API.md: new write methods (pushchaintip,pushpriceround,pushoracleprice); new REST endpoints (/hub-db/snapshot/price_snapshots,/hub-db/snapshot/oracle_prices); WebSocket channel/hub-db/subscribecomponents/hub/OPERATIONS.md: startup sequence updated with PriceAggregator, HubDbBroadcaster, OraclePublishercomponents/indexer/ARCHITECTURE.md: three DB connections, HubClient, HubDbSync, Ed25519 verification module; indexer-to-hub push endpoint referencecomponents/indexer/ACTIONS.md: new “Oracles” section for PRICE v0/v1; Tier 3 staking notes; activation delay referencecomponents/indexer/DATABASE.md:pricesaction table schema;stakesupdated withdoge_address,activation_block,deactivation_block;delegationsupdated with activation/deactivation columns;validator_rewardspopulated via hub pusharchitecture/Component_Map.md: indexer entry updated for three-database model and hub push endpoints; hub entry updated for hub DB sync channeloperations/CONFIGURATION.md: hub component descriptions updated for PriceAggregator, HubDbBroadcaster, OraclePublisher
[0.9.7] - 2026-04-07
Added
protocol/actions/DISPENSER.md: FIAT Dispensers section: reverse price matching algorithm, overpayment/tips handling, dispenser close window behavior, and FIAT dispenser exampleprotocol/actions/PRICE.md: expanded FIAT Dispenser Grace Period with floor-based matching algorithm details
[0.9.6] - 2026-04-07
Changed
protocol/actions/MESSAGE.md: addedCOINfield (BTC, LTC, DOGE) to all MESSAGE formats for cross-chain messaging support- All SDK messaging documentation and examples updated with required
coinparameter components/sdk/MESSAGING.md: addedINVALID_COINerror code
[0.9.5] - 2026-04-07
Added
protocol/actions/MESSAGE.md: new Encryption Methods section with descriptions for ECIES, ECDH, and AEScomponents/sdk/MESSAGING.md: new reference doc for messaging module: ECIES/ECDH/AES encryption, public key lookup, high-level send/receive, error codesdeveloper-guide/MESSAGING.md: new developer guide for encrypted messaging with end-to-end examples
Changed
protocol/actions/MESSAGE.md: reordered encryption methods to 1=ECIES (default), 2=ECDH, 3=AES; updated examples and notescomponents/sdk/EXAMPLES.md: added 7 messaging examples: ECIES send, read/decrypt, low-level encrypt/decrypt, ECDH session, AES pre-shared key, public key lookupcomponents/sdk/README.md: added 3 messaging features to Features list, added MESSAGING.md to Documentation table
[0.9.4] - 2026-04-07
Added
components/sdk/WALLET.md: new reference doc for wallet and auth modules: key management, address derivation and validation, challenge-response wallet verification, custom message signing, PSBT signing, transaction broadcasting, UTXO queries, supported networks matrix, full workflow examples
Changed
components/sdk/EXAMPLES.md: added 10 new wallet/auth examples: Generate a Key Pair, Import a WIF Key, Derive Addresses, Validate an Address, Challenge-Response Wallet Verification, Custom Message Signing, Sign and Broadcast a Transaction, Token-Gated Content Access, Fetch UTXOscomponents/sdk/README.md: added 7 wallet/auth features to Features list, added WALLET.md to Documentation table, added 4 new crypto dependencies to Runtime dependencies tablecomponents/sdk/ERRORS.md: added SDKWalletError (14 error codes) and SDKAuthError (5 error codes) to hierarchy, class table, error codes reference, and catching errors example
[0.9.3] - 2026-04-07
Changed
developer-guide/Integration_Patterns.md: expanded Pattern 3 (Token-Gated Access) from a basic balance check into a comprehensive guide covering wallet ownership proof, session management, real-time balance invalidation via WebSocket, on-chain gating with example contract, and security considerations.user-guide/Use_Cases.md: expanded “Access Control and Token-Gated Systems” with concrete content-gating examples, wallet ownership proof, TRANSFER_LOCK guidance, and cross-reference to Integration Patterns.developer-guide/Query_The_Explorer.md: added cross-reference from token-gated check snippet to the full Integration Patterns guide, fixed typo in comment
[0.9.2] - 2026-04-06
Added
components/hub/DATABASE.md: full schema reference for all 13 MariaDB tables organized by category (config, validator, oracle, cross-chain, governance, incentive) with column definitions, types, and keyscomponents/hub/OPERATIONS.md: prerequisites, startup sequence, operating modes, Docker, multi-instance deployment, API overview, resilience/recovery patterns, troubleshooting guide
Changed
components/hub/README.md: added test count to features, expanded scripts table with all test commands, added development dependencies section, added links to new DATABASE.md and OPERATIONS.md
[0.9.1] - 2026-04-06
Added
components/e2e-test/ARCHITECTURE.md: connector classes, bootstrap sequence, transaction flow, UTXO cache, polling architecture, wallet management, file organizationcomponents/e2e-test/CONFIGURATION.md: all environment variables, hub discovery fallback, internal constants, Docker setup, coin/network combinationscomponents/e2e-test/OPERATIONS.md: running tests, CI pipeline, regression tiers, Docker execution, troubleshooting tables
Changed
components/e2e-test/README.md: expanded from minimal stub to full component documentation: features, architecture diagram, test structure tables, configuration overview, test countsdeveloper-guide/TESTING.md: added E2E Suite column to test type matrix, updated total test count to 5,600+, added e2e-test to component scripts list
[0.9.0] - 2026-04-06
Added
components/hub/ARCHITECTURE.md: new file: subsystem design, source files, P2P gossip, PBFT consensus, oracle pipeline, cross-chain engine, governance, rewards/slashingcomponents/hub/CONFIGURATION.md: new file: all 30+ environment variables, 13 database tables with schemas, connection pool, circuit breaker, validator identitycomponents/hub/API.md: new file: full JSON-RPC method reference for all 23 methods with request/response examples
Changed
components/hub/README.md: rewritten for hub v2.0.0: dual operating modes (standalone/validator), full feature list, documentation table, quick start for both modes, service discovery, multi-instance deployment, dependenciescomponents/hub/DECENTRALIZATION.md: updated: all six phases marked complete with version numbers, removed “planned” language, added architecture summaryREADME.md: updated hub description to reflect decentralized validator networkcomponents/README.md: hub: “backed by LevelDB” changed to MariaDB with full feature descriptionarchitecture/Component_Map.md: hub: LevelDB changed to MariaDB, added full v2.0.0 capabilities, updated connection diagram, multi-instance in deployment tablearchitecture/Database_Design.md: hub: replaced LevelDB key schema with MariaDB 13-table descriptionconcepts/Security_Model.md: hub: “currently centralized” changed to “hub validator network (PBFT consensus)” in prose and trust model tableconcepts/CROSS_CHAIN.md: hub: expanded from two roles to five (config, price oracle, attestation, swap coordinator, governance), removed “planned decentralization” languageconcepts/README.md: smart contracts: “Planned” changed to “Programmable contract layer”concepts/Smart_Contracts.md: VM oracle/cross-chain stubs: “stub until Track B/Phase 4” changed to “pending VM integration”getting-started/Key_Terms.md: hub: “stores in LevelDB” changed to “backed by MariaDB, PBFT consensus”; LevelDB entry: removed hub referenceoperations/CONFIGURATION.md: hub: replaced LevelDB key format with MariaDB config, added 11 key env vars, linked to full hub configuration referenceoperations/DOCKER.md: hub: removed from LevelDB volumes section, replaced LevelDB backup with mysqldumpoperations/UPGRADING.md: hub: replaced LevelDB backup with mysqldump, fixed startup order (database then hub)user-guide/CROSS_CHAIN.md: hub: “on a path toward decentralization” changed to “is a decentralized validator network”user-guide/FAQ.md: hub: “on a path toward decentralization” changed to “decentralized validator network operating via PBFT consensus”
[0.8.0] - 2026-04-06
Added
components/node/ARCHITECTURE.md: new file: data pipeline position, internal component diagram, source files table (21 files), precheck workflow, LevelDB key schema, runtime directory structure, Docker network topologycomponents/node/CONFIGURATION.md: new file: two-layer config file system, generated environment variables (coin-specific and shared service tables), naming conventions, internal constants, validation rules (NODE_PREFIX, port, branch name, container ID)components/node/OPERATIONS.md: new file: full CLI commands reference (17 commands in 4 categories), global options, parameter values, installation workflow, Docker usage, multi-pane monitoring, bootstrap operations, troubleshooting (8 scenarios)components/regtest-miner/ARCHITECTURE.md: new file: data pipeline position, internal component diagram, source files table (3 files), mining loop flowchart, wallet lifecycle decision tree, fillMempool processcomponents/regtest-miner/CONFIGURATION.md: new file: required environment variables (6 vars with validation rules), internal constants (9 constants), timer behavior, exponential backoff formulacomponents/regtest-miner/OPERATIONS.md: new file: prerequisites, startup sequence, Docker, graceful shutdown, JSON-RPC API (6 endpoints with request/response examples), resilience features, troubleshooting (5 scenarios)
Changed
components/node/README.md: refactored into multi-file format: moved architecture, configuration, and operations content to dedicated files; added Documentation table linking to ARCHITECTURE.md, CONFIGURATION.md, OPERATIONS.mdcomponents/regtest-miner/README.md: refactored into multi-file format: moved architecture, configuration, and operations content to dedicated files; added Documentation table linking to ARCHITECTURE.md, CONFIGURATION.md, OPERATIONS.md
[0.7.0] - 2026-04-06
Changed
components/node/README.md: rewrote from high-level overview to full component documentation: added accurate CLI commands (17 commands), configuration system (two-layer config, 40+ env vars), architecture diagram with source file table (21 files), runtime directory structure, Features (17 items), Scripts (14 npm commands), Dependencies, Quick Start, and Related links; corrected container naming, removed non-existent commands and inaccurate TUI resource monitoring claims.
[0.6.0] - 2026-04-05
Changed
components/utxo-tracker/README.md: rewrote from minimal overview to full component documentation: added Features (16 items), Documentation table, Installation, Quick Start, Scripts (20 commands), Dependencies, Related linkscomponents/utxo-tracker/ARCHITECTURE.md: new file: data pipeline position, internal component diagram, source file table, full LevelDB key schema (11 prefix types with byte layouts), key design principles, block processing loop, two-pass transaction processing, concurrent prefetch, batch writes, reorg handling, mempool tracking, balance calculation, bootstrapcomponents/utxo-tracker/CONFIGURATION.md: new file: environment variables (6 required + 1 optional), supported network values (9 variants), internal constants (polling, block processing, storage, RPC), database pathscomponents/utxo-tracker/OPERATIONS.md: new file: prerequisites, running, Docker, graceful shutdown, REST API (4 endpoints with response examples), JSON-RPC API (10 methods), resilience (node connection, sync waiting, RPC retries, atomic batches, reorg recovery, mempool errors), troubleshooting (8 scenarios)
[0.5.0] - 2026-04-05
Changed
components/sync/README.md: added Input validation and 725 tests to Features, expanded Scripts from 3 to 18 entries, updated Development dependencies with all current packages, added Related Documentation sectioncomponents/sync/CONFIGURATION.md: added missing security environment variables: SYNC_API_KEY, HUB_PROTOCOL, TRUST_PROXY (Common), MAX_ROLLBACK_DEPTH, HASH_CONFIRM_STRICT, WS_MAX_PAYLOAD, SNAPSHOT_MAX_CONTENT (Client)components/sync/ARCHITECTURE.md: added middleware.js and validation.js to Source Files tablecomponents/sync/OPERATIONS.md: added Authentication section documenting Bearer token auth, added GET /schema/:chain/:network endpoint documentation
[0.4.0] - 2026-04-03
Changed
components/vm/README.md: updated scripts table with 14 commands covering unit/E2E/fuzz/chaos/regression/mutation/bench, added dev dependencies (fast-check, Stryker), total test count: 974components/vm/OPERATIONS.md: expanded running tests section with all test commands and 974 total count, added fail-loud regression notedeveloper-guide/TESTING.md: added xchain-vm as 5th component (974 tests), updated platform total from 3,750+ to 4,700+, added VM column to test type breakdown table, updated fast-check and StrykerJS tool entries to include VM, added VM test scripts link
[0.3.0] - 2026-04-03
Changed
README.md: added xchain-vm to components table, updated intro to mention smart contracts/VM/staking, updated ACTION count from 19 to 28, updated component count to 12, updated indexer description to include smart contract execution, updated SDK description with current method/query counts
[0.2.0] - 2026-04-03
Changed
getting-started/What_Is_XChain.md: updated for VM and staking: added “Run Smart Contracts” section (DEPLOY, EXECUTE, DEPOSIT, WITHDRAW), “Stake and Validate” section (STAKE, UNSTAKE, DELEGATE, REVOKE_DELEGATION, CLAIM_REWARDS), updated ACTION count from 19 to 28, updated ACTION table, updated developer/researcher descriptions
[0.1.0] - 2026-04-03
Added
- Explorer WebSocket API reference (
components/explorer/WEBSOCKET.md): connection, channels, subscriptions, filters, all event types, error codes, catch-up guide, configuration - SDK WebSocket client reference (
components/sdk/WEBSOCKET.md): convenience methods, low-level API, reconnection, hooks, code examples - Pattern 7: Real-Time State Tracking with WebSocket in
developer-guide/Integration_Patterns.md - Step 7b: WebSocket push layer in
architecture/Data_Pipeline.md - 4 real-time WebSocket examples in
components/sdk/EXAMPLES.md
Changed
- Explorer README, ARCHITECTURE, CONFIGURATION updated with WebSocket sections and env var table
- SDK README, CONFIGURATION updated with WebSocket features, constructor options, and hooks
- Root README updated with WebSocket in explorer and SDK component descriptions
Added (pre-release)
components/sync/README.md: overview, features, installation, quick start, scripts, dependencies for the new xchain-sync servicecomponents/sync/ARCHITECTURE.md: data pipeline position, dual-mode design, internal components, hub discovery flow, server poll loop, client sync algorithm, hash chain integrity, reorg handlingcomponents/sync/CONFIGURATION.md: environment variables (common, server, client), hub discovery, database naming, connection pool config, circuit breakercomponents/sync/OPERATIONS.md: running, Docker, REST API reference (5 endpoints), WebSocket API reference, resilience, troubleshooting (7 scenarios)
Changed
components/vm/CONFIGURATION.md: addedmaxStateKeySize(1,024 bytes) andmaxBlockCacheSize(1,000 entries) to constructor example, resource limits table, and bounded execution summary; updated code size enforcement note; updated log entry size to note UTF-8 byte-awarenesscomponents/vm/ARCHITECTURE.md: updated bridge protocol to reflect universal\x01+JSON encoding for all returns; added error classification hardening paragraph; updated gas.js, state.js, collector.js component descriptions; added cache bound notecomponents/vm/README.md: addedmaxStateKeySizeandmaxBlockCacheSizeto constructor example; updated state management feature descriptionconcepts/Smart_Contracts.md: added state key size (1 KB per key) to bounded execution tablecomponents/README.md: added sync to component table, updated count to 12README.md: added xchain-sync to Components table, updated microservice count to 11architecture/Component_Map.md: added Data Replication service group with xchain-sync section, updated count to 11architecture/Data_Pipeline.md: updated ASCII pipeline diagram to show sync as a branch off the Indexer DB feeding validator replicas
Added
components/vm/ARCHITECTURE.md: execution pipeline, internal components table, JSON bridge protocol (prefix encoding, argument serialization, typed error encoding, ExternalCopy limitations), AST-based gas metering (3 phases), sandbox security (stripped/preserved/replaced globals, Function preservation), compilation cache, contract wrappercomponents/vm/CONFIGURATION.md: constructor parameters, gas schedule (7 operations), resource limits (7 configurable + 5 hardcoded), bounded execution summary tablecomponents/vm/OPERATIONS.md: prerequisites, installation, indexer integration lifecycle and data flow, error classification (5 types), atomicity guarantees, syntax validation, troubleshooting (7 scenarios)
Changed
components/vm/README.md: refactored from monolithic doc to lean overview matching indexer/decoder pattern; moved architecture, sandbox, gas metering, compilation cache, and integration details to dedicated ARCHITECTURE/CONFIGURATION/OPERATIONS files; added Documentation table, Features list, Scripts table, Dependencies tables, expanded Related linksconcepts/Smart_Contracts.md: fixed Math subset in Deterministic Execution section to match actual sandbox (11 functions + 2 constants); added SharedArrayBuffer, Atomics, queueMicrotask to stripped APIs list; noted Math object is frozencomponents/indexer/ARCHITECTURE.md: updated VM ASCII diagram to show “JSON bridge protocol” instead of “ivm.Reference sync callbacks”
Added
- SDK smart contract documentation:
components/sdk/CONTRACTS.md: deploy, execute, deposit, withdraw, ContractClient, authoring utilities, explorer methods, transaction vs execution distinction - VM action entries in
components/sdk/ACTIONS.md: DEPLOY, EXECUTE, DEPOSIT, WITHDRAW with full parameter tables, notes, code examples, and validation rules - VM contract examples in
components/sdk/EXAMPLES.md: deploy, execute, deposit, withdraw, ContractClient usage, authoring utilities SDKContractErrorclass incomponents/sdk/ERRORS.mdwith 8 error codes- 8 contract explorer methods in
components/sdk/EXPLORER.md: getContract, getContracts, getContractState, getContractBalance, getExecution, getExecutions, getDeposits, getWithdrawals - EXECUTE, DEPOSIT, WITHDRAW convenience methods in
components/sdk/BATCH.md
Changed
components/sdk/README.md: updated from 19 to 23 actions, added contract features to feature list, added CONTRACTS.md to docs tablecomponents/sdk/ACTIONS.md: updated from 19 to 23 actions, added VM field validation rules, added DEPLOY to BATCH constraintscomponents/sdk/BATCH.md: updated from 17 to 20 convenience methods, added DEPLOY exclusion constraintcomponents/sdk/ERRORS.md: added SDKContractError to hierarchy, error class table, and catch example
Added (previous)
- “What Makes This Different” section in
concepts/Smart_Contracts.md: explains the architectural separation of smart contract logic from protocol logic, comparison with Ethereum’s monolithic model, and six concrete benefits (security, audit surface, protocol evolution, simpler development, composability, atomic rollback) - Smart contract development guide:
developer-guide/Smart_Contract_Development.md: writing contracts, ES2020 syntax, state patterns (manual index, reverse lookup, JSON), emitting actions, deployment, gas costs, debugging, limitations, vesting example - VM component documentation:
components/vm/README.md: architecture, module interface, internal components, AST gas metering, sandbox security, compilation cache, indexer integration - VM listed in
components/README.md(10 to 11 components) - VM Gas section in
concepts/GAS.md: per-operation gas costs (computation, state read/write, emission), deployment gas, execution gas - Contract derived addresses section in
concepts/LEDGER.md: howC:<CHAIN>:<action_index>addresses participate in the double-entry ledger - Hub Staking and Virtual Machine action categories in
concepts/ACTIONS.md(19 to 28 actions) - Smart Contract Development link in
developer-guide/README.md
Changed
concepts/Smart_Contracts.md: rewrote from “planned” to full implementation reference: gateway API (context, state, emit, math, oracle, cross-chain), deterministic execution, bounded execution, error handling, API versioning, contract format, derived addressesconcepts/ACTIONS.md: updated from 19 to 28 ACTIONs, added Hub Staking and Virtual Machine sectionsprotocol/README.md: updated action count from 19 to 28protocol/actions/DEPLOY.md: added syntax validation (V8 + acorn +__gascheck), derived address creation, constructor execution,api_version, float warningsprotocol/actions/EXECUTE.md: added VM execution details, savepoint atomicity, emission routing, 50-action cap, derived address as sourceprotocol/actions/DEPOSIT.md: updated to derived address model (credits contract’s derived address in standard ledger)protocol/actions/WITHDRAW.md: updated to derived address model (debits derived address, solvency via standard balances)components/indexer/README.md: updated test count from 958 to 978components/indexer/ACTIONS.md: updated VM action descriptions with actual implementation details (syntax validation, derived addresses, savepoints, metered gas)components/indexer/ARCHITECTURE.md: rewrote VM Runtime Module section for actual xchain-vm architecture (AST metering, gateway via ivm.Reference, compilation cache), updated source file table, removed DEPLOY-to-ISSUE alias, removedcontract_balancesfrom rollbackcomponents/indexer/LEDGER.md: replacedcontract_balancesmaterialized view section with derived address modelcomponents/indexer/DATABASE.md: updated VM tables with actual schema (contracts withapi_version, contract_state append-only, contract_emissions execution-to-action links, removedcontract_balances)
Removed
contract_balancesreferences from indexer DATABASE.md, LEDGER.md, and ARCHITECTURE.md (contracts use standardbalancestable via derived addresses)DEPLOY-to-ISSUEalias from ARCHITECTURE.md (DEPLOY is now its own action, not an alias)
Previously Added
-
Comprehensive encoder documentation rewrite: expanded features (13 items), full
create_txAPI reference with parameters/response/error codes, complete configuration table (13 env vars), browser bundle build instructions -
Encoder testing documentation: test scripts, regression suite breakdown, and test helper reference in components/encoder/README.md
-
Encoder added to platform test coverage tables in developer-guide/TESTING.md (~769 tests across 10 disciplines)
-
Updated platform total from ~2,790 to ~3,750 tests
-
StrykerJS noted as used by encoder in testing infrastructure table
-
Block hashes concept document: ledger, actions, and contract hash types with source tables, calculation process, chaining, and verification use cases
-
Block hashes entry in concepts README index
-
Hub staking action specs: STAKE, UNSTAKE, DELEGATE, REVOKE_DELEGATION, CLAIM_REWARDS
-
VM action specs: DEPLOY, EXECUTE, DEPOSIT, WITHDRAW
-
Hub Staking and Virtual Machine categories in action index README
-
Staking and VM actions in indexer ACTIONS reference
-
All new table schemas in indexer DATABASE reference (index_pubkeys, staking tables, VM tables, updated fees)
-
Unified gas fee schedule documentation in indexer CONFIGURATION
-
Contract balances materialized view pattern in indexer LEDGER
-
VM runtime module and append-only contract_state in indexer ARCHITECTURE
-
Updated the protocol quick-reference with new actions and staking/VM/fee sections
-
COINPAY action specification: protocol/actions/COINPAY.md
-
Native coin pair documentation in ORDER action spec (examples, rules)
-
COINPAY and COINPAY_EXPIRE in indexer ACTIONS reference
-
COIN_DECIMALS and COINPAY_EXPIRATION in indexer CONFIGURATION
-
COINPAY action with customOutputs in SDK ACTIONS
-
COINPay API endpoints in explorer API reference (coinpays, coinpay_expires, coinpay_obligations)
-
COINPay tables in DATABASE_DESIGN architecture doc
-
Two-phase settlement model in LEDGER concepts
-
COINPay security model in SECURITY_MODEL (late payment, spoofing, reorg)
-
Native Coin Pairs section in user-guide TRADING
-
COINPAY in DEX action listings (concepts/ACTIONS, protocol/actions/README)
-
COINPay obligations in DATA_PIPELINE expiration processing
Changed
- Move “Documentation Index” section to immediately after “Features” and rename to “Documentation” in explorer, indexer, and SDK component READMEs
2026-04-01 (v2.0.0)
Changed
- Documentation Restructuring: Complete reorganization of documentation into a unified, audience-aware structure:
- Moved
actions/toprotocol/actions/ - Moved
indexer/tocomponents/indexer/ - Moved
sdk/tocomponents/sdk/ - Moved
Token_Information_Standard.mdandDatabase_Naming_Structure.mdtoprotocol/ - Moved
json/toprotocol/json/ - Updated all internal cross-references to reflect new paths
- Moved
Added
- Getting Started: 4 documents: platform introduction (
What_Is_XChain.md), developer quickstart, node operator quickstart, glossary of 49 terms - Core Concepts: 8 documents: metalayer, ACTIONs, tokens, ledger, encoding, cross-chain, gas, security model
- Architecture: 3 documents: end-to-end data pipeline, component map with ASCII diagrams, database design
- Developer Guide: 8 tutorials: build your first token, dispensers, explorer queries, cross-chain swaps, advanced token features, batch operations, regtest development, integration patterns
- User Guide: 5 documents: token creation, trading, cross-chain, use cases, FAQ (all non-technical)
- Operations: 7 documents: deployment, Docker, configuration, monitoring, reorg handling, upgrading, troubleshooting
- Component Documentation: Detailed docs for decoder, encoder (+ format selection guide), explorer, hub (+ decentralization roadmap), UTXO tracker, node, e2e-test, regtest-miner
- Index READMEs: Navigation pages for all 8 new documentation sections
2026-04-01
Added
- Indexer Documentation: 7 documentation files under
indexer/:README.md: Overview, features, installation, quick start, documentation index, scripts, dependenciesARCHITECTURE.md: Data pipeline, internal components, action handlers, block processing pipelineCONFIGURATION.md: Environment variables, coin-specific config, indexer constantsACTIONS.md: All 20 ACTION types with categories, format versions, protocol versioning, linked to action specsDATABASE.md: Full schema reference with 60+ tables across core, ledger, action, state, index, and mapping categoriesLEDGER.md: Double-entry ledger system, balance calculation, sanity checks, gas token feesOPERATIONS.md: Running, Docker, API endpoints, resilience, troubleshooting
2026-03-31
Added
- SDK Developer Guide: 9 documentation files under
sdk/:README.md: Overview, installation, quick-start, usage modesCONFIGURATION.md: Constructor options, env vars, hub discovery, retry, pooling, hooksACTIONS.md: All 19 ACTION types with params, validation rules, format versions, examplesEXPLORER.md: All 40 explorer query methods with pagination and error handlingENCODER.md: PSBT generation, encoding types, pre-flight validation, P2SH two-phaseERRORS.md: All 7 error classes, 26 error codes, troubleshootingEXAMPLES.md: 29 end-to-end code examplesBATCH.md: BatchBuilder fluent API, constraints, examplesFormat_Selection.md: Format version selection algorithm, version quick-reference