8th Aug 2025
7 min read

ARK Development Report - August 8, 2025

Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, we resolved several issues in the ARK Connect extension, while the ARK Scan team focused on enhancing error reasoning for failed transactions alongside various fixes and refactors. The documentation site was updated with additional guidance on API setup and a new option for configuring validators on nodes, and the PHP Crypto module was improved to display clearer reasons for transaction failures. In ARK Vault, we addressed a number of issues reported during testing, focusing on small UI fixes and general adjustments. Meanwhile, the Mainsail team released a new version of the Mainsail EVM Testnet, delivering numerous improvements based on community feedback and internal testing, along with ongoing fixes and performance optimizations.

Development Activity Summary (August 1 – August 8, 2025)

Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from August 1, 2025, to August 8, 2025.

Project Commits Authors
ARK Connect 4 1
ARK Scan 14 1
ARK SDKs & Docs 12 2
ARK Vault 77 5
Mainsail 19 4

During this period, the team maintained strong productivity and engagement, delivering 126 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 Connect Weekly Report

This week, we resolved several issues with the ARK Connect extension:

  • Synchronized recent PSDK changes from ARK Vault to the extension to fix transaction sending problems.
  • Corrected the transaction approval screen to properly display transaction details after reopening the extension window.

Next week, we’ll continue testing the extension and addressing any reported issues.

ARK Scan Weekly Report

We’ve been working on improving error reasoning for failed transactions, along with various other fixes and refactors. Completed work includes:

  • Refactored failed transaction handling to decode receipts and display specific failure reasons (e.g. out of gas, contract errors) for known transaction types and contracts, improving user feedback on transaction errors.
  • Fixed caching of transaction resignation IDs by optimizing the job to fetch only new transactions since its last run, improving efficiency and reducing redundant data retrieval.
  • Refactored the CacheNetworkAggregates command to use the Validator Registration scope, enabling more targeted and accurate aggregation of validator-related data.
  • Refactored failed transaction handling to detect and display insufficient funds and out-of-gas errors, providing clearer feedback for transaction failures.
  • Fixed spacing in the transaction Input Data container to prevent the left border from extending beyond the rounded edges when expanded.
  • Refactored logic to allow overriding of public Vault and Connect URLs via .env variables, enabling customization (e.g., for Mainsail explorer) instead of defaulting to hardcoded ARK Vault links.
  • Removed the redundant TODO related to LargestTransactionAggregate scopes, cleaning up the codebase.

Next week, we’ll continue improving Mainsail optimizations and addressing any issues reported by the community.

ARK SDKs and Documentation Site Weekly Report

We’ve updated the documentation site with additional information on setting up the API and introduced a new option for configuring validators on nodes. Additionally, we’ve enhanced the PHP Crypto module to display specific reasons for failed transactions. Specifically:

  • Documentation Site:
    • Added additional instructions to the documentation site for Mainsail API installations to assist users with setup and configuration.
    • Added a guide to the documentation for using config:forger:bls during validator registration to help users correctly configure their BLS keys if using the private BLS key option.
  • PHP Crypto Package:
    • Refactored transaction handling to support decoding ABI errors, enabling display of specific failure reasons for known transaction types when available. Next week, we’ll continue improving the documentation site and addressing any reported issues.

ARK Vault Weekly Report

This week, we focused on addressing issues reported during testing, primarily small UI fixes and various other adjustments. Work completed includes:

  • Fixed the addresses panel on mobile to use radio buttons (instead of checkboxes) in single view, matching the desktop behavior for consistent address selection.
  • Refactored theme handling to persist the last used theme after logout, continuing to apply the signed-out profile’s theme until a new profile is created or a different one is signed in.
  • Adjusted the loading indicator line width to be thinner for better alignment with the design specifications.
  • Refactored gas fee calculation to add a 20% buffer to the eth_estimategas estimate, ensuring fees are safer by multiplying the increased gas estimate by the network gas price.
  • Fixed fee rounding by using integerValue() to ensure fees are whole numbers, preventing errors from decimal values when submitting transactions.
  • Refactored the multipayment recipients UI to implement the updated recipient design.
  • Fixed the portfolio header on mobile by adding the missing vote button to ensure consistent functionality across devices.
  • Refactored to remove reliance on the global configManager by storing network configuration (block height, crypto settings) within the network instance after synchronization, improving state encapsulation.
  • Implemented address name editing and explorer link opening in the addresses side panel, along with adding corresponding unit tests.
  • Enabled e2e tests for the message domain on Firefox by updating signature data to use correct Ethereum address formats and modifying e2e.yml to include Firefox test runs.
  • Implemented fee time estimates based on actual block times by fetching block time from the network configuration and setting slow confirmations to 2× block time, with average and fast set to 1× block time, improving transaction confirmation accuracy.
  • Fixed multipayment values in the transactions table to prevent unwanted text wrapping by applying filtering only to multipayment entries.
  • Adjusted padding between the amount input and the “Add Recipient” button to 16px for consistent spacing.
  • Fixed portfolio header on large screens to display the full address instead of truncating it, utilizing available space for better clarity.
  • Added a hover state style for selected address entries in the address panel to improve visual feedback.
  • Fixed transaction filter bug where undefined was sent to the API when deselecting filter options, preventing invalid requests and API errors during transaction type filtering.
  • Corrected capitalization to display “Multiple Addresses” properly.
  • Fixed side panel subtitle line height by increasing it to 28px for better readability and spacing.
  • Updated project dependencies including Vite to v7.0.6, Cucumber to v12.1.0, ESLint plugins, and React Router to v7.7.1, ensuring the codebase uses the latest compatible versions.
  • Updated table row hover background color to navy-blue-100 for improved visual consistency.

Next week, we’ll continue addressing reports from testing and focus on further improving the user experience with the recent Mainsail EVM integration.

Mainsail Weekly Report

This week, we released a new version of the Mainsail EVM Testnet, incorporating numerous improvements based on community feedback and internal testing. Highlights of this update include faster node synchronization, optimized syncing behavior, an updated napi-rs dependency, support for legacy transaction formats, and a new configuration command for setting validators using BLS12-381 private keys.

We have also made further progress on the following items:

  • Checked sync status and skipped transaction rebroadcast if the block is syncing. Non-included transactions are rebroadcast randomly between 1 and the MAINSAIL_TRANSACTION_POOL_REBROADCAST_COOLDOWN_BLOCKS option.
  • Used distinctive server names with the service name (p2p, api, tx-pool, …) in the response on the main/endpoint for each HTTP server.
  • Disabled internal Hapi logs.
  • Removed the /transactions/schemas endpoint, as only EVM transactions with a single schema are supported.
  • Used the skipPeerStateVerification option in the P2P tx-pool verifier, fixing an issue where nodes were partially checked even when the option was set to true.
  • Added support for BLS private keys in Docker.
  • Optimized TypeScript settings by enabling the composite: true option and adding scripts to update references in tsconfig.json files inside each package. These changes allow the TypeScript language server to correctly find references between packages, not just within the local package.

Next week we’ll be testing and making further improvements for the Public Mainsail Testnet.

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.