Skip to content

docs(prl): sPRL2 v2, staking per chain, rewards on Base, MCP 1.4 and the end of the MIMO migration - #34

Merged
JeanBrasse merged 7 commits into
mainfrom
docs/prl-mcp-latest
Oct 5, 2026
Merged

JeanBrasse merged 7 commits into
mainfrom
docs/prl-mcp-latest

Conversation

@JeanBrasse

@JeanBrasse JeanBrasse commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Brings the PRL, staking, MCP server and protocol-fact pages up to date with Parallel's latest releases. The x402 pages are left to #33, and the four files of #32 are not touched.

Every fact below was checked on 2 October 2026 against the governance record, the chain (read-only calls through public RPCs), the public parallel-tokenomics repository, the published npm packages and the app's staking pages. The hosted MCP server was only asked for its version and tool list (initialize, tools/list): no tool was called, and the facilitator was not called.

Staking: sPRL2 v2, chains, sunset

What changed in the protocol. PIP-68 (Tokenomics v2.1, adopted 20 May 2026) replaced the first sPRL2 vault, which staked the pool token on Aura, with an sPRL2 v2 vault that holds the 80PRL/20WETH Balancer V3 pool token itself, on Ethereum and Base. It also sunset sPRL1 on Polygon PoS and Sonic, and moved the stakers' distribution from PAR on Polygon to USDp on Base.

Read on-chain on 2 October 2026:

Vault Chain symbol() paused() timeLockDuration() startPenaltyPercentage() feeReceiver()
sPRL1 0xeAd7…5901 Ethereum sPRL1 false 28 days 50% 0x…dEaD
sPRL1 0x01fA…2E48 Base sPRL1 false 28 days 50% 0xC520…2C95
sPRL1 0xDB7B…9475 Polygon sPRL1 false 1 day 0% 0x2046…c32a
sPRL1 0x7Df7…2811 Sonic sPRL1 false 1 day 0% 0xC520…2C95
sPRL2 v1 0xE8A2…2135 Ethereum sPRL2 true 1 day 0% 0x25Fc…6F9b
sPRL2 v2 0xa13B…7A4B Ethereum sPRL2V2 false 28 days 50% 0x25Fc…6F9b
sPRL2 v2 0xB22f…0e24 Base sPRL2V2 false 28 days 50% 0xC520…2C95

The two v2 vaults take the Balancer V3 pools 0x1846…ce7c (Ethereum) and 0x19e3…0bb5 (Base) as underlying(), the same pools @parallel-protocol/chains 0.5.0 lists in BPT_POOL_IDS. The Polygon and Sonic contracts are not paused: the sunset is enforced by the app, which shows "You can no longer stake PRL here, but you can still unstake and withdraw your existing position", and by the MCP server (CHAIN_SUNSET), so the pages say "no new stakes", not "paused". The 28-day cooldown of the active vaults is unchanged.

Where the early-exit penalty goes. Each vault sends it to its feeReceiver(). On Ethereum, the sPRL1 vault, which holds 93.6 million sPRL1 (about 90% of all sPRL1), sends it to the dead address 0x000000000000000000000000000000000000dEaD, so it is burned, in PRL. The six other vaults send it to the "Protocol & DAO Treasury" multisig of their chain, as listed on the DAO Multisigs page (0x25Fc…6F9b on Ethereum, 0xC520…2C95 on Base and Sonic, 0x2046…c32a on Polygon). Eight passages on six pages said the penalty always went to the DAO Treasury; they now say what the chain does, and will follow if a fee receiver changes.

The paused v1 vault and Aura, read on 2 October 2026 (Ethereum block 26,104,115):

  • The v1 vault holds no BPT itself. Its 157,000.12 BPT (156,998.12 sPRL2, plus 2 in withdrawal requests) are credited to it in Aura's reward pool 0x486B…9da4, of which it is the only depositor, and sit in Aura's Booster 0xA57b…B234.
  • Aura has shut that pool down: the Booster reports isShutdown() = true, pool 258 reports shutdown = true, and the Balancer gauge holds no BPT.
  • The exit still works. An eth_call of emergencyWithdraw, the call sPRL2Migrator.migrate makes, succeeds for an address given 1,000 v1 sPRL2 by a state override, and reverts without it.

Pages:

  • governance/.../tokenomics/staking-mechanisms.mdx, governance/sprl.mdx (near-identical text, both updated): sPRL1 takes new stakes on Ethereum and Base; Polygon and Sonic are being sunset, unstake and withdraw only, with a one-day cooldown and no penalty; sPRL2 v2 on Ethereum and Base, without Aura; the paused v1 vault moves to v2 through the sPRL2Migrator, with one migration call after an approval, which the app does on its Stake Legacy page; the penalty's destination, as above. sprl.mdx also gets the missing link of "follow this guide".
  • resources/user-guides/stake-prl.mdx, matched against the app's Stake and Stake Legacy pages:
    • the comparison table, where you can stake, and the sunset chains;
    • sPRL1: the app asks for a permit signature (Sign Permit), or an approval from a smart-contract wallet, then Stake PRL;
    • sPRL2: the pool token goes through the Stake BPT action (Approve BPT, Stake BPT); the Stake action is the PRL + ETH path, where the vault adds both tokens to the pool proportionally and returns the rest, so the "single asset" warning no longer applied;
    • a new section, "Legacy sPRL2 and PAR rewards", for the app's Stake Legacy page: the migration from the first vault (Approve sPRL2, then Migrate sPRL2, after Cancel Unstake if an unstake is pending) and the PAR claims on Polygon PoS;
    • rewards in USDp on Base: the Stake page's Available Rewards card covers Base only, while the MCP claim_rewards tool builds the Base claim plus the Polygon one in one call;
    • the claim window (see below), the penalty's destination, the Aura paragraph removed, and the info block that said the tokenomics pages were outdated removed.
  • resources/factsheets/prl.mdx: Staking, Fee share and Migration rows, the distributor on Base, the claim window, and the MCP line (the "live on 5 chains" figure did not match any count of the server).
  • security/risks.mdx, section 7, its FAQ entry and line 87 only, away from the hunks of docs(x402): the settle token, one settlement per payment, metered payments, x402-fetch 0.3.0, x402 0.8.1 and CLI 0.4.1 #33: the sPRL2 exposure describes the v2 vault, and adds that sPRL2 left in the paused v1 vault keeps its BPT deposited in Aura, which has shut down its pool, until it is migrated or withdrawn; the claim window (see below); the penalty's destination; the audit list adds sPRL2 v2.
  • products/parallel-v3/fees.mdx: the "PRL staking" row named the DAO Treasury as the penalty's destination; it now gives both destinations.
  • src/data/prl-addresses.ts: labels only. Base sPRL2 becomes sPRL2 (v2), Polygon and Sonic sPRL1 (sunset, unstake only), the Polygon RewardMerkleDistributor (PAR, legacy epochs), since its epochs are still claimable. No address changed; the chain count of the markdown exports does not depend on these names.

Sources: PIP-68 on Snapshot (parallel-protocol.eth, proposal 0x5320768e…); the chain reads above; parallel-tokenomics on main (sPRL2.sol) and dev (sPRL2V2.sol, sPRL2Migrator.sol); @parallel-protocol/chains 0.5.0 on npm (SPRL2_CHAIN_ADDRESSES, SPRL1_CHAIN_ADDRESSES, BPT_POOL_IDS); the app at app.parallel.best, its Stake and Stake Legacy pages.

Rewards and fee shares

Read on-chain on 2 October 2026:

  • RewardMerkleDistributor on Base 0x13E8…A96B: TOKEN() is USDp; one epoch published, claimable from 5 September 2026 to 5 September 2027 (365 days). Re-read on 4 October 2026: epoch 2, starting 4 October 2026, also carries 365 days.
  • RewardMerkleDistributor on Polygon 0x7b54…0C72: TOKEN() is PAR; 14 epochs published from June 2025 to July 2026, each claimable for 365 days (epochs 1 to 5 have expired).
  • On both, expiredRewardsRecipient is the Protocol & DAO Treasury multisig (0xC520…2C95 on Base, 0x2046…c32a on Polygon).

The claim window. PIP-68 (section V) reduces it from 12 epochs to 6. On-chain, the keeper sets each epoch's window when it publishes the epoch (expiryTime), and every epoch published so far carries 365 days; both deployed distributors refuse to change an epoch once it has started (EpochCantBeUpdated), so those windows hold. The pages give both facts without a date, so they stay true as epochs are published: each window is set on-chain when the epoch is published, PIP-68 sets 6 epochs as the target, every epoch published so far carries 365 days, and claiming within six epochs is safe. The five pages that still said "12 epochs" are fixed: both fee-distribution pages, the PRL factsheet, the staking guide (rewards and FAQ) and the risks page.

Pages:

  • governance/.../tokenomics/fee-distribution.mdx: rewritten after PIP-68. The stakers' share, 15% of Parallel V2 revenue, goes through the DAO Keeper Multisig, is swapped to USDp, bridged to Base and distributed there; the PAR epochs stay claimable on Polygon until their window ends. The claim window, as above. An info block says that an epoch can distribute nothing, since PGP-42 (adopted 18 May 2026) redirected the stakers' share to PRL buybacks and burns for three months.
  • products/.../usdp-and-susdp/fee-distribution.mdx: the stakers' share section no longer calls the 15% "indicative". It is 15% of Parallel V2 revenue (PIP-68, PGP-42), and the fees of the USDp codebase follow the 90% / 10% split, which is unchanged everywhere. The claim window, as above. The treasury section says that the 10% share funds the DAO Treasury, and only where the early-unstake penalties go: to the Protocol & DAO Treasury multisig of their chain, except on Ethereum's sPRL1 vault, where they are burned.
  • governance/.../tokenomics/paraboost.mdx: v2.1 shipped and kept the same ParaBoost rules, so the page no longer announces a fuller ParaBoost "with v2.1".
  • governance/.../tokenomics/epoch-concept.mdx: EPOCH_LENGTH (28 days) is only used to refuse a merkle drop whose claim window is shorter than 28 days (updateMerkleDrop). It does not bound the time between two epochs, as docs(prl): correct the epoch length, the unstaking cooldown and the chain count #28 wrote. The calendar-month epoch and the 28-day cooldown are unchanged.

Fees, checked across the site: the 90% / 10% savings fee share and the 0.10% yield-bearing burn fee read the same on every page; no 0.05% burn fee and no 70% savings share remain.

MCP server 1.4 and CLI 0.4

Pages:

  • agents/mcp/tools.mdx:
    • every tool carries MCP annotations (readOnlyHint: true on reads, false on transaction builders, none destructive);
    • get_protocol_parameters answers JSON, with savingsFeeShare;
    • get_savings_rate has feeShare, null when the on-chain read fails;
    • the staking tools work per chain: stake on Ethereum or Base, unstake on the chain of the position, CHAIN_SUNSET and STAKING_SUNSET on Polygon and Sonic;
    • claim_rewards claims on Base, plus Polygon for the legacy epochs;
    • get_staking_info shows the v1 balance left to migrate, and sprl2.auraRewards is no longer listed;
    • aprNote comes with every staking APR;
    • prepare_convert_and_pay only targets collaterals that support EIP-3009.
  • agents/mcp/transactions.mdx: the STAKING_SUNSET warning.
  • agents/cli/commands.mdx, staking section only: --chain on stake and unstake, the BPT and PRL + WETH paths, claim on Base plus Polygon. The pay section and the error table are left to docs(x402): the settle token, one settlement per payment, metered payments, x402-fetch 0.3.0, x402 0.8.1 and CLI 0.4.1 #33.
  • resources/factsheets/usdp.mdx, resources/factsheets/susdp.mdx: the MCP line drops "live on 5 chains", like the PRL factsheet, and the sUSDp one adds withdrawals, which withdraw_savings builds.

The tool count stays 36: the hosted server, version 1.4.1, lists 36 tools, each with annotations (25 readOnlyHint: true, 11 false, none destructive).

Sources: the hosted MCP server at mcp.parallel.best, version 1.4.1 (its tools/list: names, descriptions, annotations); the README of @parallel-protocol/cli 0.4.1 on npm (staking per chain, --weth-amount, claims on Base plus Polygon).

MIMO to PRL: the migration ended on 15 April 2026

The docs said the migration closed on 1 August 2026 under PIP-61. Two votes were involved. PIP-61, adopted in January 2026, set the end at 1 August 2026. PIP-65, adopted on 1 April 2026, brought it forward to 15 April 2026. The PrincipalMigrationContract on Ethereum emitted Paused on 15 April 2026 at 13:15:59 UTC (block 24,885,452, tx 0x783e8199…eb84), and it holds no PRL today. The app no longer has a Migrate page: /migrate answers 404.

Pages:

  • governance/.../mimo-to-prl-migration.mdx: both votes, the closing date, and the app's Migrate page removed. The blog guide stays linked for reference, with the warning that it describes the removed page and the earlier date.
  • resources/user-guides.mdx and src/sidebar.generated.ts: the user guides no longer list the blog how-to, which tells readers to click "Migrate" in the app. The "Closed" entry points at the history page instead. The sidebar was edited by hand; pnpm generate:sidebar was not run.
  • resources/factsheets/prl.mdx, products/parallel-v3/index.mdx: the date.
  • developers-hub/parallel-governance-token-prl/index.mdx: a note that the migration contracts are described for reference.

Sources: PIP-61 (0xd2490b4a…) and PIP-65 (0x448ddbf9…) on Snapshot; the Paused log and balanceOf on Ethereum; app.parallel.best/migrate.

Developer pages

  • developers-hub/.../tokenomics/contracts.mdx:
    • sPRL2 v1 is marked paused, and its signatures are fixed (depositBPT, withdrawBPT(_requestIds, _maxAcceptablePenalty), withdrawPRLAndWeth(…, _maxPenaltyPercentage));
    • sPRL1 withdraw takes _maxAcceptablePenalty;
    • new sections for sPRL2V2 and sPRL2Migrator;
    • the distributor's function is claims(...), not claim(...), and it now pays out on Base;
    • the side-chain fee contract links contracts/fees/SideChainFeeCollector.sol, the file that exists; the old link, SideChainFeeDistributor.sol, answered 404. The page notes the contract's name in the code.
  • developers-hub/.../tokenomics/key-operations-flows.mdx: the sPRL2 flows follow the v2 vault (no Aura step), plus a v1-to-v2 migration flow. The sPRL1 penalty is sent to the fee receiver in PRL; it was described as minting sPRL1.
  • developers-hub/.../tokenomics/index.mdx: the overview.

Sources: parallel-tokenomics main (deployed sPRL1, sPRL2 v1, RewardMerkleDistributor, SideChainFeeCollector) and dev (sPRL2V2, migrator, the TimeLockPenaltyERC20 with recoverERC20); the function selectors, found in the deployed bytecode.

Contract tables: no explorer link on Fantom

ftmscan.com no longer resolves, so every Fantom row of the contract tables linked to a dead domain. Other explorers were tried on the two Fantom addresses of the PRL page, which both hold contract code on Fantom: the official Fantom explorer shows no transaction for the AccessManager, OKLink and OKX find no record of the migration contract, Routescan shows another chain's contract at the same address, and DexGuru answers a bot check. None shows both reliably, so EXPLORERS.fantom is now null (src/lib/chains.ts) and ContractTable renders the address and its copy button without a link when a chain has no explorer. This applies to the Fantom tables of the PRL, PAR and deprecated MIMO address pages. Two tests cover it. The DAO Multisigs, DAO Treasury and PAR product pages wrote their Fantom links by hand; they now show the same addresses without a link.

Audits

security/audits.mdx adds the Bail Security sPRL2V2 final report (June 2026). PIP-68 committed to publishing it in the documentation. The link points at parallel-tokenomics dev, the only branch that holds it, and answers 200, like the two contract links.

Verification (head ce99382)

The last commit removes the date from the claim-window sentences and fixes the PAR addresses page's description, which promised an explorer link on Fantom. At ce99382: offline build passes (333 files, 163 pages, sitemap 159 URLs), 350 tests pass, typecheck passes, and the six changed pages have no broken link or anchor; merges in memory with #32 (7d2f299) and #33 (33e04cf) have no conflict. The checks below were run at 54028d6.

  • pnpm build, offline (network blocked): passes, 333 files, 163 pages, sitemap 159 URLs. The share cards are not regenerated offline, since their display font is downloaded; the pages keep the static card.
  • pnpm test, offline: 350 passed (32 files), including the two tests for the Fantom tables.
  • pnpm typecheck: passes.
  • pnpm lint: 89 errors and 1 warning, unchanged from the previous heads. Biome does not check MDX; the TypeScript files this PR changes add no finding (chains.test.ts keeps its format error from main).
  • Links and anchors of the build: 167 HTML files, 10,279 internal links, 907 of them with an anchor. None is broken on the 29 pages this PR changes or re-renders; the only broken ones are on /products/parallel-v2 (see "Not changed").
  • External links of those 29 pages: 240 distinct. The 19 on parallel.best domains were not requested. Of the other 221, 207 answer 200, two of them on a one-at-a-time retry after a rate limit. The rest predate this PR: Arbiscan, Optimism's Etherscan, BscScan, Berascan and PolygonScan answer 403 to scripts (11 links), beets.fi and LayerZero Scan 429, and seitrace.com, the Sei explorer, 521, its server being down at the time.
  • Build output swept: "12 epochs" appears only as "from 12 epochs to 6"; "1 August 2026" only in the history of the migration page; Aura is mentioned for sPRL2 only to describe the paused v1; no "formatted summary" and no "How to Migrate to PRL?" entry remain; no ftmscan.com link remains, and the only contract tables without an explorer link are the Fantom ones of the PRL, PAR and deprecated MIMO address pages.
  • Merges in memory (git merge-tree) with docs(x402): the settle token, one settlement per payment, metered payments, x402-fetch 0.3.0, x402 0.8.1 and CLI 0.4.1 #33 (60e0b2b) and docs(x402): settle token, settle failure reasons and the new error codes (BAC-381) #32 (5a5196a): no conflict.

Round: the cooldown per chain (22b99f1)

main moved (#36 and #37 merged, f2ee2d7), so it is merged into the branch (22d14a8, no conflict). Then one commit ties each cooldown to its chains: 28 days, with the early-exit penalty, on Ethereum and Base; one day, without penalty, on the sunset Polygon and Sonic sPRL1 deployments (PIP-68, and the vaults' timeLockDuration and startPenaltyPercentage above).

  • resources/factsheets/prl.mdx, the Staking row: it named Polygon and Sonic, then gave a 28-day cooldown and a 50% penalty for all. It now reads: "Unstaking has a separate, fixed cooldown: 28 days on Ethereum and Base, where leaving early costs a penalty that starts at 50% and decays linearly, and one day, without penalty, on the sunset Polygon and Sonic deployments."
  • The general "28-day cooldown" sentences now say "on Ethereum and Base": epoch-concept, staking-mechanisms and sprl (with the one-day cooldown in brackets), fees, user-guides, stake-prl (description, table, steps, early exit, FAQ) and risks (table, early-unstake penalty, FAQ).
  • The sentences on sPRL2 keep "28-day" alone: sPRL2 v2 runs on Ethereum and Base only.

Checks at 22b99f1:

Not changed

  • The burn fee of sUSDe on Ethereum still reads 0.05% on-chain (getCollateralBurnFees, 2 October); sfrxUSD reads 0.10%. The pages keep 0.10% on all five legs, as merged in docs(fees): set the yield-bearing burn fee to 0.10% #29.
  • The exclusion of sunset balances from the distribution is written as PIP-68's rule: it is applied by the keeper and cannot be checked on-chain.
  • The tokenomics figures hotlinked from lh7-rt.googleusercontent.com (5 pages) are refused by browsers and by plain requests. The problem predates this PR, and the figures are left as they are.
  • Broken links outside this PR: /products/parallel-v2 links PAR and paUSD to two old docs URLs, /parallel-protocol/parallel-v2/par and /par-1, which answer 404.

🤖 Generated with Claude Code

…the migration's end

- Staking: the sPRL2 v2 vaults on Ethereum and Base hold the pool token
  without Aura, and the paused v1 vault moves to v2 through the
  sPRL2Migrator. sPRL1 takes new stakes on Ethereum and Base; Polygon and
  Sonic are unstake-only (PIP-68).
- Rewards: the stakers' share, 15% of Parallel V2 revenue, is paid in USDp
  and claimed on Base; the legacy epochs stay claimable in PAR on Polygon.
- MCP server 1.4.0/1.4.1 and CLI 0.4.0: staking per chain, aprNote,
  readOnlyHint annotations, get_protocol_parameters in JSON, a nullable
  feeShare, prepare_convert_and_pay for EIP-3009 collaterals only.
- MIMO to PRL: PIP-65 ended the migration on 15 April 2026, not on
  1 August; the user guides no longer point at the app's removed Migrate
  page.
- Developer pages: sPRL2V2 and sPRL2Migrator, the real withdraw and claims
  signatures, and what EPOCH_LENGTH actually bounds.
- Audits: the Bail Security sPRL2V2 report (June 2026).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
docs-parallel Ready Ready Preview Oct 4, 2026 6:50pm UTC
parallel-docs Ready Ready Preview Oct 4, 2026 6:50pm UTC

- Claim window: PIP-68 reduces it from 12 epochs to 6, but the epochs
  published by 2 October 2026 carry a 365-day window on-chain (on Base,
  the epoch of 5 September 2026; on Polygon PoS, the PAR epochs). Five
  pages still said 12 epochs; they now give both facts and advise
  claiming within six epochs.
- Risks: sPRL2 left in the paused v1 vault keeps its BPT deposited in
  Aura, which has shut down its pool for it, until it is migrated to v2
  or withdrawn.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dead Fantom links

- Early-exit penalty: Ethereum's sPRL1 vault sends it to 0x...dEaD, so
  it is burned; the six other staking vaults send it to the Protocol &
  DAO Treasury multisig of their chain (each vault's feeReceiver, read
  on 2 October 2026). Eight passages on six pages said it always went
  to the DAO Treasury.
- Staking guide: the Stake Legacy page, where the first sPRL2 vault is
  migrated and PAR is claimed on Polygon PoS; the Stake page's
  Available Rewards card covers Base only, while the MCP claim_rewards
  tool covers both chains; the migration is an approval then one
  migrate call, after cancelling a pending unstake; Stake BPT for the
  pool token, and Sign Permit then Stake PRL for sPRL1.
- Governance pages: the v1 migration is one call after an approval.
- USDp and sUSDp factsheets: drop the "live on 5 chains" MCP figure.
- contracts.mdx: link SideChainFeeCollector.sol, the file that exists.
- Contract tables: no explorer link on Fantom. ftmscan.com no longer
  resolves and no other explorer shows the listed contracts reliably;
  the addresses and copy buttons stay.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- USDp fee distribution: the 10% share funds the DAO Treasury, and the
  early-unstake penalties go to the Protocol & DAO Treasury multisig of
  their chain, except on Ethereum's sPRL1 vault, where they are burned.
  The sentence said the penalties funded the treasury alongside the
  10% share, which is more than the chain shows.
- DAO Multisigs, DAO Treasury and PAR pages: the Fantom addresses stay,
  without their ftmscan.com links; the domain no longer resolves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Claim window: each epoch's window is set on-chain when the epoch is
  published; PIP-68 sets 6 epochs as the target, and every epoch
  published so far, on Base and Polygon PoS, carries 365 days. The
  sentences no longer tie the 365-day window to a date, which wrongly
  suggested later epochs use 6 epochs.
- PAR addresses page: the description no longer promises an explorer
  link on Fantom.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
JeanBrasse and others added 2 commits October 5, 2026 06:49
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 28-day unstaking cooldown and its early-exit penalty apply to the
open vaults on Ethereum and Base. On the sunset Polygon and Sonic sPRL1
deployments, unstaking takes one day, without penalty (PIP-68, and
on-chain).

- PRL factsheet: the Staking row gave 28 days for every chain, right after
  naming Polygon and Sonic; each duration is now tied to its chains.
- Epoch concept, staking mechanisms, sPRL, fees, user guides, the staking
  guide and risks: the general "28-day cooldown" sentences now say
  "on Ethereum and Base", and give the one-day cooldown where they cover
  every chain.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JeanBrasse
JeanBrasse merged commit e237f17 into main Oct 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant