Skip to content

gonkavip/wallet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gonka Wallet

Secure, self-custody wallet for the Gonka blockchain. Built with Flutter for iOS, Android, macOS, and Windows.

Website

App Store   Google Play   macOS   Windows

Features

Wallet Management

  • Create new wallets with 24-word BIP39 mnemonic generation
  • Import existing wallets from seed phrase (word-by-word or paste full phrase)
  • Import wallets from raw private key (hex, with or without 0x prefix)
  • Export private key from wallet detail (biometric/PIN gated, secure screen enabled)
  • Export public key (base64) from miners menu
  • Multiple wallets support with switching between them
  • Rename and delete wallets
  • Backup seed phrase display with screenshot protection (hidden for private-key-only wallets)

Send & Receive

  • Send GNK tokens to any gonka1... address
  • QR code scanner for recipient address input (clipboard paste on desktop)
  • QR code generation for receiving tokens
  • Address book picker in the recipient field
  • Amount input in GNK or ngonka with denomination toggle
  • Optional memo attached to outgoing transactions
  • Balance display mode cycles GNK → ngonka → USD (USD via live market price)
  • Thousands separator formatting for all amounts
  • Smart GNK display: 2 decimal digits for whole amounts, variable precision for fractional
  • Automatic comma-to-dot conversion for decimal separator (ru/es/pt keyboards)
  • Transaction confirmation screen with full details
  • Transaction history with all types: send, receive, vesting rewards, collateral, grants, unjail, votes, smart contract interactions
  • Contact names auto-resolved in history tiles and tx detail rows
  • Tap tx hash to copy, open-in-explorer shortcut to tracker.gonka.vip

Address Book

  • Local Hive-backed address book with name, address, created date
  • Add from home QR scan, from tx detail rows, or manually
  • Duplicate detection and bech32 validation on save
  • Imported wallets auto-register under their name
  • Picker integrated into the Send screen

WalletConnect v2

  • Connect to DApps via wc: URI — QR scan on mobile, paste on desktop
  • Deep link support: gonka://wc?uri=... and standard wc://... links open pairing directly
  • Per-wallet session binding (one session ↔ one wallet)
  • Supported namespace: cosmos:gonka-mainnet, method cosmos_signDirect
  • Approval screen decodes MsgSend into from / to / amount; unknown messages shown as typeUrl + raw hex
  • Biometric / PIN prompt before every signature
  • Permissions screen per wallet: list active sessions, disconnect individually
  • Sessions auto-disconnected when the wallet is deleted

Smart Contract Support

  • Automatic detection of MsgExecuteContract transactions
  • Contract deposit and withdraw history tracking
  • Detailed contract interaction view with action type, contract address, and amounts

Host Operations

  • Collateral — deposit and withdraw collateral for node operators
  • Grant Permissions — grant 27 ML operation permissions to an operational key (authz MsgGrant)
  • Delegate Model — delegate a model's Proof-of-Compute voting power to another participant, or clear it (with pre-flight participant checks)
  • Unjail — unjail a validator with jail status detection
  • Governance — view proposals, cast votes (Yes / No / Abstain / No with Veto), and inspect live tally detail: turnout vs quorum, per-option breakdown, voter count, total deposit, and voting-period countdown
  • Tracker — link to professional dashboard at tracker.gonka.vip

Node Management

  • Auto-discovery of network nodes from seed node participant lists
  • Health checks with latency measurement
  • Automatic failover to healthy nodes on consecutive errors
  • Manual node addition and removal
  • Full network scan on demand

Security

  • 6-digit PIN with PBKDF2 hashing (100,000 iterations)
  • Biometric authentication (Face ID / fingerprint)
  • Auto-wipe after 5 failed PIN attempts (configurable)
  • Cooldown period on failed attempts
  • Root/jailbreak detection (mobile)
  • Screenshot and screen recording prevention for sensitive screens (mobile)
  • Clipboard auto-clear after 60 seconds
  • Private key zeroing after use

Desktop Support

  • Native macOS and Windows builds
  • Responsive layout with max-width constraint for wide displays
  • Desktop-adapted PIN entry with text field input
  • Clipboard paste instead of QR scanner on desktop
  • Platform-aware lifecycle management
  • macOS Keychain integration for secure storage

Localization

  • 5 languages: English, Русский, Español, Português, 中文 (简体)
  • Runtime language switching with persisted selection
  • Priority: saved preference → system locale → English fallback
  • Per-app language support on Android 13+ (locales_config.xml)
  • Native platform name localization (iOS/macOS CFBundleDisplayName)

Design System

  • Unified Material 3 dark theme built on design tokens
  • Centralized color palette, gradients, radii, and shadows (GonkaColors / GonkaGradients)
  • Reusable branded widgets: GlassCard, GlowBackground, GradientText, StatusPill, ResultIcon, TxHashDisplay, InfoBanner
  • PIN lock implemented as overlay Stack (preserves navigation history on resume)

Legal

  • Terms of Use and Privacy Policy links on onboarding and settings screens

Technical Details

  • Chain: gonka-mainnet
  • HD Path: m/44'/1200'/0'/0/0
  • Address format: gonka1... (bech32)
  • Base denom: ngonka (1 GNK = 10^9 ngonka)
  • Signing: SIGN_MODE_DIRECT with secp256k1
  • Protobuf: Manual encoding without code generation
  • Fees: Zero-fee chain

Architecture

lib/
  config/         Constants, formatting, design tokens, theme, input formatters
  core/
    crypto/          BIP39, BIP32, secp256k1, bech32, private key utilities
    network/         Node client, node manager, API endpoints
    transaction/     Protobuf encoding, tx builder, message types
    governance/      Tally math (turnout, quorum, vote fractions)
    walletconnect/   WC v2 service, URI parser, namespace builder, SignDoc/MsgSend decoders
    platform_util    Platform detection (desktop vs mobile)
  data/
    models/       Wallet, balance, node, tx history models
    repositories/ Wallet, node, and settings persistence (Hive)
    services/     Secure storage, auth, device security
  state/
    providers/    Riverpod state management (wallet, tx, locale, ...)
  l10n/           ARB files for en/ru/es/pt/zh-Hans + generated AppLocalizations
  presentation/
    error_l10n    Technical exception → localized message mapping
    screens/      All UI screens
    widgets/      Reusable widgets (gonka_widgets, responsive_center, ...)

Build

flutter pub get
flutter run

Platform-specific builds

# iOS
flutter build ios

# Android
flutter build apk

# macOS
flutter build macos

# Windows
flutter build windows

Run tests

flutter test

Requirements

  • Flutter SDK ^3.8.1
  • Dart SDK ^3.8.1
  • Android SDK / Xcode / Visual Studio for platform builds

License

MIT License. See LICENSE for details.