Kleros Development Update January 2026
January 2026 Summary
- Atlas v1.2.0 shipped Court V1 notification suite is live. Jurors get emails for vote reminders, dispute outcomes, appeals, and appealable disputes.
- Court V2 audit responses submitted to Certora. Frontend profile page merged, commit logic extracted from UI for testability, E2E test infra in progress.
- Escrow V2 migrated to Tailwind + UI components v3. USDT whitelisted (not supported in V1), fixed a decimal assumption bug that broke non-18-decimal tokens.
- Vea's Hashi executor is now chain-agnostic. Arbitrum-to-Story bridge route deployed and tested successfully.
- Proof of Humanity V2 PNK airdrop live for first 10,000 humans. New dashboard for registrations and airdrop claims, cross-chain UX improvements, and auto-relay bot in development.
- Stake Curate Stake Curate launches with its first use case: Battle-Tested DeFi Vaults.
Now let's dive deep into product-by-product updates made in January.
Court V2
Contract audit responses and remediations were submitted to Certora by the end of the month. On the frontend, the new profile page was finished and merged in the first half of January. The commit process logic was extracted from UI components, establishing clearer boundaries and making the code testable in isolation. E2E test setup is in progress, exploring options like mocking Atlas API calls and running tests on a forked network via Tenderly.
The frontend was updated to handle changes in the Shutter DK, whichjustificationCommit is now being supplied. A staking bug on the V2 devnet caused by a React hook violation was identified and fixed. Translation PRs for Spanish and French were merged into devnet, the local stack deployment was revived for better DX, and planning started on improving the notification unsubscribe flow across apps. The Keeper Bot was also flagged for updates to handle changes in the draw function.
Explore the V2 devnet — the new profile page.
Court V1
Court V1 saw several important updates this month. The biggest was the Atlas API integration for notifications, which connected Court V1's frontend to the new Atlas notification backend and replaced the old notification system. The user settings migration to Atlas was completed as part of this effort.
A hotfix was shipped for Governor dispute 1672, which had an old RPC reference preventing it from loading properly. Omnibridge references and redirects were cleaned out of the codebase after the bridge was deprecated, and December staking rewards were added. Dark mode development also kicked off at the end of the month, landing in early February.
Notifications are live — check your Court V1
Escrow V2
Escrow V2 went through a substantial modernization push. The migration to the Tailwind CSS + UI component library v3 was completed and merged; a major frontend overhaul. On the subgraph side, Goldsky tooling was added for indexing, and a subgraph status banner toggle was introduced via environment variables so the team can hide it when The Graph reports incorrect status. The devnet subgraph was redeployed using the new Goldsky setup.
USDC was whitelisted at the request of SUKU, a token that isn't supported by Escrow V1, giving V2 broader token coverage. This surfaced a bug where Escrow V2 assumed 18 decimals for all tokens, which broke USDC support. The fix was tested with ETH, PNK, and USDC as well. A separate dispute flow issue was identified where disputes could get stuck in "Waiting Buyer/Receiver" status; the team is working on updating the contract to emit the correct transactionID instead of the deprecated externalDisputeID. The court naming across the interface was changed from "Kleros Court" to "General Court," a mini-guides display bug was fixed (positioning updated to use viewport units), and a UI/design gap analysis was conducted to align the app with the Figma designs. 25+ npm dependencies were also bumped.
Secure your transactions! Using Escrow
Curate V2
Curate V2 continued its march toward an Arbitrum launch, with planning ongoing throughout the month. On the code side, it NumberField was replaced with Arbitration and Challenge parameters (#102), and decimal challenge period durations are now properly handled. The @kleros/kleros-app dependency was bumped to v2.2.2 (#100), and UX improvement issues were opened for the single list page and homepage.
💰 Every listing is a bounty.
— Kleros (@Kleros_io) January 21, 2026
Stake Curate makes submitters lock deposits when they claim something is true. If they're wrong, or become wrong later, anyone can challenge and win.
Verification that never sleeps. First list is live ↓ pic.twitter.com/aUUu1dyY6k
Now Live
Stake Curate
Traditional Curate returns deposits after listing, removing any incentive to stay compliant. Stake Curate flips this: deposits stay locked, anyone can challenge at any time, and challengers earn bounties. First use case: DeFi vault certification. On the roadmap: social media anti-scam, gaming anti-cheat, and green finance.
Scout
Scout got a new dispute statistics section on the profile page, restricted to four core registries. The activity page was refactored to use "Profile" terminology, with improvements to pending and resolved item displays. Chain support was expanded with better error handling, and the "pin to Graph" functionality was temporarily disabled while subgraph syncing issues on Gnosis were resolved.
🛡️ Scout February 2026 Update | New Eligible Chains
— Kleros (@Kleros_io) February 4, 2026
🐰 Welcome @megaeth!
🟣 @0xPolygon, welcome back!
New token reward formula:
→ Fairer distribution for new projects
→ Still rewards high-activity tokens
💰 100,000 PNK per registry
📅 Live February 1st
Plus: Curate V1… pic.twitter.com/y02DxQkTFj
February Update
New Eligible Chains + Reward Formula
MegaETH and Polygon are now eligible, PulseChain support is live. New token reward formula in effect since February 1st — fairer distribution for new projects, 100,000 PNK per registry. Also shipping: Curate V1 Dark Mode, Scout 2.0 beta with CSV export, analytics, and dispute management.
Atlas (Backend Services)
Atlas shipped two releases this month, v1.1.0 and v1.2.0, wrapping up months of backend work.
The headline feature of v1.2.0 is the completion of the Court V1 notifications suite. Jurors now receive email notifications for voting reminders, dispute outcomes (won/lost), appeal events, and appealable disputes. Alongside that, a new GTCR Bot was introduced for curated list automations, and a v1 staking events endpoint went live so the frontend can display detailed juror staking history.
We have configured the sender name to prevent emails from arriving from a generic address. The Viem service got enhanced filtering options, and SIWE nonce validation now throws a controlled error for cleaner auth flows.
Several bug fixes were implemented: the system now starts at the correct next block during data streaming, the parameter mapping for Court V2 draws has been corrected, and stake notifications now use the correct terminology.
Terminology was updated from "unsubscribed" to "not subscribed" across bots, error handling was improved for cause tracing, and build times were enhanced by avoiding corepack delayed installs. A GTCR transaction replacement bug was also fixed, and viem rate limiting was addressed.
Looking ahead, work began on upgrading Court V2 notification contracts to v2.0.0 rc.1.
Vea (Cross-Chain Bridge)
Vea development focused on expanding chain support and improving the relayer infrastructure. An agnostic Hashi executor was built and merged, making the executor chain-agnostic rather than tied to specific implementations. An encoding fix was deployed for the existing bridge, and the relayer CLI was improved to better support Hashi.
The secondary validator bot continued through review, and the experimental Story Network integration via Hashi + Layer Zero remained in progress throughout the month. By the end of January, deployment and bridge testing for the Arbitrum-to-Story route was successful. Scripts for deploying extra Hashi routes were added, and the Vea deployment logging and monitoring setup was completed.
Futarchy UI
The Futarchy interface saw continuous iteration, driven by the upcoming RealT experiment. UI feedback from the initial review was implemented and merged, precision handling was improved for numerical displays, and a scrollbar issue in the "Predict All" view was fixed.
The UI was updated with RealT data integration, including adding the RealT logo, a favicon, a dark mode logo, and a new icon for the TradeWallet "Property Tokens" feature. Position value display was added to the accordion view, dollar-denominated position values were introduced, and an amount slider was added for better UX when placing predictions. The position details section was refactored for a cleaner layout, with the display focusing on showing the user's overall position value in sDAI rather than tracking predicted prices; the slider shows user intent rather than an accurate price prediction. A draft user guide was also created for the Movie experiment, with an initial UI layout designed for displaying guides within the app.
Proof of Humanity V2
In January, PoH V2 work included developing a dashboard for profile metrics, improving cross-chain UX, working on the unregistered vouching feature, enhancing registration UX, developing an auto-relay bot, and creating a new dashboard for tracking registrations and airdrop claims.
The wait is over. Your humanity is now an income stream.
— Proof Of Humanity (@proofofhumanity) January 28, 2026
Register to claim your seat.
First 10,000 humans only. pic.twitter.com/nZ8UNBeJHb
Live Now
Exclusive $PNK Airdrop — First 10,000 Humans
Registered humans can claim 1,200 PNK and double their allocation by staking in Humanity Court. Be Human. Get Paid.
Reality (Oracle)
The Reality module focused on partner integrations. The SafeSnap bot was improved to offer notifications to partners, and the Common Grounds integration was confirmed as ready and operational. Two bots need configuration for it: a generic bot to accept the Common Grounds space for internal notifications and a CG-specific bot to notify the partner. Keccak validation in reality questions was tested and confirmed working, and email notification HTML was being finalized.
Security & Infrastructure
January brought several important security and infrastructure items. React Router and Remix vulnerabilities were flagged, prompting upgrade recommendations across projects. Node.js security releases triggered recommendations to upgrade all projects to the latest versions, and VS Code security concerns were raised regarding opening projects from external contributors, with GitHub Codespaces recommended as a safer alternative.
Fleek deprecation triggered planning for migrating several Kleros projects to Netlify; this also temporarily affected the old escrow site at escrow.kleros.io. Subgraph monitoring alerts were generating too much noise, and a hysteresis-based alert system was proposed to reduce false positives. The Gnosis Court subgraph went out of sync, impacting dispute loading and challenge initiation. The team resolved this by updating the subgraph URL and temporarily disabling "pin to Graph" functionality. A related 1-week notification outage for Gnosis Court was acknowledged, with plans to reimburse affected jurors.
The team looked at different tools for documentation, including GitBook and Docusaurus, and created a test version using Mintlify. They also noted a change in Ethers.js v6.16.0 related to Alchemy domain routing. An auditor list was compiled and reviewed, with Decurity removed after being identified as potentially malicious.
Argentina Consumer Protection
Court creation for the Argentina Consumer Protection use case progressed, and test SBTs were minted.
Kleros Website
December treasury data was updated on the website.
Join the Kleros Community!
- Join our Discord
- Follow us on Twitter
- Join our community on Telegram
- Explore our documentation