Welcome to this week’s Weekly Development Report, highlighting continued progress across the ecosystem, with a focus on improving reliability, performance, and compatibility. This week, Mainsail received further updates to API pagination, filtering, transaction-pool performance, and validator configuration. ARK Scan and the PHP Crypto SDK also moved forward with dependency updates and improvements to transaction handling, including the release of PHP Crypto SDK v2.1.0. Meanwhile, ARK Vault received a small update to keep its transaction sorting behavior aligned with the available API functionality.
Development Activity Summary (October 23 – October 30, 2026)
Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from October 23, 2026, to October 30, 2026.
| Project | Commits | Authors |
|---|---|---|
| ARK Connect | 0 | 0 |
| ARK Scan | 16 | 3 |
| ARK SDKs & Docs | 24 | 3 |
| ARK Vault | 3 | 1 |
| Mainsail | 44 | 2 |
In total, 87 commits were merged across all projects this week. As always, commit counts fluctuate with sprint focus and task complexity.
ARK Scan Weekly Report
This week’s ARK Scan work focused on improving the perceived transaction loading speed, updating the crypto dependency, and applying the latest changes to the live versions.
The wallet loading experience was investigated and improved after identifying that the Export Blocks modal was being triggered before transactions finished loading. This made transaction loading appear slower than it actually was. The changes address this issue and improve the overall wallet experience.
The arkecosystem/crypto dependency was upgraded to version 2.0, removing the abandoned protonlabs/bitcoin dependency, which caused deprecation warnings on PHP 8.4 and later. The update required a small adjustment to the network contract and its unit tests, as AbstractNetwork no longer extends the BitWasp network class. Address and public key handling remain unchanged.
Additional updates included adding a reference to Simple Analytics and updating the footer to match the latest design. The staging branch was also merged into master, and these changes were released to the live versions.
Next week, we’ll continue addressing issues identified during internal testing, improving performance and reliability, and updating dependencies to keep ARK Scan aligned with the latest ecosystem changes.
ARK SDKs & Documentation Site Weekly Report
This week’s SDK work focused on modernizing the PHP Crypto SDK, removing outdated dependencies, improving transaction signature handling, and adding Schnorr signature verification. These changes were included in the PHP Crypto SDK v2.1.0 release.
The PHP Crypto SDK was updated to remove the abandoned protonlabs/bitcoin dependency and its transitive dependencies, which caused deprecation warnings on PHP 8.4 and later. ECDSA operations now use simplito/elliptic-php, while Base58Check encoding, hashing, and WIF handling are managed directly by the package. The SDK was also updated to require PHP 8.5, with corresponding updates to Pest, PHP-CS-Fixer, CI, and the test suite. Unnecessary dependencies and tooling were removed.
The major version introduces breaking API changes, including the SDK’s own PrivateKey and PublicKey classes instead of BitWasp classes, updated return types for signing and serialization methods, and changes to AbstractNetwork. Compatibility was carefully verified against version 1.9.0 using 600 random cases and 11,400 checks, with signatures, keys, addresses, and WIF output remaining byte-identical. New fixtures generated by ARK Core’s crypto package were also added. Testing confirmed zero deprecation warnings on PHP 8.5, with signing and verification performance improved by approximately five times and three times, respectively. The update also fixes Message::sign() for messages containing invalid UTF-8.
Further work addressed legacy transaction signing and signature verification. The legacy second signature now uses the signed transaction hash, correcting the PHP Crypto SDK implementation. Schnorr verification was added through PublicKey::verifySchnorr() and verifySchnorrOrECDSA(), while Message::verify() now supports both Schnorr and ECDSA signatures. The previously unfinished Transaction::verifySchnorr() method was also implemented, enabling verification of messages signed with ARK Vault.
Next week, we’ll continue refining the SDKs, resolving any issues that come up during testing, and keeping the documentation up to date.
ARK Vault Weekly Report
This week’s ARK Vault work focused on cleaning up transaction sorting logic to prevent invalid API requests.
The unused amount and Fiat Value mappings were removed from getOrderByStr. Sorting is disabled for both columns, and both previously mapped to the amount property, which the Mainsail API rejects as an unsupported orderBy value. Removing these mappings keeps the sorting logic aligned with the available table functionality and avoids sending invalid sort parameters to the API.
Next week, we’ll continue internal testing, address any issues identified during testing, and work on dependency updates to keep ARK Vault aligned with the latest versions.
Mainsail Weekly Report
This week’s Mainsail work focused on improving API consistency, optimizing transaction-pool performance, and refining validator configuration and snapshot handling.
Several API improvements were made to ensure more reliable pagination and filtering. Sorting across wallets, validators, peers, API nodes, transactions, and blocks now uses unique tie-breaker keys, preventing records from being repeated or skipped between pages. Pagination links also preserve dot-notation filters, such as timestamp.from, and correctly generate offset-based links when offset pagination is used. Count handling was improved so validator and voter counts remain exact, pages shorter than the requested limit report their actual totals, and empty pages no longer incorrectly report one result.
Numeric filtering was also improved to support amounts beyond JavaScript’s safe integer range and ensure numeric attributes are compared as numbers rather than strings. Wallets now sort by balance by default, validator sorting maps to the correct attributes, and validators can be filtered by username. Missing legacy flags and validator counters are now treated as false and 0, respectively. Invalid sort keys and filters that do not correspond to database columns now return a 422 response instead of causing a 500 error.
Performance improvements were made to the /transactions/unconfirmed endpoint across the transaction-pool service and API. The ordering operation was optimized significantly, reducing the time required to process 15,000 senders from approximately 1,123 ms to just 9 ms.
The configuration generator was updated to handle existing validators more accurately. When both a snapshot and validator list are provided, existing validators now use updateValidator to update their BLS keys, while newly detected validators are registered through registerValidator. The config:generate command also received improvements to snapshot handling and validation, including rejection of invalid pubKeyHash values. Support was added for the --snapshot, --pubKeyHash, and --validatorRegistrationFee flags.
Next week, we’ll continue working on snapshot imports and replacing Hapi with a custom server in the P2P package.
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 Us on X
Follow us on X and keep an eye on the blog to stay up to date with everything we ship. We publish a development report every week so you can follow along as the ecosystem grows.