You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Senior] Remove IBEX API dependency for basic app functionality #302
Flash currently requires a working connection to IBEX APIs (sandbox and production) for basic app functionality. If IBEX APIs are unreachable, users experience degraded or broken flows that should otherwise work independently.
Goal
The app should function with BTC-only wallet capabilities when IBEX APIs are unavailable. USD wallet features can gracefully degrade, but core BTC functionality must not depend on IBEX.
Requirements
App startup must succeed without IBEX API connectivity
BTC wallet (balance, send, receive) must work independently of IBEX
USD wallet features should gracefully degrade (show unavailable state, not crash/error)
Transaction history should display BTC transactions regardless of IBEX status
Error handling should clearly distinguish between Flash-native failures and IBEX dependency failures
No hardcoded assumptions that IBEX is always reachable
Context
Related Linear issues: ENG-223, ENG-236
IBEX auth deprecation deadline: May 31, 2026 (ENG-38)
This is a risk mitigation issue — Flash should not have a single point of failure on a third-party API for basic functionality
Acceptance Criteria
Start the app with IBEX APIs completely unreachable → user sees BTC wallet, can send/receive BTC
USD wallet shows a clear "unavailable" state instead of errors or crashes
No regression in normal operation when IBEX is available
I'd like to work on this Senior bounty (bundled: flash#302 + flash-mobile#591 + flash-mobile#572).
Approach:
Audit all code paths that call IBEX APIs at startup and during BTC wallet operations
Introduce a feature flag / capability check: if IBEX is unreachable (timeout < 3s), app boots in BTC-only mode with USD features hidden
Wrap every IBEX call in a try/catch with graceful degradation — BTC send/receive, balance display, and Lightning payments must work independently via the Galoy/LND backend
For flash-mobile#591: mirror the same startup resilience in the React Native layer — use a context provider that short-circuits IBEX initialization on network failure
For flash-mobile#572: investigate reproducibility diff (65 non-image files) — likely deterministic build config (timestamps, build IDs) in the Gradle/Fastlane pipeline
@HuiNeng6 your /attempt from 2026-03-25 is released: no PR or follow-up in the six months since.
Bounty cancelled (2026-10-10). The bounty program is closed and the reward attached to this issue is withdrawn. No bounty will be paid for work on it. The issue itself stays open as a regular work item and has been re-prioritized by the core team. Thanks to everyone who proposed an approach.
Priority pass 2026-10-10: rank 9 of 13. With Breez removed, BTC also flows through IBEX, so full independence is unrealistic. Proposed re-scope: graceful degradation (circuit breaker on IBEX health, explicit unavailable states, startup that does not block on IBEX).
PR: #524 - circuit breaker on IBEX health (3s half-open), BTC balance + wallet history served from the ledger while it is open, cash wallets show an explicit unavailable (null) state instead of erroring, and a network-level ApiError is what trips the breaker. 256 suites / 3307 tests green in an isolated sandbox; tsc unchanged from main. Handle: nul-quill. Payout wallets: Solana USDC BdznDjc4xwt5Y6WJT5UnrFQzDptka8YnC9oqmmkKpwkd, TRC20 TNEHCVwR2aPMrj5AKfWCQ2rFL3bEDQmsg7.
Activity
patoo0x commentedon Mar 20, 2026
📋 Definition of Done — 💰 500,000 sats (bundled with flash-mobile#591 + flash-mobile#572)
Expected Behavior After Fix:
Deliverables:
main(closes #302)main(closes flash-mobile#591,closes flash-mobile#572)Review Gate:
Payment: 500,000 sats via Lightning on merge.
See CONTRIBUTING.md for full details.
chengyixu commentedon Mar 21, 2026
Proposal
I'd like to work on this Senior bounty (bundled: flash#302 + flash-mobile#591 + flash-mobile#572).
Approach:
Timeline: 2-3 days
Available immediately! cc @patoo0x
chengyixu commentedon Mar 21, 2026
Proposing to remove IBEX API dependency from the Flash backend.
Analysis:
The IBEX dependency blocks BTC-only functionality when IBEX is down. Here's my approach:
1. Startup decoupling:
2. BTC wallet independence:
3. USD graceful degradation:
4. Testing:
Timeline: This is a significant backend refactor — I estimate 5-7 days for a thorough implementation with tests. Ready to begin immediately.
HuiNeng6 commentedon Mar 25, 2026
/attempt
Proposal - Remove IBEX API Dependency Bundle
I'd like to work on this Senior bounty bundle (flash#302 + flash-mobile#591 + flash-mobile#572).
My Approach:
Backend (flash#302):
Mobile (flash-mobile#591):
Build Reproducibility (flash-mobile#572):
Timeline: 5-7 days for complete bundle
Lightning address: [需要提供]
Ready to start immediately!
fix: graceful degradation when IBEX API is unreachable
islandbitcoin commentedon Oct 10, 2026
@HuiNeng6 your /attempt from 2026-03-25 is released: no PR or follow-up in the six months since.
Bounty cancelled (2026-10-10). The bounty program is closed and the reward attached to this issue is withdrawn. No bounty will be paid for work on it. The issue itself stays open as a regular work item and has been re-prioritized by the core team. Thanks to everyone who proposed an approach.
islandbitcoin commentedon Oct 10, 2026
Priority pass 2026-10-10: rank 9 of 13. With Breez removed, BTC also flows through IBEX, so full independence is unrealistic. Proposed re-scope: graceful degradation (circuit breaker on IBEX health, explicit unavailable states, startup that does not block on IBEX).
nul-quill commentedon Oct 11, 2026
PR: #524 - circuit breaker on IBEX health (3s half-open), BTC balance + wallet history served from the ledger while it is open, cash wallets show an explicit unavailable (null) state instead of erroring, and a network-level ApiError is what trips the breaker. 256 suites / 3307 tests green in an isolated sandbox; tsc unchanged from main. Handle: nul-quill. Payout wallets: Solana USDC BdznDjc4xwt5Y6WJT5UnrFQzDptka8YnC9oqmmkKpwkd, TRC20 TNEHCVwR2aPMrj5AKfWCQ2rFL3bEDQmsg7.