Home / Emurgo / yoroi-mobile
Nov 12, 2-3 PM (0)
Nov 12, 3-4 PM (0)
Nov 12, 4-5 PM (0)
Nov 12, 5-6 PM (0)
Nov 12, 6-7 PM (0)
Nov 12, 7-8 PM (0)
Nov 12, 8-9 PM (0)
Nov 12, 9-10 PM (0)
Nov 12, 10-11 PM (0)
Nov 12, 11-12 AM (0)
Nov 13, 12-1 AM (1)
Nov 13, 1-2 AM (4)
Nov 13, 2-3 AM (1)
Nov 13, 3-4 AM (4)
Nov 13, 4-5 AM (0)
Nov 13, 5-6 AM (0)
Nov 13, 6-7 AM (0)
Nov 13, 7-8 AM (5)
Nov 13, 8-9 AM (3)
Nov 13, 9-10 AM (0)
Nov 13, 10-11 AM (1)
Nov 13, 11-12 PM (1)
Nov 13, 12-1 PM (0)
Nov 13, 1-2 PM (0)
Nov 13, 2-3 PM (0)
Nov 13, 3-4 PM (0)
Nov 13, 4-5 PM (0)
Nov 13, 5-6 PM (0)
Nov 13, 6-7 PM (0)
Nov 13, 7-8 PM (0)
Nov 13, 8-9 PM (0)
Nov 13, 9-10 PM (0)
Nov 13, 10-11 PM (0)
Nov 13, 11-12 AM (0)
Nov 14, 12-1 AM (0)
Nov 14, 1-2 AM (0)
Nov 14, 2-3 AM (0)
Nov 14, 3-4 AM (0)
Nov 14, 4-5 AM (0)
Nov 14, 5-6 AM (0)
Nov 14, 6-7 AM (0)
Nov 14, 7-8 AM (0)
Nov 14, 8-9 AM (1)
Nov 14, 9-10 AM (0)
Nov 14, 10-11 AM (0)
Nov 14, 11-12 PM (0)
Nov 14, 12-1 PM (0)
Nov 14, 1-2 PM (0)
Nov 14, 2-3 PM (0)
Nov 14, 3-4 PM (1)
Nov 14, 4-5 PM (0)
Nov 14, 5-6 PM (3)
Nov 14, 6-7 PM (4)
Nov 14, 7-8 PM (0)
Nov 14, 8-9 PM (0)
Nov 14, 9-10 PM (0)
Nov 14, 10-11 PM (0)
Nov 14, 11-12 AM (1)
Nov 15, 12-1 AM (0)
Nov 15, 1-2 AM (0)
Nov 15, 2-3 AM (0)
Nov 15, 3-4 AM (0)
Nov 15, 4-5 AM (0)
Nov 15, 5-6 AM (0)
Nov 15, 6-7 AM (0)
Nov 15, 7-8 AM (0)
Nov 15, 8-9 AM (0)
Nov 15, 9-10 AM (0)
Nov 15, 10-11 AM (0)
Nov 15, 11-12 PM (0)
Nov 15, 12-1 PM (0)
Nov 15, 1-2 PM (0)
Nov 15, 2-3 PM (0)
Nov 15, 3-4 PM (0)
Nov 15, 4-5 PM (0)
Nov 15, 5-6 PM (0)
Nov 15, 6-7 PM (0)
Nov 15, 7-8 PM (0)
Nov 15, 8-9 PM (0)
Nov 15, 9-10 PM (0)
Nov 15, 10-11 PM (0)
Nov 15, 11-12 AM (1)
Nov 16, 12-1 AM (0)
Nov 16, 1-2 AM (0)
Nov 16, 2-3 AM (0)
Nov 16, 3-4 AM (0)
Nov 16, 4-5 AM (0)
Nov 16, 5-6 AM (0)
Nov 16, 6-7 AM (0)
Nov 16, 7-8 AM (0)
Nov 16, 8-9 AM (2)
Nov 16, 9-10 AM (4)
Nov 16, 10-11 AM (1)
Nov 16, 11-12 PM (1)
Nov 16, 12-1 PM (0)
Nov 16, 1-2 PM (1)
Nov 16, 2-3 PM (0)
Nov 16, 3-4 PM (0)
Nov 16, 4-5 PM (0)
Nov 16, 5-6 PM (0)
Nov 16, 6-7 PM (0)
Nov 16, 7-8 PM (0)
Nov 16, 8-9 PM (0)
Nov 16, 9-10 PM (2)
Nov 16, 10-11 PM (1)
Nov 16, 11-12 AM (2)
Nov 17, 12-1 AM (0)
Nov 17, 1-2 AM (0)
Nov 17, 2-3 AM (0)
Nov 17, 3-4 AM (0)
Nov 17, 4-5 AM (0)
Nov 17, 5-6 AM (0)
Nov 17, 6-7 AM (0)
Nov 17, 7-8 AM (0)
Nov 17, 8-9 AM (1)
Nov 17, 9-10 AM (0)
Nov 17, 10-11 AM (2)
Nov 17, 11-12 PM (0)
Nov 17, 12-1 PM (0)
Nov 17, 1-2 PM (0)
Nov 17, 2-3 PM (2)
Nov 17, 3-4 PM (0)
Nov 17, 4-5 PM (1)
Nov 17, 5-6 PM (4)
Nov 17, 6-7 PM (0)
Nov 17, 7-8 PM (0)
Nov 17, 8-9 PM (0)
Nov 17, 9-10 PM (0)
Nov 17, 10-11 PM (0)
Nov 17, 11-12 AM (0)
Nov 18, 12-1 AM (0)
Nov 18, 1-2 AM (1)
Nov 18, 2-3 AM (0)
Nov 18, 3-4 AM (0)
Nov 18, 4-5 AM (0)
Nov 18, 5-6 AM (0)
Nov 18, 6-7 AM (0)
Nov 18, 7-8 AM (0)
Nov 18, 8-9 AM (4)
Nov 18, 9-10 AM (0)
Nov 18, 10-11 AM (3)
Nov 18, 11-12 PM (4)
Nov 18, 12-1 PM (0)
Nov 18, 1-2 PM (0)
Nov 18, 2-3 PM (0)
Nov 18, 3-4 PM (0)
Nov 18, 4-5 PM (0)
Nov 18, 5-6 PM (2)
Nov 18, 6-7 PM (0)
Nov 18, 7-8 PM (0)
Nov 18, 8-9 PM (0)
Nov 18, 9-10 PM (3)
Nov 18, 10-11 PM (0)
Nov 18, 11-12 AM (0)
Nov 19, 12-1 AM (0)
Nov 19, 1-2 AM (0)
Nov 19, 2-3 AM (0)
Nov 19, 3-4 AM (0)
Nov 19, 4-5 AM (0)
Nov 19, 5-6 AM (0)
Nov 19, 6-7 AM (1)
Nov 19, 7-8 AM (0)
Nov 19, 8-9 AM (2)
Nov 19, 9-10 AM (1)
Nov 19, 10-11 AM (4)
Nov 19, 11-12 PM (0)
Nov 19, 12-1 PM (0)
Nov 19, 1-2 PM (0)
Nov 19, 2-3 PM (0)
80 commits this week Nov 12, 2025 - Nov 19, 2025
feat: implement Midnight Glacier Drop airdrop redemption feature
- Add Airdrop menu item and screen for NIGHT token redemption
- Implement redemption API integration with thaw schedule checking
- Add eligibility check and banner notification in transaction history
- Support gradual token unlocking (thawing) with four 25% installments
- Add address allocation display with thaw schedule and redemption status
- Implement transaction building and signing for token redemption
- Add proper error handling for readonly wallets and uninitialized wallets
- Use existing usePromptRootKey hook for secure password entry
- Format addresses using ellipsizeMode middle with highlighted suffix
- Use intl.formatDate for consistent date formatting
- Apply theme atoms and spacing for dark mode compatibility
- Only show airdrop feature on mainnet wallets
feat: optimize sync performance with shared tip status and staggered syncs
- Add network-level tip status service with automatic refresh
- Implement shared tip status cache to reduce redundant API calls
- Add staggered wallet syncs to distribute load across interval
- Update sync manager to fetch tip status once per network
- Pass shared tip status to wallet sync operations
- Update transaction manager to accept optional tip status parameter
- Fix type imports and ensure functional style (no classes)

Performance improvements:
- 90%+ reduction in tip status API calls (from N calls to 1 per sync cycle)
- Smooth server load distribution with staggered syncs
- Single source of truth for tip status per network
feat: add feature flag to switch between backend-zero and legacy API
- Add useBackendZero feature flag (defaults to true)
- Create legacy-api-preserved folder with complete legacy implementations
- Refactor api.ts to route based on feature flag
- When flag is false, bypass backend-zero and use legacy API directly
- When flag is true, use backend-zero with fallback to legacy-api/fallback.ts
- Update documentation with feature flag usage and rollback procedure
fix: resolve lint and TypeScript errors
- Fix prettier formatting in wallet-registration.ts
- Fix MultiTokenValue export to use Balance.Amounts from @yoroi/types
- Fix ModernUtxo property names (txId/index -> txHash/txIndex)
- Fix StakingInfo rewards property access with type guard
- Fix FormattedMetadata type by adding missing allLabels and scripts properties
- Fix ChainNetwork vs ChainSupportedNetworks type issues in tests
- Fix Hex type by accessing .value property from encrypted storage
- Fix SyncConfig test to use correct properties
- Fix migration runner test with null check
- Remove statusBarTranslucent from KeyboardProvider (ignored by edge-to-edge)
backport: Update pool API and fix Ledger tag checking
- Backport single explorer pool API update from yoroi-lib
  - Update PoolInfoApi to use zero backend API (/cexplorer-pool-list)
  - Change constructor to accept zeroApiUrl parameter
  - Update API response type to match new zero backend format
  - Fix URL construction to properly handle query strings
  - Make share field optional (deprecated in new API)
  - Use Promise.all for parallel requests in getManyExplorerPoolInfo

- Backport tags check fix from yoroi-lib (dc33447)
  - Update assertTagsState and doAllSetsHaveTag to use full transaction hex
  - Build complete transaction (body + witness set + auxiliary data) for tag validation
  - Ensures proper tag checking for Ledger device compatibility

- Export API_ENDPOINTS from @yoroi/api package
- Add null check for pool after destructuring
- Update all PoolInfoApi instantiations to include zeroApiUrl parameter
refactor(mobile): update EarnRewardsBanner component and related hooks
- Replaced the illustration in the EarnRewardsBanner with a new governance image.
- Added a linear gradient background to enhance the visual appeal of the banner.
- Adjusted styles for better layout and spacing within the banner.
- Removed the test button for toggling the banner display in development mode.
- Simplified the useEarnRewardsBanner hook by removing unnecessary options and logic.
- Updated localization strings for the EarnRewardsBanner.
fix(swap): filter out Dex.Unsupported from minswap include_protocols
- Prevent sending unsupported protocols to minswap API
- Check if mapped protocol is Dex.Unsupported before including in include_protocols
- Apply fix to both estimate and create request transformers
- Add tests to verify unsupported protocols are filtered out
- Prevents API errors when protocols like Unsupported, Teddy_v1, Cerra, Genius, etc. are selected
fix(swap): conditionally include include_protocols in minswap adapter
- Fix issue where include_protocols was set to undefined when protocol is undefined
- Use conditional spread operator to only include property when protocol is defined
- Apply fix to both estimate and create request transformers
- Add tests to verify behavior when protocol is undefined vs defined
- Bump package version to 7.0.4
refactor: move reusable components to common and refactor IIFEs
- Move ScannerButton from features/Send/common to common/ScannerButton
- Move TokenItem from features/ReviewTx/common to common/TokenItem
- Move WalletBalance from features/ReviewTx/common to common/WalletBalance
- Rename Exchange AmountCard to ExchangeAmountCard to avoid naming conflict
- Refactor IIFE in operationDisplay.ts to extract helper logic
- Refactor async IIFEs in peer-connection.ts and connection-manager.ts to named functions
- Document why IIFE string generation is needed in Discover hooks for WebView injection

All components follow the AddressInput pattern in common directory.
IIFEs refactored for better readability and testability.