Welcome to our final Weekly Development Report of 2025, where we highlight the dedication and progress of our development teams. We’ll be back with fresh updates in January 2026. This week, the ARK Scan team continued its work on the Inertia migration while also cleaning up unused code across the codebase. On the SDK side, token support was added to the TypeScript Client package, and the ARK Vault team kicked off the initial integration of token display functionality within Vault. Meanwhile, the Mainsail team focused on extending ERC20 support in the API, along with several general improvements.
Development Activity Summary (December 12 – December 19, 2025)
Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from December 12, 2025, to December 19, 2025.
| Project | Commits | Authors |
|---|---|---|
| ARK Connect | 0 | 0 |
| ARK Scan | 67 | 3 |
| ARK SDKs & Docs | 4 | 2 |
| ARK Vault | 42 | 2 |
| Mainsail | 41 | 2 |
During this period, the team maintained strong productivity and engagement, delivering 154 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, our focus remained on the Inertia migration, alongside cleaning up unused code across the codebase. Work completed includes:
- Introduced the validators table as part of the Inertia migration, delivering a structured and comprehensive overview of validator data.
- Resolved responsiveness issues in the validated blocks table so rows span the full width, fiat values appear beneath crypto values on smaller screens, and the redundant value column hides at the correct breakpoint.
- Migrated the validators page to Inertia, establishing a stronger foundation for performance, maintainability, and tighter frontend integration.
- Refactored the wallet details page so clicking the “View” link next to a validator’s vote amount scrolls to the transactions table and opens the “Votes” tab, restoring expected behavior in the Inertia version.
- Updated multiple components to replace standard
<a>tags with Inertia<Link>components, enabling SPA-style navigation, preserving client-side state, and avoiding full page reloads. - Centralized missed blocks table logic for Inertia validators within the
ValidatorsController, improving code organization and long-term maintainability. - Cleaned up build warnings by removing unnecessary
"use client"directives, leaving only known Radix library warnings and a harmless TailwindMODULE_TYPELESS_PACKAGE_JSONnotice. - Added header statistics to the transactions page by migrating transaction stats into the Inertia implementation, giving users immediate insight into key metrics.
- Enhanced the validators table to support configurable “validators per page” options, ensuring alignment with updated defaults and consistency across migrated tables.
- Implemented sorting and filtering on the Inertia validators page, including support for recent votes, enabling more flexible data exploration.
- Added a recent votes table to the Inertia validator view, offering a clear and up-to-date snapshot of recent voting activity.
- Moved the blocks page statistics to the Inertia implementation, providing consistent and responsive stats display within the Inertia frontend.
- Corrected the validators table header tooltip in dim mode so the info icon displays with the proper background color.
- Removed Livewire-based validators page components after completing the Inertia migration, eliminating deprecated code and potential conflicts.
- Migrated the wallet page to Inertia, laying the groundwork for the new Wallet implementation and future feature expansion.
- Refactored Inertia tabs to use full URLs (for example,
/addresses/<ADDRESS>/validated-blocks) instead of query strings, while keeping query strings for filters and pagination and adding redirects to preserve backward compatibility.
After the holiday break, we’ll finalize the Inertia migration and begin work on the Tokens display implementation.
ARK SDKs & Docs
This week, we added support for tokens to the TypeScript Client package. As part of this update, we implemented TypeScript equivalents for all newly introduced token-related endpoints, enabling seamless access to token data directly from the client.
The following endpoints are now supported:
GET /tokens– Retrieve a list of all tokens, including metadata such as name and symbolGET /tokens/{address}– Fetch details for a specific token by contract addressGET /tokens/{address}/holders– List all holders of a given tokenGET /wallets/{id}– Added a newtokenCountfield to the wallet responseGET /wallets/{id}/tokens– Retrieve all tokens held by a specific wallet
ARK Vault Weekly Report
This week, we began work on the initial Tokens display integration within Vault. Work completed includes:
- Introduced token interfaces in the SDK, providing wallet- and profile-level abstractions for syncing and accessing token data. This includes wallet-level helpers (address, balance, token details) and profile-level aggregations such as
sync,selectedCount,selected, andselectedTotalBalancefor managing tokens across multiple wallets. - Added token count visibility to single-address views, automatically hiding the tokens section when multiple addresses are selected or when no tokens are owned.
- Extended token count display to the mobile portfolio page, ensuring consistent visibility across different screen sizes.
- Simplified mobile page headers (≤768px) by removing subtitles and displaying page icons instead, resulting in a cleaner and more compact layout.
- Improved the mobile address details experience (<640px) by introducing a dedicated details tab, adjusting the portfolio header, hiding public key and username icons, allowing the address and send button to span full width, and ensuring tabs switch automatically on resize or when multiple addresses are selected.
After the holiday break, we’ll continue developing the Tokens feature and address any issues reported by the internal testing team.
Mainsail Weekly Report
This week, we focused on extending ERC20 support in the API alongside several general improvements. Work done includes:
- Expanded ERC20 token handling in the API to support additional use cases and improve overall compatibility.
- Enabled stricter linting rules to increase type safety and improve overall type coverage across the codebase.
- Updated the RPC
eth_callmethod to respect user-provided gas price and gas limit values. - Generalized the factory helper in the test framework, making it reusable across a wider range of test scenarios.
- Ensured E2E sync tests always use the local
app.jsonconfiguration to avoid inconsistencies caused by outdated remote configs. - Added support for devnet configuration with
@mainsail/snapshot-legacy-importerenabled, improving flexibility for local and test environments.
After the break, we’ll focus on thorough testing and continue delivering additional API improvements related to ERC20 token support.
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.