Kleros Development Update April 2026

Kleros Development Update April 2026

šŸ“‹ April 2026 Summary

  • Atlas shipped two releases this month: v1.5.0 and v1.5.1. PoH V2 email notifications went live, the auto-advance execute pipeline was rewritten, the Node.js base image was upgraded across services, and Volta was pinned to a specific Node version. Architecture documentation was substantially rewritten.
  • Court V1 shipped wallet popup fixes, a network switch modal that works without a connected wallet, March staking rewards, and an APY calculation correction using adjusted KLEROS supply.
  • Governor V2 merged a complete Foundry test suite for KlerosGovernor, replacing the previous test setup.
  • Vea redeployed VeaShi after a dependency upgrade, merged deBridge adapter support, and opened a refactor that decouples the Hashi executor from the relayer.
  • Scout redesigned the home hero, added a "show more" button on the recent activity section, fixed the IPFS-related issue where one bad item could block others from rendering, fixed the challenge date display, and added item key fallbacks to handle Envio indexing ahead of Filebase. A large feedback PR introducing dedicated submission and transaction-result pages, a file viewer, last-policy-update display, and migration to BrowserRouter is open for review.
  • GTCR Indexer added challenge transaction hashes, challenge dates, and appeal transaction hashes to the schema, then shipped a follow-up type-error fix. v0.1.7 was released.
  • Kleros Foresight has the RealT property market and a Futarchy markets factory both open as PRs against master, with a chart fix for closing markets at end time landed.
  • Cross-Chain Realitio Proxy went through a sequence of seven Dependabot bumps across the npm/yarn dependency group.
  • Website updated the treasury report with March data.
  • Court V2 contracts: internal review completed, with findings now in triage. The partial-coherence dispute kit is in review.

Now let's dive into product-by-product updates made in April.

Court V1

Court V1 spent the first week of April cleaning up wallet-side rough edges. Two bug fixes landed for wallet UX. The first one prevented unnecessary wallet popups in the Cases component. The second one made the "switch to mainnet" modal work without a connected wallet, wrapping the cases page RequiredChainIdGateway and integrating it RequiredChainIdModal into the Cases component for cleaner network handling and making the modal closable.

On the rewards side, March staking rewards were added to the rewards exporter early in the month. A few days later, an APY calculation correction landed, switching the calculation to use the adjusted KLEROS supply for an accurate APY display.

āš–ļø Kleros Court →

Court V2

Court V2 contracts moved through internal review during April. By the end of the month, the review was completed, and findings were in triage, with further attempts to exploit being investigated. The partial-coherence dispute kit is in review. Ongoing work on adding type checking and updating the ESLint configuration across the repo.

On the contracts side, Governor V2 received a full Foundry test suite. The PR added 1,820 lines of test code across 15 files, covering the KlerosGovernor contract end-to-end, including handling of the pre-seeded dummy entry at submissions[0] that reserves listID 0 for the "Refuse to Arbitrate" slot in the dispute template. The @zksync/contracts unpublished package was also resolved to a null package as part of the same cleanup. The v2 contracts package was bumped to ^2.0.0-rc.2, which uses the new 3-parameter DisputeRequest signature.

Research on the feasibility of integrating ERC-8183 Agentic Commerce is in progress, alongside an ongoing specification update.

šŸ› ļø Try Court V2 Devnet →

Scout

Scout had a busy month on the frontend. The home hero was redesigned with refined typography, restored partner labels, a centered partner section, updated copy, and styling adjustments. OpenScan and RouteScan partner integrations were included in the redesign.

A round of fixes followed. The previous-policies fix and item key fallback PR added fallbacks so the UI no longer breaks when item keys are missing, introduced a "show more" button in the recent activity section on the homepage, and stopped the latest cases section from stretching against the recent activity section. A small visual flash when clicking "show more" was also fixed.

A separate fix prevented bad items from blocking good items from showing up. A challenge date display bug was fixed, and profile page fallbacks were added so the same fallback logic from the listing pages applied to profile pages too. The item key fallbacks were added because Envio occasionally indexed faster than Filebase, causing temporary delays.

A large feedback PR is open with 3,077 line additions across 60 files. It introduces a dedicated new-submission page and a dedicated transaction-result page (replacing the modals previously used), a file viewer, a policy history display showing the last time the policy was updated, code abstraction and reorganization, CPU-usage improvements, and migration to BrowserRouter.

šŸ” Open Scout →

GTCR Indexer

The GTCR Indexer schema was extended in April. Transaction hashes for challenges and appeals, plus challenge timestamps were added to the indexer. The Envio branch received the same change. A type-error fix followed, and was also propagated to the Envio branch. Version 0.1.7 was tagged.

Atlas (Backend Services)

Atlas had its largest month of the year so far, with two releases shipping back-to-back: v1.5.0 and v1.5.1.

The headline feature in v1.5.0 was PoH V2 notifications. The PR added 2,234 lines across 33 files, wiring up email notifications for PoH V2 events, including pending-revoke, vouched, and disputed flows, with assets and templates updated to match. A guard for "vouch added" notifications was discussed for cases where a profile is already under review, with a separate issue planned for additional guards to keep the current notification rollout simple to validate on the testnet.

The auto-advance execute pipeline was rewritten for PoH V2, with 2,324 line additions and 1,254 deletions across 28 files. As part of this, an index_gte filter was added to the AdvanceCandidates query to skip legacy profiles, and a PoHv2 keeper was disabled in the example env to keep schema generation working.

A separate yParity off-chain vouches PR added an execute-query filter and updated handling for the new viem signature struct, which now uses yParity instead of v as the recovery ID. The HumanityEvent schema types were added and the execute query filter was kept.

On the infrastructure side, the Node.js base image was upgraded and Volta was pinned to Node 24.14.1 with engines set to ^24.14.0. The log forwarder ordering bug was fixed. A scheduler retry resolution restored the recursive retry pattern to preserve the promise chain, which had been silently dangling. The IPFS client timeout was raised from 5 to 10 seconds. A SIWE login mock was added to avoid live RPC calls in unit tests. The API now uses RPC providers from env-vars in production, addressing the SIWE authentication issue caused by RPC providers being injected at build time rather than at runtime.

A data stream debug logging upgrade added contract details and block range to the debug logs. Improved logging for actual notified users made it easier to track who was notified versus who was scheduled. The Court V1 getCaseTitle helper was extracted to its own file. A fix for the SendGrid integration test added support for signature validation in the email-status-checker tests. A lint tolerance fix brought the local config in line with CI by disallowing warnings, and a Curate V1 bot logging fix added stack and chainId to logs. An ECR image-tag parsing fix in the build-push workflow used JSON output with jq.

The architecture documentation was substantially rewritten, with 1,187 additions and 677 deletions across 18 files, and module-level documentation was added throughout.

v1.5.1 followed quickly as a patch release.

šŸ’”
Note: Atlas remains an internal backend library for Kleros development teams only and is not intended for community use or integration.

Vea (Cross-Chain Bridge)

April was a month of bridge expansion. The VeaShi redeployment after a dependency upgrade was merged early in the month, including chiado and Story-route redeployments.

The headline change was deBridge adapter support, it added the deBridge Adapter, Reporter, Flags, and related interfaces under veashi-contracts, deployment scripts under veashi-contracts/script/deBridge, and SDK address files. Records of contract addresses immediately after deployment serve as recovery checkpoints, so if setFee or prefunding fails, the script can resume manually without redeploying.

A separate refactor decoupling the Hashi executor is open. It splits message indexing from execution, introduces state-file logic in relayer-cli/src/utils/hashi.ts and hashiHelpers/stateFile.ts for storing pending messages that don't yet meet the Hashi threshold, and adds retry/cleanup logic for messages that never reach the threshold within a window. New tests were added, and Hashi state management was removed from the relayer logic.

The Kelp/LayerZero 1-of-1 DVN incident was investigated during the same month.

šŸŒ‰ Vea →

Learn more and explore the Vea repository.

Kleros Foresight (Futarchy UI)

A new UI for Foresight is in the works. In parallel, a Futarchy Factory is being developed to streamline the deployment of futarchy experiments.

Notification specifications for Foresight are also in discussion.

šŸ”® Try Kleros Foresight →

Proof of Humanity V2

The month closed with PoH V2 email notifications going live in Atlas. On the frontend side, the dashboard now wires Foresight credits and trades, video processing is in progress, and keeper bot improvements continue. Various general frontend improvements were made.

šŸ‘¤ Register on Proof of Humanity →

Cross-Chain Realitio Proxy

The cross-chain Realitio proxy went through a chain of Dependabot updates during the month, all in the npm/yarn group across multiple directories: #101, #102, #103, #104, #105, #106, #107, and #108. Most were superseded by subsequent batches as the dependency tree shifted.

Kleros Website

March treasury data was added to the website early in the month.

Security & Infrastructure

The V2 contracts internal review wrapped up in April, with findings now in triage. Reviewers worked through the dev branch and on-paper review tracks set up in March.

The Kelp/LayerZero 1-of-1 DVN incident raised a broader question about single-DVN deployments given that LayerZero's core security feature is multiple custom DVNs. The incident was studied for what it meant for Vea's own validator setup.

A high-usage Alchemy API key on Sepolia was investigated after it started impacting production bots.

What's Next

The Futarchy Factory and the new Foresight UI continue in development. Notification specifications for Foresight are being worked out with the Atlas-side architecture in mind. PoH V2 keeper improvements continue.

The Court V2 contract findings from the internal review are being triaged, and further exploit attempts are being explored against the open issues. The research on the feasibility of integrating ERC-8183 Agentic Commerce and the V2 specification update are both in progress.

Scout's large feedback PR is staged for review, alongside the Mintlify documentation review and the Enterprise knowledge base.

Join the Kleros Community!