[Proposal] LunoKit — Unified Account Connection Infrastructure for Polkadot SDK + EVM Chains

7hrs 29mins ago
0

1. Overview

1.1 Proposal Details

Proponents / Team Lunolab(Cris, Brain)
Treasury Track Medium Spender
Beneficiary Address 14pGVuuBxbN9dVNGh2a6dNqAEP7f48z7ks5vH9WNXKakUm7Z
Requested Amount $65,580 USDC ( Retroactive + Milestone-based)
Retroactive Amount $14,880 USDC
Milestone-based Amount $50,700 USDC
Funding Period 6 months (February 2026 – July 2026);
Website https://www.lunolab.xyz/
X https://x.com/lunolab_xyz
Repositories https://github.com/Luno-lab/LunoKit
Docs https://docs.lunolab.xyz/
Live Demo https://demo.lunolab.xyz/

1.2 Project Summary

LunoKit aims to build a customizable UI theme and developer-friendly Web3 account connection infrastructure for the Polkadot ecosystem. Previously, we received a grant from the Web3 Foundation and completed the delivery of all milestones within three months. It unifies wallet connection state management, account abstraction, chain switching, and session recovery, while also providing a rich set of UI components and multi-chain account support, greatly reducing the integration threshold for DApps built on Polkadot SDK chains.

As a frontend development library based on React + TypeScript, LunoKit also provides over 20 Hooks, including account state management, chain switching, connection control, and on-chain data subscription, with support for data caching. Developers can focus on core business logic while LunoKit handles the account module.

LunoKit’s capabilities span three layers:

  1. Connection & account fundamentals: multi-wallet connectivity, unified connection state management, a unified signer interface, and network/chain configuration and switching (covering both Polkadot SDK chains and EVM chains).

  2. Developer interfaces (Hooks): 20+ composable Hooks covering connection control, account state, chain switching, and selected on-chain subscription and caching capabilities.

  3. Ready-to-integrate UI components: components such as Connect Button, Account Panel, and Network Switcher, with support for theme tokens and branding configuration to help ecosystem projects maintain consistent UI.

Its modular architecture is composed of three packages:

  • @luno-kit/core: connectors, chain configuration, account management, and a unified signer interface

  • @luno-kit/react: the React integration layer and Hooks

  • @luno-kit/ui: UI components, theming system, and branding configuration

1.2 Why LunoKit is needed

In any blockchain ecosystem, account connection is foundational entry-layer infrastructure for every dApp: users must connect a wallet and sign before they can stake, swap, participate in governance, and more. The quality of this entry layer directly impacts ecosystem-wide usability, consistency of user experience, and developer onboarding cost.

Today, the ecosystem commonly faces the following practical challenges:

  • Reinventing the wheel and hidden costs: multi-wallet compatibility, connection state management, network switching, and session recovery are highly repetitive across projects, with development and maintenance costs fragmented across teams.
  • Compatibility and regression burden: as wallet ecosystems evolve continuously, behavioral differences and edge cases (disconnects, network changes, permission updates, etc.) keep introducing regression-testing overhead, creating significant long-term maintenance pressure.
  • Fragmented experience: inconsistent implementations of connection flows, network switching, error handling, and session recovery across dApps reduce predictability for users when moving between apps, which in turn hurts the overall experience and confidence.
  • Delivery efficiency for new teams: for hackathons and early-stage teams operating on short timelines, repeatedly implementing the entry layer adds extra development and regression workload, increasing costs and extending delivery cycles.

LunoKit is positioned as an open-source, reusable, configurable, and long-term maintainable connection infrastructure layer. It helps ecosystem projects reduce repetitive work, improve consistency, and focus more of their resources on business innovation and the product itself.

In addition, we have set our 2026 roadmap to focus on EVM account support: enabling dApps to integrate Substrate accounts and EVM accounts within a single, unified connection module through LunoKit—reducing the cost of implementing and maintaining two separate sets of connection logic and UI/state systems in multi-account environments. As more Solidity-based dApps emerge within the Polkadot ecosystem, demand for “dual-account / multi-account login” is expected to grow further. This model has already been validated in practice (for example, some dApps within Bifrost and Hydration support both account types). LunoKit aims to standardize and componentize these capabilities to reduce repetitive development effort across the ecosystem.

1.3 Ecosystem Adoption

The list below is not exhaustive; it highlights a few representative production dApp integrations that are actively running.

Project Type Link
Snowbridge Bridge between Ethereum and Polkadot https://app.snowbridge.network/
Potatao DEX https://app.potatao.io/
EnergyWeb Energy Web X app https://staking.energywebx.com/stake
Fintradex Non-custodial orderbook exchange https://fintradex.io

2. Team

Lunolab is composed of two core members with extensive blockchain development backgrounds. Since joining the ChainX team in 2020, they have been active in the Web3 field, participating in the incubation and development of multiple public chains and application projects.

Cris has over 5 years of Web3 product experience, focusing on cross-chain protocol design and user experience optimization. He led the product design of ChainX, worked as a product manager responsible for OmniBTC’s frontend product design and project management, and from 2023–2025 served as the product lead of BEVM/GEB, overseeing chain-level functionality design and developer tool planning.

Brain is a senior blockchain frontend developer. He joined the ChainX frontend team in 2020, began leading the frontend system development of OmniBTC in 2022 (including OmniSwap and OmniLending), and from 2023–2025 was fully responsible for the frontend architecture of BEVM/GEB, covering explorer, wallet, and developer tools, accumulating deep experience in blockchain frontend development.

  • 2020 – ChainX Team
  • June 2022 – OmniBTC (incubated within ChainX, now closed, social media X)
    OmniBTC was a cross-chain DeFi platform that included two core products:
    • OmniSwap: A cross-chain trading aggregator supporting 40+ public chains and 20+ cross-chain bridges, with a cumulative trading volume exceeding $2 billion.
    • OmniLending: A cross-chain lending platform with peak TVL of over $10 million.
  • June 2023 – June 2025, BEVM (incubated within ChainX, later renamed GEB)
    BEVM was a public chain developed with the Substrate technology stack, aiming to be a Bitcoin Layer 2 compatible with EVM smart contracts, with over 990,000 on-chain addresses.
Field Content
Name Cris Sun
Role Product Lead(PM/UX/DX)& Developer
GitHub https://github.com/Gintma
X https://x.com/crislee51255358
Tg @Crislee123
Field Content
Name Brain Wu
Role Lead Engineer
GitHub https://github.com/wbh1328551759
Tg @wwwwwwbh

3. Work Completed

After completing all milestones of the Web3 Foundation Web3 Grant, Lunokit continued ongoing development and maintenance of the product based on real production integration needs and ecosystem feedback, resulting in a set of additional deliverables that have been completed and can be publicly verified. This section is intended to fully list the scope and evidence trail of this “completed work,” making it easy for the community to directly verify the actual output.

3.1 Work Completed Deliverables

PR Theme Key Deliverables (Detailed) Verification
PR #92 Network presets expansion + Stability & UX improvements Fresh parachain presets: Polkadot ( Coretime, Collectives, People), Kusama (AssetHub, People, Coretime), Westend (AssetHub) 3 new wallet connectors with full TypeScript support: Enkrypt, Fearless, Mimir; Tree-shakable exports to bundle only what you use (e.g., import chains/connectors as needed); UI/UX polish: chain search bar; Stability fix: resolved auto-connect race condition by adding a grace delay https://github.com/Luno-lab/LunoKit/pull/92/changes
PR #98 Multi-API compatibility modes + Wallet-only mode + New hooks Flexible Integration Modes: use LunoKit with Dedot (default), PAPI, or @polkadot/api; Wallet-only mode: adopt LunoKit’s wallet connection without changing the existing blockchain API stack; New hooks: usePapiSigner (PAPI-compatible signers from connected wallets), useEstimatePaymentInfo (fee estimation before sending); Seamless migration: minimize code changes when migrating existing PAPI / @polkadot/api projects to LunoKit https://github.com/Luno-lab/LunoKit/pull/98/changes
PR #114 + PR #118 + PR #128 Connection stability + AssetList + Stronger CSS isolation Improved connection stability: fixed account persistence so the selected account reliably restores after disconnect/reconnect; AssetList component: token & NFT list with comprehensive asset info, powered by Subscan integration Enhanced CSS isolation: improved component style isolation to avoid interfering with host app styles; https://github.com/Luno-lab/LunoKit/pull/114/changes https://github.com/Luno-lab/LunoKit/pull/118/changes https://github.com/Luno-lab/LunoKit/pull/128/changes
PR #136 UI branding + Hardware wallets + Transaction control + DX improvements UI customization (appInfo): appInfo prop for Connect Modal to fully customize branding and app information (including Terms/Privacy entry points); Hardware wallet support: OneKey and Ledger connectors; Enhanced transaction control: useSendTransaction adds waitFor (inBlock vs finalized) and rawReceipt for deeper insights; Developer experience: useApi supports generics, cacheMetadata defaults improved, and QueryClientProvider removed from LunoKitProvider for more flexible setups https://github.com/Luno-lab/LunoKit/pull/136/changes
PR #141 + PR #148 + PR #150 + PR #152 UI configuration improvements + Theme fix + H160 address compatibility + Modal mounting Custom wallet list grouping; Theme fix: backdrop-blur parameter; H160 address compatibility: formatting & balance queries for 20-byte addresses; Custom modal mounting nodes for flexible modal integration https://github.com/Luno-lab/LunoKit/pull/141/changes https://github.com/Luno-lab/LunoKit/pull/148/changes https://github.com/Luno-lab/LunoKit/pull/150/changes https://github.com/Luno-lab/LunoKit/pull/152/changes
New Live Demo Configure wallet/modal/theme tokens, preview components, and export code https://github.com/Luno-lab/LiveDemo

Verification

  • Public code verification: all PR commit histories above are publicly accessible and reviewable.

  • Functional verification: Docs / examples / live demo can be used to validate connection flows, component previews, theming configuration, and integration-ready code export.

  • Ecosystem usage verification: production integrations can be validated via the listed live applications (e.g., Snowbridge, Potatao, etc.).

3.2 Retroactive Budget & Cost Breakdown

This section covers only the work listed in the “Work Completed Deliverables” roadmap section (PR-based evidence). To align with OpenGov’s milestone-oriented funding approach and to reduce immediate treasury outflow, we structure the retroactive request as a partial reimbursement by applying a conservative, discounted hourly rate to the already completed and publicly verifiable work.

Budget Summary (Labor)

Contributor Role Hours Rate (USD/h) Cost (USD)
Brain Core Development & Engineering 248 30 7,440
Cris Product, UI/UX, Documentation & Integration Support (incl. partial dev) 248 30 7,440
Total - 496 - 14,880

Rationale

  • The work covered here is already completed and publicly verifiable (PR-based evidence, demos, and integrations).

  • We are intentionally requesting reimbursement at 30 USD/hour, which is below typical market rates for senior Web3 engineering and product/UI work, to keep the proposal cost-effective and aligned with milestone-oriented funding expectations.

3. Development Roadmap

We will deliver LunoKit’s heterogeneous-chain support (Polkadot SDK + EVM) and other content through monthly milestones from February to July 2026. Each milestone has clear scope, measurable success criteria, and public verification anchors (PRs/commits, release tags, docs, examples, and demo updates).

3.1 Milestone 1 — February 2026 (Core Foundations)

Objective: Introduce a robust type system and configuration layer in @luno-kit/core to support both Substrate and EVM chains under a unified connection model while maintaining strict type safety.

No Task Rationale Priority
1 Multi-track type system design (Core) Introduce ChainType discriminated unions. Use TypeScript narrowing to strictly separate SubstrateAccount and EvmAccount at compile time. Critical
2 Polymorphic connector adapter (Core) Refactor the BaseConnector contract. Implement EvmConnector as an adapter wrapping Wagmi-standard connectors (MetaMask, WalletConnect). Critical
3 Config system upgrade v2 (Core) Add a createConfig entrypoint in Core. Allow a single config object to define both environments; Internally create Wagmi config, backfill connectors, and initialize state subscriptions. High
4 Ledger multi-account selection Enable account enumeration and selection for Ledger connections,dApps can support selecting among multiple Ledger-derived accounts in a consistent way. High
5 Polkadot Vault Add a Polkadot Vault wallet High

Success Criteria

  • @luno-kit/core can automatically detect configuration and load the corresponding heterogeneous connector instances.
  • When calling createConfig, IDE autocomplete and compile-time inference correctly narrow types based on chainType (Substrate vs EVM).
  • When connecting a Substrate account using Ledger, you can choose which account to import.
  • Developers can integrate Polkadot Vault into their dapp by modifying a few lines of code in the configuration file.

Public Deliverables / Verification Anchors (published upon milestone completion)

  • Core API type definitions documenting the complete multi-track type system.

  • createConfig implementation in packages/core (core initialization logic).

  • A versioned release tag (or release notes) and the PR/commit list covering Milestone 1 scope.

3.2 Milestone 2 — March 2026 (React State Pipeline + Hooks Namespace Support)

Objective: Establish a bi-directional state synchronization pipeline and upgrade core hooks to support a namespace parameter with compile-time type narrowing and safe behavior across heterogeneous environments.

No Task Rationale Priority
1 Bi-directional state sync pipeline (React) Use Zustand + Immer as the global store; Subscribe to Wagmi state and map it into LunoKit’s state machine so external changes (e.g., chain switch) reflect in real time. Critical
2 Core hooks refactor (I) — Connection & Account Refactor hooks such as useConnect, useDisconnect, useAccount, useAccounts, useBalance, useStatus, useActiveConnector, etc. Add namespace support and implement overloads so IDE infers Substrate vs EVM return types from namespace string literals. Critical
3 Core hooks refactor (II) — Chain & Utils Refactor useChain, useChainId, useSwitchChain, useClient, useSigner to route providers appropriately in heterogeneous environments. Critical
4 Substrate-specific hook compatibility Update useSs58Format, usePapi, etc. Add context guards so when namespace is EVM, hooks degrade safely (e.g., return null) rather than crashing. High

Success Criteria

  • 15+ core hooks support namespace with strict type narrowing, enabling seamless switching between ecosystems.

  • Substrate-only hooks degrade gracefully in EVM mode (no runtime errors).

Public Deliverables / Verification Anchors (published upon milestone completion)

  • Updated @luno-kit/react implementation with namespace-aware hooks and overload-based type narrowing.

  • A versioned release tag (or release notes) and the PR/commit list covering Milestone 2 scope.

  • Docs updates describing the namespace model and recommended usage patterns.

3.3 Milestone 3 — April 2026 (UI heterogeneous-Chain Adaptation)

Objective: Upgrade UI components to handle dual ecosystems cleanly, improve guidance when both Substrate and EVM connectors coexist, and implement reliable activeNamespace restoration behavior.

Design Reference

Figma: https://www.figma.com/design/NRI1vLxg6qquNNdXmSxhlv/Lumo-Connect-v0.2.0?node-id=4001-2&p=f&t=CluGbjfRWkN6b0s1-0

No Task Rationale Priority
1 Refactor ConnectButton & related components (UI) Upgrade ConnectButton and ConnectModal with ecosystem-grouped rendering logic to improve detection and user guidance when Substrate and EVM plugins coexist. Critical
2 Namespace-triggered interaction design In ChainModal, switching chain can actively change the current namespace. Add EVM-specific 0x address display style and visual identifiers. Critical
3 activeNamespace restoration strategy On refresh, restore last active namespace first; if restoration fails, fall back to the side with an active connection. Critical
4 Theme token enhancements Extend theming tokens (e.g., link text color and related UI text colors) to improve brand consistency and configurability. High
5 Mobile UI refinements Optimize spacing, touch targets, and modal/list layouts to better match mobile usage patterns. High
6 Smooth scroll mask / edge-fade effect for lists Improve visual clarity when browsing long lists (addresses, wallets, accounts) by adding a subtle scroll mask/edge fade aligned with the design system. High

Success Criteria

  • UI adapts automatically based on activeNamespace, including icons, address format (SS58 vs 0x), and ecosystem visual indicators.

  • When both ecosystems are available, users can reliably discover, select, and switch between Substrate and EVM wallet contexts without confusion.

  • After page refresh, dual-session restoration behaves correctly and activeNamespace fallback logic prevents “stuck” states.

  • The Manage Wallets component matches the linked Figma design and supports the expected dual-ecosystem management flows.

  • Scrollable lists (wallets/network/addresses) render with a smooth edge-fade/scroll mask effect and maintain performance.

  • Mobile layouts are optimized (touch-friendly sizing, spacing, and modal behavior) without regressions on desktop.

  • New theming tokens (including connect text color) are available and reflected in the demo/configuration flows.

Public Deliverables / Verification Anchors (published upon milestone completion)

  • Updated @luno-kit/ui package implementing heterogeneous-chain adaptations for ConnectButton, ConnectModal, ChainModal, plus the new Manage Wallets component.

  • Demo updates showcasing dual-ecosystem UI flows (including Manage Wallets) aligned with the Figma design reference.

  • A versioned release tag (or release notes) and the PR/commit list covering Milestone 3 scope.

  • Demo updates showcasing: mobile refinements, new theme tokens, scroll mask effect, and Ledger multi-account selection UI (published upon milestone completion).

3.4 Milestone 4 — May 2026 (Unified Transaction & Signature Facade)

Objective: Provide a unified transaction and signing interface in React that supports both ecosystems while preserving access to underlying native status/details (Viem vs Dedot).

No Task Rationale Priority
1 Unified transaction/signing facade (React) Define a unified TransactionStatus enum and map EVM (Viem receipt) and Substrate (Dedot finalized) native states into a single model. Critical
2 Implement useSendTransaction (React) Provide a unified entrypoint that routes internally by namespace. EVM accepts Viem parameters; Substrate accepts Dedot tx objects. Return unified status plus raw underlying data. Critical
3 Implement useSignMessage (React) EVM uses Viem signMessage; Substrate uses signRaw. High
4 Ecosystem-aware UI rendering Upgrade components such as AccountDetailsModal to automatically choose rendering logic based on account type. Medium
5 EVM wallet integration Metamask、Subwallet、Talisman、OKX Web3wallet 、Phantom、Coinbase Wallet、Rabby Wallet High

Success Criteria

  • Developers can send transactions via a unified interface and receive both LunoKit-mapped status and the raw native (Viem/Dedot) status/data.

  • AccountDetailsModal and related components correctly display heterogeneous addresses without formatting errors.

  • Users can use any of the supported EVM wallets to send transactions.

Public Deliverables / Verification Anchors (published upon milestone completion)

  • Unified transaction model/schema with raw-state passthrough.

  • Updated React hooks (useSendTransaction, useSignMessage) and supporting types.

  • A versioned release tag (or release notes) and the PR/commit list covering Milestone 4 scope.

  • Demo/docs updates demonstrating unified transaction/signing usage.

3.5 Milestone 5 — June 2026 (Testing & CI Quality Gates)

Objective: Add comprehensive automated testing for core paths across Core and React hooks, ensuring stability for connect/switch/transaction flows in both ecosystems.

No Task Rationale Priority
1 Full integration tests for hooks state flow Test cases for hooks introduced/refactored in Milestone 2, focusing on namespace switching, fallback behavior, and routing correctness. Critical
2 Unit tests for polymorphic connectors (Core) Practical tests for EvmConnector connect/disconnect/switch events and createConfig parsing. High
3 Transaction tests Simulate signature rejection, RPC errors, and lifecycle transitions for useSendTransaction and useSignMessage. High

Success Criteria

  • CI passes for the full test suite; core paths (connect/switch/tx) are covered.

  • Transaction lifecycle states (signature → confirmation) behave consistently across both ecosystems.

  • Coverage targets: Core ≥ 90%, React hooks core-path coverage ≥ 80%.

Public Deliverables / Verification Anchors (published upon milestone completion)

  • Automated test suite source code (unit + integration tests) and CI configuration updates.

  • A versioned release tag (or release notes) and the PR/commit list covering Milestone 5 scope.

  • A test results summary (e.g., CI artifact link or published report) demonstrating pass status and coverage metrics.

3.6 Milestone 6 — July 2026 (Reference DApp + Docs + v0.2 Release)

Objective: Deliver a flagship integrated demo dApp, improve edge-case stability in real browsers, publish complete documentation and migration guides, and ship LunoKit v0.2

No Task Rationale Priority
1 Reference integrated DApp demo Build example/integrated-dapp demonstrating a full heterogeneous-chain app (assets transfer + interactions across both ecosystems). High
2 Edge-environment hardening Optimize detection priority and stability in real browsers where multiple EVM wallet extensions compete. Critical
3 Docs & migration guides Fully update docs portal: complete API reference, namespace best practices, and smooth upgrade guide from v0.1 to v0.2 High
4 Update Live Demo for EVM support Ensure developers can directly validate and experiment with the new EVM-related capabilities through an official, always-up-to-date public demo. High

Success Criteria

  • A one-command runnable heterogeneous-chain demo site is available, showcasing dual-ecosystem transaction flows.

  • Official docs cover all new APIs and heterogeneous-chain integration scenarios.

  • The official Live Demo is updated to support and showcase the EVM-related features introduced in v0.2 .

Public Deliverables / Verification Anchors (published upon milestone completion)

  • LunoKit v0.2 release across Core, React, and UI packages.

  • example/integrated-dapp and a new publicly accessible live demo site.

  • Updated developer documentation and migration guide.

  • A versioned release tag (or release notes) and the PR/commit list covering Milestone 6 scope.

3.7 Budget Breakdown

Team Costs

Name Role Commitment (hours/week) Monthly Cost Total for Project Period
Brain Lead Developer 20 $4,800 $28,800
Cris Project Manager & Developer 15 $3,600 $21,600
Subtotal (Team) $50,400

Operational Costs

Category Covers Total (USD)
Operational Costs Notion / Vercel / X Pro $300

Total Requested Funding

Item Amount
Total Requested Funding $50,700 USDC

Milestone Distribution:

  • Milestone 1 (February 2026): $8,450
  • Milestone 2 (March 2026): $8,450
  • Milestone 3 (April 2026): $8,450
  • Milestone 4 (May 2026): $8,450
  • Milestone 5 (June 2026): $8,450
  • Milestone 6 (July 2026): $8,450

3.8 Milestone scope note:

While the milestone plan describes the deliverables we commit to for funding and verification, we also
expect to ship additional fixes and features beyond the proposal in response to real developer needs and production integration feedback within the ecosystem. We will keep the community informed and ensure the committed milestone deliverables remain the priority.

Reply
Up
Share
Comments