Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, the ARK Scan team continued expanding the ERC-20 Tokens feature, resolved issues uncovered during internal testing, and delivered several general optimizations across the application. The TypeScript Crypto package was updated to recognize additional transaction types, further strengthening token-related workflows. The ARK Vault team remained focused on advancing ERC-20 token integration while addressing testing feedback, and the Mainsail team continued expanding test coverage alongside additional improvements to the crypto-transactions package.
Development Activity Summary (February 13 – February 20, 2026)
Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from February 13, 2026, to February 20, 2026.
| Project | Commits | Authors |
|---|---|---|
| ARK Connect | 0 | 0 |
| ARK Scan | 88 | 2 |
| ARK SDKs & Docs | 2 | 1 |
| ARK Vault | 98 | 2 |
| Mainsail | 42 | 2 |
During this period, the team maintained strong productivity and engagement, delivering 230 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 continued expanding the ERC-20 Tokens feature, addressed issues reported during internal testing, and delivered several general optimizations. Work included:
- Added a Tokens tab to the Address Details page that shows whether an address holds tokens and provides a preview of its top token balances.
- Updated approval transaction details text make ERC20 approval information clearer in the transaction details view.
- Optimized transaction fetching to improve performance for addresses with few transactions, reducing load times by streamlining queries and removing unnecessary overhead in the Address Details transactions table.
- Fixed a polling race condition on the Wallet Transactions table where periodic
router.reload()updates could overwrite filtered, paginated, or sorted results. Polling now properly restarts or cancels in-flight requests when filters, pagination, or sorting change, ensuring the latest user-selected state is preserved. - Added support for displaying basic ERC20 token transfer details on the Transaction Detail page, including sender, recipient, and amount, and ensured token amounts are formatted for readability.
- Improved transaction table filtering so token transfers are correctly included under the Transfers filter (instead of being categorized as “Other”), and fixed a Wallet Transactions filter issue where incoming multipayments could still appear when Incoming was unchecked and only Multipayments was selected.
- Added support for displaying ERC20
revoketransaction details. - Fixed 404 error page metadata so the page title displays correctly instead of showing
{{error}}. - Resolved 404 errors on the home transactions list caused by token transactions where the sender or approval spender address was missing in the wallets table, ensuring all transactions display correctly.
- Improved token value display by adding number abbreviations for large values, making token balances more compact and readable
- Added support for displaying
BatchTransfertransaction details when a single token is sent to multiple addresses in one transaction, ensuring the Transaction Detail page accurately represents these transfers. - Resolved N+1 query issues on the Address Details page by eager-loading related data for wallet transactions, improving performance and reducing redundant database queries.
Next week, we’ll continue working on the ERC-20 Tokens implementation and address any additional issues reported during internal testing.
ARK SDKs & Documentation Weekly Report
This week, the TypeScript Crypto package was updated to recognize additional transaction types.
The update introduces the Erc20BatchTransfer ABI and adds identifiers for approve, revoke, and batch transfer transactions.
These integrations make it easier to handle a wider range of token operations and ensure that transaction types are correctly identified and processed.
ARK Vault Weekly Report
This week, we remained focused on ERC-20 token integration and addressing issues identified through internal testing. Work included:
- Refactored token balance formatting to support extremely large numbers by adding additional abbreviation scales.
- Updated the contract deployment registration flow side panel to remove duplicate headers, ensuring the title and description are shown only once.
- Improved handling of unknown transaction methods by showing the method signature hash (e.g.,
0x095ea7b3) as a fallback instead of defaulting to “Contract Deployment,” while still displaying human-readable names when available (e.g., “approve”). - Fixed issues related to Number conversions by ensuring BigInt is used when amounts are involved.
- Improved validator name truncation across all screen sizes, ensuring names display fully whenever there is enough space, not only on desktop.
- Made token ordering in the portfolio header deterministic by sorting all tokens by balance, selecting the top three, and then sorting those by name when balances are equal. Balance handling was also updated to use
BigNumberinstead of JavaScript numbers for improved precision. - Adjusted the tooltip component’s maximum width so long content is no longer cut off, ensuring full visibility of token details and other long text.
- Refactored token fetching to use the
/wallets/tokens?addresses=a,bendpoint, reducing overhead by retrieving tokens for multiple wallets in a single request while preserving existing behavior when adding, removing, or selecting wallets. - Simplified transaction type identification by removing the
@mainsail/evm-contractsdependency and relying only ontypescript-cryptofor contract ABIs and function signatures. DeprecatedisVoteCombinationandisSecondSignaturelogic was removed, andTransactionTypeServicewas replaced withTransactionTypeIdentifierfromtypescript-crypto. - Limited token symbols in the dropdown to a maximum of 5 characters to prevent layout issues caused by long symbols.
- Fixed transaction table value overflow by displaying amounts in a compact, abbreviated format, ensuring long values no longer break the table layout.
Next week, we’ll continue working on ERC-20 token integration and address any additional issues reported by the internal testing team.
Mainsail Weekly Report
This week, we continued expanding test coverage and made further improvements to the crypto-transactions package. Work included:
- Implemented functional tests to verify database consistency between a syncing node and a restore on an empty database, covering multiple transaction types (vote, username, validators, ERC20) to strengthen sync and restore logic coverage.
- Resolved conflicting Docker image names in the GitHub workflow to ensure reliable CI builds.
- Refactored the
crypto-transactionspackage by removing nesteddataproperties and moving them to the transaction root, improving related interfaces and eliminating duplicated code. - Increased
crypto-transactionunit test coverage to 100%. - Compared Mainsail’s serialization and deserialization results with viem to validate compatibility and correctness.
- Increased
crypto-blockunit test coverage to 100%.
Next week, we’ll continue improving the crypto packages, expand database sync tests, and further increase coverage by adding new unit tests.
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.