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 modifyinge2e.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
tov7.0.6
,Cucumber
tov12.1.0
,ESLint
plugins, andReact Router
tov7.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 intsconfig.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.