Skip to content

CreatmanCEO/AviaWallet-showcase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

AviaWallet — cross-platform crypto wallet (showcase)

License: Commercial showcase Stars Validate App Store Flutter Trust Wallet Core

Cross-platform cryptocurrency wallet for iOS and Android. Led from project inception to the first App Store release. Current production version is maintained by a different team on top of the same architecture.

AviaWallet icon


My role and timeline

Phase Period What I did
Architecture & MVP 2024 — early 2025 Designed the wallet architecture from scratch in FlutterFlow with Flutter custom actions; integrated Trust Wallet Core for multi-chain key management; wired Alpha Vantage for in-app news; set up Firebase for auth + analytics; led the migration path from FlutterFlow constructor into editable Flutter source for crypto-critical custom actions.
First release Q1 2025 Coordinated the path to App Store submission: store listing, screenshot set, App Store Review compliance for a crypto wallet.
Handoff Mid-2025 Project handed to current owners. UI was later redesigned by them; the underlying architecture, security model, and key-management decisions documented here remain in production.
My ongoing relationship 2025 — present Author retains showcase rights for portfolio purposes. Not involved in current operational maintenance.

The live version on the App Store reflects work by the current team (UI redesign, ongoing feature work). The architectural decisions described below are what I authored.


Live on the App Store

Available on the App Store

Home wallet view Token detail and chart Send / receive flow
Multi-chain assets list In-app news feed Settings and security

Screenshots are pulled from the public App Store listing and reflect the current production build. The product surface — multi-chain wallet, news feed, send/receive, security model — is what was built during the phase I led. The visual design in these screenshots is from the current team's redesign.


Architecture I authored

Stack at a glance

Layer Technology Why
Frontend Flutter 3.0+ (FlutterFlow-derived, custom actions in Flutter) Cross-platform from one codebase; FlutterFlow let the non-crypto UI ship fast while custom actions handled the crypto-sensitive paths
Routing go_router 12 Type-safe, deep-link friendly
State App-state class + provider patterns FlutterFlow's idiom; kept consistent across custom actions
Crypto core Trust Wallet Core 4.1.21 (wallet_core_bindings + wallet_core_bindings_libs + wallet_core_bindings_native) Battle-tested C++ library; same library used by Trust Wallet itself; supports BTC, ETH, BNB, SOL, and 100+ other chains
Key management flutter_secure_storage 9 + Trust Wallet Core HD wallet Seed phrase stored in iOS Keychain / Android Keystore; addresses derived per-coin via Trust Wallet Core
Auth Firebase Auth + Firestore Off-device account recovery (without custodial holding of keys)
Analytics Firebase Performance / Crashlytics Production telemetry for performance regressions
News Alpha Vantage NEWS_SENTIMENT API + bespoke OpenAPI spec for FlutterFlow Crypto / blockchain / technology topic filtering with sentiment indicators
Cache cached_network_image 3 Coin icons, news thumbnails — long-tail latency reduction
Misc mobile_scanner (QR for addresses), flutter_animate (motion polish), google_fonts, flutter_svg Standard product surface

The architectural decisions that mattered

1. FlutterFlow for UI surface, hand-written Flutter for crypto paths

FlutterFlow accelerates UI iteration but its visual editor cannot reliably encode crypto-sensitive logic — anything touching seed phrases, key derivation, transaction signing, or RPC endpoint switching had to live in Flutter custom actions where the source code is auditable.

The clean line ended up being: anything that touches wallet_core_bindings is a custom action. Everything else — listings, navigation, news, profile screens — stayed in FlutterFlow.

This boundary was the single most important decision because FlutterFlow's "save" operation periodically rewrites the project's pubspec.yaml. There was a recurring class of bugs where wallet_core_bindings imports got dropped on save, leaving the app to crash on first crypto operation. The fix was to make the import survival explicit in the custom-action prelude and to test the post-save artefact, not just the editor preview. This is documented in the ported development logs.

2. Trust Wallet Core, not roll-your-own

A crypto wallet has zero acceptable bugs in the seed-phrase / signing path. Trust Wallet Core is open source (trustwallet/wallet-core), audited by multiple firms, and used in production by Trust Wallet, Coinbase Wallet, and others. Picking it eliminated the entire class of "did we implement BIP-32 / BIP-39 correctly" risks.

Each chain — BTC / ETH / BNB / SOL / etc. — uses a coin-specific CoinType to derive the address from the master seed. The custom action shape is uniform:

import 'package:wallet_core_bindings/wallet_core_bindings.dart';
import 'package:wallet_core_bindings_native/wallet_core_bindings_native.dart';

Future<String> getCoinAddress(String mnemonic, int coinTypeRaw) async {
  // Initialise once per process
  WalletCoreBindings.init();

  final wallet = HDWallet.createWithMnemonic(mnemonic, '');
  final coinType = TWCoinType.values.firstWhere((c) => c.value == coinTypeRaw);
  return wallet.getAddressForCoin(coinType);
}

Symmetric custom actions exist for: generate_seed_phrase, get_bitcoin_address, get_ethereum_address, get_all_addresses, plus a test_trust_wallet_core health-check that runs on first launch to fail loud rather than silently (FlutterFlow rebuilds occasionally drop the native bindings — this was the early-warning system).

3. News through Alpha Vantage, not a hand-curated feed

In-app news was a product requirement. Building a news feed from scratch means moderation, source-curation, sentiment classification, and the editorial responsibility that comes with it. Alpha Vantage's NEWS_SENTIMENT endpoint already does the topic-filtered curation (blockchain, cryptocurrency, technology) and ships sentiment scores per article.

The integration shape:

  • A bespoke OpenAPI YAML (alpha_vantage_news_api.yaml) imported into FlutterFlow, generating a typed NewsArticle model and the API-call wrappers
  • Topic filter: blockchain,cryptocurrency,technology
  • Sentiment indicators rendered with green / red / neutral chips in NewsExample and NewsDetailsExample
  • Path to Data in FlutterFlow's API call set to feed[] for clean list parsing

The trade-off: Alpha Vantage's free tier rate-limits to 25 calls/day, which forced a server-side cache plan for a future iteration. That plan is documented in the dev logs but was not in scope for the first release.

4. Firebase for auth, never for keys

The auth layer is Firebase (email + Google). Firestore stores account metadata — display name, settings, theme — but never seed phrases, private keys, or anything from which keys could be derived. Keys live in flutter_secure_storage (iOS Keychain / Android Keystore) and are derived from the seed via Trust Wallet Core, on-device only.

This boundary is non-negotiable in a non-custodial wallet. Documenting it as an explicit architectural rule (rather than relying on developer intuition) prevented at least one design proposal that would have crossed it.


What's intentionally not here

  • The application source code. This is a portfolio showcase, not an open-source release. The application is commercial and the source is proprietary.
  • Specific store / business / financial details beyond what the public App Store listing already shows.
  • The current team's redesigned UI source. I'm not involved in the current production iteration; that source belongs to its current owners.
  • My internal development logs (AviaWalletLog.md, integration logs, troubleshooting notes) — those stay in private memory and inform this README's architectural section only.

Limitations of this showcase

  • Screenshots reflect a UI redesign by the current team. The product surface and architecture are mine; the visual design as it appears today is theirs.
  • Some architectural decisions have evolved since handoff. Where this README describes "as authored", that's the state at first release — current production may differ in details I don't have visibility into.
  • App Store availability depends on the current owner's listing decisions, not mine. If the listing is ever pulled, the screenshots in this repository remain the historical record of the released product.

Related — Claude Code ecosystem by the same author


Open to discussion

I'm open to investment / partnership / acquisition discussions for GHOST and lingua-companion, and to senior engineering / staff-level roles (remote, open to relocation outside Russia).

For AviaWallet specifically, I'm not pursuing reacquisition or competing-product work — this showcase is portfolio context for evaluating my track record on shipped consumer-crypto products.

Reach me:


Author

Nick Podolyak — Field geologist since 2007, software engineer since 2020. Solo product builder across mobile (Flutter — App Store), desktop (Electron + Win32 native), backend (FastAPI + WebSocket + LiteLLM routing), and Claude Code-era developer tooling.

Licence

Commercial showcase · all rights reserved · Nick Podolyak.

About

Cross-platform crypto wallet showcase — led from 0 to first App Store release. Flutter · Trust Wallet Core · Firebase. Current team continues UI redesign on the same architecture.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors