Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, the ARK Scan team introduced the new “Network Map” feature, improved search functionality, and delivered a range of fixes and optimizations across the application. On the SDK side, we rolled out improvements to both the PHP Client and PHP Crypto packages, focusing on consistency, performance, and better code organization. The ARK Vault team concentrated primarily on increasing test coverage alongside several additional fixes, while the Mainsail team updated dependencies to their latest versions and delivered further API improvements and fixes.
Development Activity Summary (March 27 – April 03, 2026)
Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from March 27, 2026, to April 03, 2026.
| Project | Commits | Authors |
|---|---|---|
| ARK Connect | 0 | 0 |
| ARK Scan | 78 | 3 |
| ARK SDKs & Docs | 12 | 1 |
| ARK Vault | 10 | 2 |
| Mainsail | 18 | 2 |
During this period, the team maintained strong productivity and engagement, delivering 118 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
This week, we worked on introducing the new “Network Map” feature, improving search functionality, and delivering a range of fixes and optimizations. Work included:
- Added a peers map visualization page that uses the
/peersAPI to plot network peer IPs on a world map, providing an interactive overview of global network distribution. - Implemented automated fetching and caching of contract identifiers from php-crypto ABIs, removing the need for hardcoded values and ensuring new contract methods are supported dynamically.
- Improved search functionality to support partial matches for usernames, addresses, and other valid inputs, allowing users to find results without entering full values.
- Fixed peers map rendering so peer dots scale correctly with zoom level, maintaining readability and visual clarity.
- Converted JavaScript files to TypeScript across the project, introducing type safety and better tooling support while keeping minimal inline JS for Alpine in Blade templates.
- Updated wallet balance display to round down instead of up, ensuring values like
99.99999999999885are shown as99.99999999rather than100for more accurate representation. - Added a “Last block at” tooltip to the validator monitor for missed status, showing the last successful forged block or “No blocks forged yet” when applicable.
- Implemented lazy loading for multipayment recipients, improving performance by fetching recipient data only when required.
- Refactored broadcasting checks by introducing a
Broadcasting::usesWebSockets()helper, replacing direct config comparisons with a clearer abstraction. - Centralized frontend formatting utilities into
utils/formatter.ts, ensuring consistent formatting (e.g., “last block at” and “age” tooltips) and reducing duplicated logic. - Switched to using
UnitConverterfrom the TypeScript-crypto SDK, removing the local implementation to ensure consistency across the app and SDK. - Added mobile touch support to the peers map, enabling zoom and pan gestures alongside existing controls.
- Optimized transaction handling for large multipayment transactions, significantly improving load times on the homepage and wallet details pages.
- Fixed unit formatting issues introduced by updates to
arkecosystem/crypto, ensuring correct behavior in both application logic and tests. - Improved the bookmarks page header and banner image styling, enhancing visual appearance and smoothing image edges.
- Updated SVGO to the latest version in the workflow and adjusted configuration (
cleanupIDs→cleanupIds) to maintain compatibility. - Fixed dynamic page titles by including the network name in metadata, ensuring block and transaction pages display the correct name instead of
{{name}}.
Next week, we’ll continue improving based on feedback, finalize the “Network Map” feature, and address any issues reported by the internal team.
ARK SDKs & Documentation Weekly Report
This week, we delivered improvements across both the PHP Client and PHP Crypto packages, focusing on consistency, performance, and better code organization.
In the PHP Client package, we refactored the base client naming by renaming ArkClient to a more generic Client, along with updating related references. This helps keep the SDK more flexible and less tightly coupled to ARK-specific naming. We also standardized how endpoint parameters are handled by switching to a query array approach, making methods like Node::fees easier to extend and more consistent with other endpoints.
In the PHP Crypto package, we implemented transaction type identification directly within the library by moving helper methods such as isVote and isMultiPayment from ARKScan. This centralizes the logic and aligns it more closely with the TypeScript implementation, improving reliability and maintainability.
Additionally, we introduced caching for ABI and keccak operations using a static, class-based approach. This reduces repetitive computation and significantly improves performance when processing large sets of transactions.
ARK Vault Weekly Report
This week we have been working mostly on increasing test coverage and some other fixes. Work done includes:
- Increased test coverage for the
libdirectory (src/app/lib), ensuring better validation and reliability of utility functions and shared library code. - Refactored the mnemonic input flow to include validation tips. Added a hints section for guidance and updated error messages to provide clearer feedback when a full mnemonic contains spelling mistakes.
- Fixed
TimeoutOverflowWarningin tests by adding a check in theTimeAgocomponent to handle future dates. This preventsgetNextUpdateDelayfrom returning excessively large values that exceedsetTimeoutlimits when test timestamps are ahead of the system date.
Next week, continue to improve on test coverage and address any of the reported issues.
Mainsail Weekly Report
This week, we focused on updating dependencies to their latest versions, along with API improvements and fixes. Work included:
- Upgraded all packages to their latest versions, including root dependencies such as TypeScript 6.0, ESLint, and all pnpm workspace packages. Replaced
eslint-plugin-simple-import-sortandeslint-plugin-sort-keys-fixwitheslint-plugin-perfectionist. - Added a new
/wallets/activityendpoint to the public API. - Introduced Podman support for local development, allowing the PostgreSQL container to run in Docker on Podman. The setup automatically detects the installed container runtime, with an option to override via the
CONTAINER_CLIenvironment variable. - Fixed WIF-related issues in crypto packages by disabling WIF support for BLS12-381 keys in the
crypto-key-pair-bls12-381package.
Next week, we’ll continue working on unit tests, along with further improvements to the crypto packages and API.
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.