26th Sep 2025
6 min read

ARK Development Report - September 26, 2025

Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, the ARK Scan team fixed validator status issues and enhanced deeplinks support, while the ARK Vault team continued developing pending transactions and HD wallet features alongside general fixes and app improvements. Meanwhile, the Mainsail team released a new version of the public testnet and carried on refining other areas of the Mainsail.

Development Activity Summary (September 19 – September 26, 2025)

Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from September 19, 2025, to September 26, 2025.

Project Commits Authors
ARK Connect 0 0
ARK Scan 9 1
ARK SDKs & Docs 0 0
ARK Vault 98 5
Mainsail 8 2

During this period, the team maintained strong productivity and engagement, delivering 115 merged commits across all projects.

It’s important to note that weekly commit counts and project-specific data may fluctuate based on the focus of internal sprints, evolving objectives, and the complexity of tasks undertaken.

ARK Scan Weekly Report

The ARK Scan team focused on fixing validator status issues and improving deeplinks. Specifically:

  • Validators without a BLS key now correctly show as dormant, instead of incorrectly appearing as active. Active/standby/dormant states are now consistently reflected on the address details page.
  • The deeplink for voting has been updated to always use publicKey=<publicKey> instead of validator=<username>. This ensures compatibility even when a validator has no username registered, simplifying handling and guaranteeing valid URIs.
  • Dusk tests were set up, and the missed warning was fixed. This ensures that testing works correctly with Inertia since React generates pages via the DOM, and allows the monitor PR tests to be included in workflows.

Next week, we’ll continue enhancing tests, improving overall performance, and addressing any reported issues.

ARK Vault Weekly Report

This week, we continued developing the pending transactions and HD wallets features, along with general fixes and app improvements. Completed work includes:

  • Pending transactions are now fetched from the /transactions/unconfirmed endpoint using the pending-transactions.service. A new Pending Transactions DTO was added to handle transaction types and properties, and query parameters for filtering by recipient and sender have been implemented.
  • The HD wallet option was added to the wallet creation flow, including logic to show or hide it as appropriate.
  • A general HD wallet creation flow was added, ensuring users can create HD wallets similarly to the regular address creation process. This provides a consistent and complete workflow for HD wallet management.
  • The TimeAgo component for pending transactions was fixed to update correctly, ensuring that each row’s “Time Ago” column reflects the current elapsed time even when no new transactions are added.
  • Account name functionality was added for HD wallets during the import flow, allowing users to assign and view names for imported HD wallet accounts.
  • The create wallet flow was updated to prevent app crashes when exiting from the mnemonic generation step, fixing a TypeError caused by accessing undefined properties.
  • The HD wallet flow was updated to display a message guiding users to use the import option when adding additional addresses.
  • The periodic fetching of unconfirmed transactions was moved from the component to the profile job handler. This reduces multiple API requests caused by component re-renders and ensures consistent caching and handling of unconfirmed transactions across the portfolio page.
  • Transaction signing for HD wallets was extended to support the encryption password option, allowing secure signing for encrypted HD wallet addresses.
  • HD wallet addresses in the portfolio are now highlighted with a dedicated label, displayed in both mobile and desktop views, as well as in the side panel. Label styles were refactored, adding outline, primary, and neutral variants for consistent presentation.
  • The side panels for validator and username resignations were updated to match the latest designs, including a modern variation for the wallet selector. New unit tests were added to ensure these changes don’t break existing implementations.
  • All instances of “wallet” in the UI have been replaced with “address,” and corresponding translation keys and content were updated. Unused translations were removed, and implementations, unit tests, and snapshots were updated to ensure consistency across the codebase.
  • The address alias generation for HD wallets was corrected to use the proper index, ensuring aliases now reflect Address #counter rather than incorrectly showing Address #counter+1. This provides accurate and consistent labeling for generated addresses.
  • HD wallet-related classes, methods, files, and variables were renamed to follow BIP-44 naming conventions, improving clarity and consistency across the codebase.
  • The profile transactions view was optimized to prevent multiple unnecessary renders, improving performance and ensuring smoother updates when transaction data changes.
  • Link styling was removed from the address row on the vote page, improving visual consistency and reducing confusion by making the row appear as standard text rather than a clickable link.

Next week, we’ll keep progressing on the HD Wallet implementation, enhance Ledger hardware support, and address any other reported issues.

Mainsail Weekly Report

This week, we released a new version of Mainsail EVM v0.0.1-rc.6 for the public testnet. This update includes several improvements and changes:

  • The transaction pool API now supports filtering by the from and to fields.
  • Networking now includes NTP time offset logging for better synchronization visibility.
  • Consensus logs have been updated with a new format that displays height, round, and hash.
  • The lint.sh script has been removed.
  • A new db:drop command has been added to the API.
  • Syncing now uses less memory, improving overall efficiency.
  • Consensus log formatting has been improved to use toLocaleString. Outputs are using English format (en-US).

We have also continued improving other aspects of Mainsail. Work done this week includes:

  • Added support for re-processing downloaded blocks in consensus. This resolves edge cases in block processing not caused directly by consensus failures but by invalid node time settings. When node clocks are unsynchronized, a block may be rejected because it appears to come from the future. Such blocks are now reprocessed and accepted later.
  • Enabled NTP sync by default in the install.sh script.
  • Introduced getCommitBytes, using a single database call in the EVM package to improve performance.
  • Restored functional consensus tests and enabled GitHub workflows for those tests.
  • Extended the network generator to produce tests for functional consensus.
  • Added support to read usernames from snapshots during database restore.

Next week, we’ll focus on improving unit testing and increasing coverage.

Feedback & Feature Requests

If you are using our open-source products and would like to provide feedback or request a feature, please feel free to contact us via the contact pages for the specific product you are using or open an issue on GitHub.

Quick access links to GitHub issues pages:

Follow on Twitter (X)

Follow us on X (Formerly Twitter) and keep checking the blog to stay up-to-date on all of our new releases. We post a weekly development report so you can easily see what we’ve been up to and follow along our journey towards making your decentralized future a reality.

Share:

Get in Touch!

Whether you want to learn more about ARK Ecosystem, want to apply for developer bounty, become our partner or just want to say Hello, get in touch and we will get back to you.



An Ecosystem of Developers

Join us on our journey to create the future of Web3.