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]
Fixed
components/hub/ARCHITECTURE.md,protocol/actions/PRICE.md,protocol/actions/ANCHOR.md— the documented PBFT quorum formula now carries the simple-majority floor the implementations enforce:max(2f+1, ceil((N+1)/2))withf = floor((N-1)/3). The previously documented bare2f+1degenerates to a quorum of 1 at N=3, which would let a single validator finalize alone; with the floor, N=3 requires 2 signatures and N=2 requires both.protocol/actions/README.md— retitled the staking section header from “Hub Staking (BTC chain only)” to scope the BTC-only restriction to capability staking. Contract-targeted staking (STAKE v3, UNSTAKE v1, DELEGATE v1/v3) runs on every chain perprotocol/Contract_Staking.md, so the old blanket header contradicted both that spec and the per-action spec files, which are already correctly scoped per flavor.
[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 on a running node. Documents the two safe patterns (XCHAIN_NODE_BLOCKS_DIR, which passes-blocksdir=/blocksto the daemon and is network-agnostic; and symlinking the whole per-network datadir) and warns against the silent-failure anti-pattern of bind-mounting only the bareblocks/path — on DOGE/LTC testnet and regtest the daemon writes totestnet3/blocks/,testnet4/blocks/, orregtest/blocks/, so a bare-blocks/bind catches nothing and no error is raised.components/node/CONFIGURATION.md— added a matching network-subdirectory warning callout to theXCHAIN_NODE_BLOCKS_DIRentry, cross-linked to the new guide.protocol/constants.js— canonical, dependency-free CommonJS module declaring the protocol-level size limits that several services enforce independently:MAX_ACTION_DATA_LENGTH(8192 — the maximum compiled on-chain ACTION push in bytes, measured before the OP_PUSHDATA prefix is stripped),OP_RETURN_PUSH_OVERHEAD(3 — the OP_PUSHDATA2 prefix added to a 256–65535-byte push), andMAX_CODE_SIZE(65536 — the contract source-code limit). These values had previously been re-declared in each service with no shared reference and had drifted apart, producing silent-failure bugs where one service accepted data another rejected. This file is the single documented source of truth; the 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_HOST→INDEXER_URLto match the<SERVICE>_URLnaming convention every other service uses, keeping the docs in step with the e2e-test and node renames.protocol/Contract_Staking.md,protocol/actions/STAKE.md,protocol/actions/UNSTAKE.md,protocol/actions/DELEGATE.md,components/hub/DECENTRALIZATION.md— documented that the staking activation delay is calibrated per chain rather than a flat 6 blocks. The spec stated “Activation delay is 6 blocks” without acknowledging that contract-targeted staking (STAKE v3 / UNSTAKE v1 / DELEGATE v1+v3) runs on every chain: 6 blocks is ~60 minutes of reorg protection on BTC (~10-min blocks) but only ~15 minutes on LTC (~2.5-min blocks) and ~6 minutes on DOGE (~1-min blocks). Each file now states that 6 blocks is the BTC value and that the delay is calibrated for equivalent ~60-minute protection on each chain (BTC 6 / LTC 24 / DOGE 60 blocks), set via each chain’sSTAKING.ACTIVATION_DELAY_BLOCKSdefault and operator-overridable. Capability staking remains BTC-only, so its delays are correctly stated in BTC blocks; the note distinguishes it from the multi-chain contract-staking actions.xchain-indexer-syncrepository renamed toxchain-syncthroughout the documentation. The service now replicates the decoder database in addition to the indexer database. All REST and WebSocket endpoints gained a/:dbType/path segment — breaking for any external client.
Fixed
components/sync/OPERATIONS.mdandcomponents/hub/ARCHITECTURE.md— documented the client→server and peer-to-peer message shapes that were implemented but absent from the published protocol docs. sync: added the WebSocket{ "type": "heartbeat", "appliedBlock": <number> }message a replicating client sends to report how far it has applied blocks (with itsnull-when-never-reported lag semantics and best-effort, silently-ignored-if-malformed behaviour), plus thePOST /validator-heartbeat/:dbType/:chain/:networkREST fallback and theGET /validator-statusendpoints that surface per-validator lag. A third-party validator or ecosystem replicator following the old docs would omit heartbeats and silently appear stale/disconnected in the status output with no protocol-level error. hub: added an “Envelope Wire Format” and “Message Types” subsection to the P2P Gossip Layer documenting the gossip envelope schema (type/id/sender/timestamp/data/sig), the Ed25519 signature canonicalization (the fixedid,type,sender,timestamp,datakey order withsigexcluded), theidformat, the inbound dedup/rate-limit/relay order, and every gossip message type — theHEARTBEATliveness message, the threeCAPABILITY_ACTIVATED/CAPABILITY_DEACTIVATED/CAPABILITY_SELF_TESTcapability-gossip messages (with theirdatapayloads and the sender-pubkey-match trust rule), and the PBFT / oracle / attestation / cross-chain consensus types that ride the same envelope.components/hub/API.md,components/indexer/OPERATIONS.md, andcomponents/sync/OPERATIONS.md— documented thehealthmonitoring endpoint that each of these three services exposes but whose richer response shape the docs omitted (only the basicpingliveness check was described). A consumer or alerting script that discoveredhealthby inspection had no declared contract for its fields, so any future rename would have silently broken monitoring. The hub’s JSON-RPChealthnow documents all six fields (status,db,dbCircuit, plus the oracle-freshness triooracle_last_finalized_age_s/oracle_stale/oracle_staleness_threshold_s, populated only on oracle-running P2P hubs and overridable viaORACLE_STALENESS_THRESHOLD_S), the 503-on-degraded behaviour, and per-field types/semantics. The indexer’s JSON-RPChealthnow documents its sync-progress and dual-DB circuit-breaker fields (status,running,synced,lastIndexedBlock,decoderBlock,lag,decoderDbCircuit,indexerDbCircuit,error). The sync service’s RESTGET /healthnow documents its per-database circuit-breaker shape (status,mode,databases[],last_updated) and 503-on-open-circuit behaviour. Matches the already-documented decoderhealthendpoint, which served as the formatting model.components/hub/API.mdandcomponents/sync/CONFIGURATION.md— corrected the documentedgetallconfigsresponse shape. Both files showed the hub returning a bare nested config object ({ coin: { network: { ... } } }), but the method actually returns an envelope{ configs, seq, watermark }with the config tree nested underconfigs. A consumer following the old docs would readresult.bitcoin.mainnetand getundefined(the tree is atresult.configs.bitcoin.mainnet). Updated the response examples to the envelope shape, documentedseq(last committed consensus sequence number) andwatermark(epoch-seconds high-water mark of the configs table), and added thesince_updated_atrequest parameter with a delta-polling note: a consumer retainswatermarkand passes it back assince_updated_atto receive only rows changed since the previous poll, while omitting it returns the full tree.protocol/actions/ATTEST.mdanddeveloper-guide/Smart_Contract_Development.md— documented thatcallbackParamsare string-coerced at callback injection. Every element of the suppliedcallbackParamsarray is delivered to the contract callback as a string regardless of its original type (the VM parameter bus is string-typed), so[42, true, null]arrives as['42', 'true', 'null']. The spec’s §Effects sections (both the v1 response and v2 expiry callback paths) and theCALLBACK_PARAMS_JSONPARAMS row now state this; the developer guide’s callback example passes a numeric round id and re-parses it withparseInt, with a dedicated note clarifying this is an inherent property of the string-based wire format, not a recent change. Previously the guide describedcallbackParamsas “an array of strings” in a way that implied original types were preserved, so a contract passing numeric ids or booleans as callback context would silently receive stringified values.protocol/actions/ATTEST.md— the response lifecycle previously described every non-okATTEST v1status as flipping the request toerrored. That contradicted the retry-until-deadline intent: a retryable status (no_quorum,timeout,provider_error) should leave the requestpendingso the responsible set can run another round, with the deadline-expiryATTEST v2path flipping it toexpiredonly if no quorum is ever reached. The lifecycle step and the “Effects on v1” section now distinguish terminal statuses (ok→fulfilled, a genuinely terminal failure such asexpired→errored, callback fires) from retryable statuses (recorded for audit,request_statusleftpending, no callback).- VM gas docs now disclose that indexed
forloops are charged twice per iteration. The gas-metering transform injects a__gas()computation charge at the top of the loop body and a second charge into the update expression (for (…; i++)is metered asfor (…; (__gas(1), i++))), so aforloop of N iterations costs2 × N × VM_COMPUTATION, whereaswhile/do-while/for-in/for-ofloops have no update expression and cost1 × N. The published gas tables described computation as a flat “1 per control-flow point” with no mention of the update-expression charge, so a developer budgeting a gas ceiling from the tables would compute half the true cost of an indexedforloop. Added explanatory notes to the gas tables inconcepts/GAS.md,developer-guide/Smart_Contract_Development.md, andcomponents/vm/CONFIGURATION.md; expanded the out-of-gas troubleshooting cause incomponents/vm/OPERATIONS.md; and made the 2× cost explicit in the metering-injection list incomponents/vm/ARCHITECTURE.md. developer-guide/andgetting-started/Quickstart_Developer.md— everysdk.explorer.*example used an options-object calling style (getToken({ tick }),getBalances({ address }),getHolders({ tick, page, limit }),getHistory({ address, ... }), etc.) thatExplorerClientdoes not accept. The client takes positional arguments throughout —getToken(tick),getBalances(address, opts),getHolders(tick, opts), andgetHistory(query, type, opts)/getDispensers(query, type, opts)/getOrders(query, type, opts)/getSends(query, type, opts)where the{query}/{type}URL segment is required — so a developer copying any snippet received a malformed request or an HTTP 400 (the missingtypepositional broke the URL pattern outright). All affected examples acrossQuery_The_Explorer.md,Build_Your_First_Token.md,Build_A_Dispenser.md,Batch_Operations.md,Integration_Patterns.md,Advanced_Token_Features.md, andQuickstart_Developer.mdnow use the real positional signatures, with eachtypeset to match the example’s intent ('address','token', or'block') per the equivalent REST endpoint shown alongside the snippet. Calls to the non-existentgetActions(...)helper were rewritten to the realgetHistory(query, type, opts)andgetTransaction(query, type)methods.components/sync/— the sync documentation still described xchain-sync as an indexer-only replication service, predating the addition of decoder DB replication.README.mdandARCHITECTURE.mdnow state that the service replicates both the indexer and decoder databases, served under a/:dbType/path namespace (indexerordecoder).OPERATIONS.md— every REST and WebSocket endpoint path now carries the/:dbType/segment (this was a breaking path change; the old segment-less paths return 404), with new sections documenting the decoder response schema (a singleblock_hashin place of the indexer’sledger_hash/actions_hash/contract_hash), the 8-of-9 decoder table set (mempool_transactionsexcluded as non-deterministic), and the HTTP 400 returned by the transparency endpoints fordbType=decoder(decoder data has no synthetic chain-of-state hashes).CONFIGURATION.md— hub discovery, database naming, and replica-schema sections updated to cover decoder databases alongside indexer ones.concepts/GAS.mdanddeveloper-guide/Smart_Contract_Development.md— added the two VM gas constants that were implemented in the indexer chain configs but missing from the published gas docs. The VM Fees table inGAS.mdnow lists Cross-chain read (100 gas, same as a local state read) and Attestation request (5,000 gas, off-chain data request overhead).Smart_Contract_Development.mdpreviously described the cost ofxchain.attestation.requestas onlyVM_EMISSION(500 gas); it now states the full 5,500 gas charge (VM_EMISSION500 +VM_ATTEST_REQUEST5,000), so contract authors no longer underestimate attestation-call cost by 5,000 gas.concepts/GAS.md— corrected the contract execution time limit. The Hard Caps list previously stated a “100ms CPU time limit per execution”, which did not match the engine: gas exhaustion is the primary (sub-second) termination mechanism, and a 30-second wall-clock timeout is a secondary safety net that only fires if gas metering fails to halt execution in real time. Added an Execution Termination section documenting the two-tier model, the rationale for the generous wall-clock value (avoids premature kills on slow hardware), and a note that a contract crafted to burn wall-clock time cheaply in gas terms can hold a single worker for up to 30 seconds perEXECUTE. Now consistent withconcepts/Smart_Contracts.md, which already documented the 30-second safety net.- Removed the obsolete validator/staking
tierfield left over from the pre-capability-staking model.components/hub/API.md—syncvalidatorsrequest andgetvalidatorsresponse validator objects no longer carrytier, with a new note clarifying that capabilities (price,cross_chain,oracle_publish,attestation) are auto-derived from a pubkey’s aggregate stake rather than supplied or returned as a field.components/sdk/EXAMPLES.mdandcomponents/sdk/WORKFLOWS.md—stakeAndDelegate/unstakerecipes now passversion/amount/signingPubkey(the real STAKEVERSION|AMOUNT|SIGNING_PUBKEYformat) instead of the non-existenttier/chainsarguments.components/hub/CONFIGURATION.mdandcomponents/indexer/DATABASE.md—validators,stakes, andunstakestable descriptions updated to match the actual columns (notier). components/indexer/DATABASE.md— finished aligning the staking-table docs with the capability/contract split. Theunstakesrow had described the cooldown as a hardcodedblock_index + 1000; it now reflects that the value is governance-configurable via theSTAKING.COOLDOWN_BLOCKSparameter (1000 is only the default) and that contract-targeted UNSTAKE v1 records live incontract_unstakes, notunstakes. Added a Contract-Staking Tables subsection documentingcontract_stakes,contract_unstakes, andcontract_delegations(multi-chain STAKE v3 / UNSTAKE v1 / DELEGATE v1), with columns matching the actual indexer SQL and a note that these tables share no state with the capability-staking tables and use a per-contract cooldown.components/encoder/Format_Selection.md— corrected the documented P2WSH payload capacity from ~9,956 bytes to 8,192 bytes (table, section heading, and decision flowchart). 8,192 bytes is the effective protocol ceiling enforced by the decoder on decoded ACTION data, not the raw P2WSH script-level capacity, and it applies to every encoding format. The flowchart’s> P2WSHbranch previously implied larger payloads fell through to Multisig; it now reflects that payloads above the ceiling are rejected.components/encoder/README.md— documented thebroadcast_txandget_utxosJSON-RPC methods, which the encoder has always exposed but the API reference omitted (onlycreate_txandpingwere listed). A consumer reading the docs had no declared contract for either method, so any future change to their parameters or response shape would have been a silent breaking change. Added both to the Methods table and added parameter and response subsections:broadcast_txtakestx_hexand returns{ txid };get_utxostakesaddressand returns an array of UTXO objects in the same shape as thecreate_txUTXO Structure. Both propagate the already-documented-32602(missing required param) and-32603(downstream failure) error codes.components/indexer/CONFIGURATION.md— corrected theFEE_PAYMENT_MODEentry. It previously listed non-existent values ('XCHAIN'/'GAS_UNITS') and implied the key drove fee behaviour. Clarified that the key is currently informational only and that fee payment mode is detected implicitly at runtime bydetectFeePaymentMode()in the indexer’ssrc/utility.js(from the transaction’s fee output and coin name), with a note documenting the actual per-chain behaviour ('native'on LTC/DOGE,'xchain'-fallback on BTC).
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, mirroring the depth of the SDK and Explorer doc sets: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—DISPENSER_PREFERENCEfield added to format0(controls who may open a dispenser on the address:1=owner only (default),2=anyone). Examples updated for the new field position; note added that leaving the field blank in a subsequentADDRESSaction preserves the previous non-blank value rather than clearing it.protocol/actions/DISPENSER.md— explicit rules for who may open a dispenser on a non-SOURCEaddress: either the target setsDISPENSER_PREFERENCE=2, or the target is a fresh address (no on-chain activity as ofBLOCK_INDEX − 1).GET_ADDRESS == SOURCEis always allowed.protocol/actions/DISPENSER.md— escrow-routing rules forSWEEP-driven close (escrow →SWEEPDESTINATION) andEXPIRATIONclose with no canceller (escrow →SOURCE).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 (not DOGE-only), hub-aggregated price_snapshots with source_chain column, 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→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↔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: wallet ownership proof via challenge-response signing, session management with configurable re-check intervals, real-time balance invalidation via WebSocket, smart contract-based on-chain gating with example contract, end-to-end music platform example, security considerationsuser-guide/Use_Cases.md— expanded “Access Control and Token-Gated Systems” section with concrete content-gating examples (music, books, video, software, physical access, communities), wallet ownership proof mention, TRANSFER_LOCK guidance, and cross-reference to Integration Patternsdeveloper-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” → MariaDB with full feature descriptionarchitecture/Component_Map.md— hub: LevelDB → 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” → “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” → “Programmable contract layer”concepts/Smart_Contracts.md— VM oracle/cross-chain stubs: “stub until Track B/Phase 4” → “pending VM integration”getting-started/Key_Terms.md— hub: “stores in LevelDB” → “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 → hub)user-guide/CROSS_CHAIN.md— hub: “on a path toward decentralization” → “is a decentralized validator network”user-guide/FAQ.md— hub: “on a path toward decentralization” → “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 matching regtest-miner/decoder pattern: added accurate CLI commands (17 commands with syntax), configuration system (two-layer config, 40+ env vars, naming conventions, internal constants), architecture diagram with source file table (21 files), runtime directory structure, Features (17 items), Scripts (14 npm commands), Dependencies (Runtime + Development), Quick Start, Related links; corrected container naming pattern, removed non-existent commands, removed 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 matching indexer/decoder pattern: added Features (16 items), Documentation table, Installation, Quick Start with startup sequence, Scripts (20 commands), Dependencies (Runtime + Development), 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 → 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 → 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→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→action links, removedcontract_balances)
Removed
contract_balancesreferences from indexer DATABASE.md, LEDGER.md, and ARCHITECTURE.md (contracts use standardbalancestable via derived addresses)DEPLOY→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 protocol quick-reference (claude/PROTOCOL.md) 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/→protocol/actions/ - Moved
indexer/→components/indexer/ - Moved
sdk/→components/sdk/ - Moved
Token_Information_Standard.mdandDatabase_Naming_Structure.md→protocol/ - Moved
json/→protocol/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