CryptoFolio — Native iOS Crypto Portfolio Tracker
The most complete native SwiftUI crypto app template on CodeCanyon. Live prices, candlestick charts, NFT tracking, DeFi positions, FIFO/LIFO tax reports, home screen widgets, and Face ID — all in 100% native Swift with zero third-party dependencies.
Introduction
Are you looking for a professional, production-ready crypto portfolio tracker to launch on the App Store or deliver to a client — without spending months building from scratch?
CryptoFolio is a full-featured iOS crypto portfolio tracker built entirely in native SwiftUI. While most crypto templates on this marketplace use Flutter, React Native, or cross-platform wrappers, CryptoFolio is 100% pure Swift — giving your users the fastest, smoothest, most App Store-authentic experience possible.
This is not a demo app or a UI kit with placeholder screens. Every single feature works end to end. Live prices load from CoinGecko the moment the app launches. Charts show real historical data with drag-to-inspect interaction. Price alerts fire real push notifications. The tax report generator calculates FIFO/LIFO/HIFO gains and exports a real CSV and PDF. Everything works.
Whether you are a freelancer building for a client, a startup launching an MVP, or a developer who wants to sell a polished iOS product — CryptoFolio saves you 6 to 12 months of development time.
No paid API keys required to run. CoinGecko free tier works out of the box. Build, run, and demo the entire app immediately with zero configuration.
Tech Stack at a Glance
- Platform: iOS 17.0+
- Language: Swift 5.9+
- UI Framework: 100% SwiftUI — no UIKit, no Storyboards
- Persistence: SwiftData
- Charts: Swift Charts (Apple native — no third-party chart library)
- Architecture: MVVM with iOS 17 @Observable macro
- Credential Storage: Apple Keychain via Security framework — never UserDefaults
- Widgets: WidgetKit with App Group data bridge
- Biometrics: LocalAuthentication (Face ID / Touch ID)
- Notifications: UserNotifications framework
- Networking: URLSession async/await — no Alamofire
- Third-party Packages: ZERO — 100% pure Apple frameworks
- Xcode Required: 15.0 or later
- Files Included: 50+ Swift files in clean MVVM structure
Feature 01 — Onboarding Flow
- 5-page onboarding with animated floating coin parallax on the welcome screen
- Skip button jumps directly to the final setup page
- 3 quick-start cards: Add your first coin, Import from CSV, or Explore Markets
- Only shown once — never appears again after the user taps Get Started
- “What’s New” sheet automatically appears after app updates
- Smooth fade transition into the main TabView after onboarding completes
Feature 02 — Portfolio Dashboard
- Total balance card — current portfolio value with real profit and loss in dollar amount and percentage
- Donut chart — interactive asset allocation chart built with Swift Charts SectorMark
- Performance chart — portfolio total value over time with 24H / 7D / 1M / 3M / 1Y range picker
- Toggle between Performance chart and Allocation donut view
- Quick stats row — All-time ROI, Win Rate, Average Hold Time
- Full asset list — coin logo, name, quantity, current value, P&L per holding
- Add holdings via a coin search sheet with current price pre-filled
- Swipe to delete any holding from SwiftData
- Balance privacy mode — one toggle hides every dollar value with ••••••
- All data persisted locally with SwiftData — no backend or cloud sync required
Feature 03 — Live Markets (250+ Coins)
- Live prices for 250+ coins via CoinGecko — auto-refreshes every 60 seconds
- Shimmer skeleton loading — animated placeholder rows while data loads
- Real-time search — filter by coin name or symbol instantly
- Filter pills — All / Top 100 / DeFi / NFT / Layer 1 / Gainers / Losers
- Gainers sorted by 24h change descending, Losers ascending
- Sparkline mini chart on each row — green uptrend or red downtrend line
- Infinite scroll pagination — loads more coins automatically
- Pull to refresh for instant manual data update
- Full coin detail screen — market cap, 24h volume, circulating supply, ATH, ATL, 24h high/low
- Add to Portfolio button on every coin detail screen
- 8 supported currencies — USD, EUR, GBP, JPY, PKR, AED, SAR, BTC
- Error state with Retry button — no crashes on network failure
Feature 04 — Interactive Live Charts
Real historical data from CoinGecko — not mock data, not placeholders. Built entirely with Swift Charts, Apple’s native framework. No third-party chart library required.
- Line chart mode — smooth price history with gradient area fill, green or red based on range direction
- Candlestick (OHLC) mode — full candle chart with body bars and wicks, green bullish, red bearish
- Drag to inspect — drag finger across chart to see exact price and date at any point
- 7 time ranges — 1H, 24H, 7D, 1M, 3M, 1Y, All Time
- Volume bar chart toggle below the price chart
- 24h High / Low gradient bar showing current price position
- 5-minute cache prevents unnecessary API calls on repeated taps
- Rate limit handling — shows a clear message instead of crashing on HTTP 429
- Portfolio performance chart in Portfolio tab — total value over time from all holdings
Feature 05 — Price Alerts and Push Notifications
- Above and below price triggers — alert when a coin goes above OR below any target
- Coin search when creating an alert — find any of 250+ coins
- Quick preset buttons — tap -10%, -5%, Current, +5%, +10% to auto-fill target price
- Real push notifications via UserNotifications framework — fires on real devices
- Active and Triggered tabs — view pending alerts and fired alert history separately
- Per-alert toggle — pause and resume individual alerts without deleting them
- Swipe to delete with automatic notification cancellation
- Clear All Triggered — remove entire history in one tap
- Notification permission banner guides users who have not granted permission yet
- Daily portfolio summary — optional 9 AM notification showing current total value
Feature 06 — NFT Portfolio Tracker
Read-only and completely safe. CryptoFolio only tracks public wallet addresses. It never asks for, stores, or transmits private keys or seed phrases.
- Watch-only wallets — enter any public address, zero security risk
- QR code scanner — scan a wallet address with the camera via AVFoundation
- 7 blockchain networks — Ethereum, Polygon, Solana, BNB Chain, Arbitrum, Optimism, Base
- NFT grid view — 2-column image grid with collection grouping
- NFT list view — grouped by collection with floor price section headers
- Network badge on each card shows which blockchain the NFT lives on
- NFT detail screen — large image, collection info, last sale price, estimated floor value
- Trait rarity breakdown — every trait shown with rarity percentage, sorted rarest first
- Collection stats — floor price, 24h volume, total supply from OpenSea
- Estimated total wallet value calculated from collection floor prices
- Demo mode — realistic labeled sample data when no API key is configured
Feature 07 — DeFi Position Monitor
- Liquidity pool positions — token pair, position value, pool share percentage
- Lending positions — supplied amount, APY, claimable interest
- Borrowing positions — debt amount with health factor gauge (red / orange / green)
- Staking positions — staked amount, APY, claimable reward tokens
- Yield farming — LP token amount, earned rewards, farm APY
- Health factor warning at below 1.5 — “Consider repaying to improve health factor”
- Category filter chips — DEX / Lending / Staking / Yield / Bridge
- Network filter — show positions by blockchain
- Top DeFi Protocols by TVL — powered by DefiLlama free API, no key needed
- Demo mode banner clearly labels sample data when Moralis key is not set
Feature 08 — Tax Report Generator
A real, functional crypto tax calculator — not a UI mockup. Generates actual gain/loss calculations with multiple accounting methods, CSV export, and PDF summary.
- FIFO — First In First Out, the US default method
- LIFO — Last In First Out
- HIFO — Highest In First Out, minimizes realized gains
- ACB — Average Cost Basis, standard in Canada and UK
- Short-term vs long-term gain classification using the 365-day threshold
- 9 event types — Buy, Sell, Swap, Receive, Send, Staking Reward, Airdrop, NFT Sale, NFT Purchase
- Year selector — filter tax events by any year from 2019 to present
- Tax summary card — net gain/loss, estimated tax owed, short and long-term totals
- CSV export — full transaction log with gain/loss per event
- PDF summary export generated with UIGraphicsPDFRenderer
- Multi-country tax rate estimates — USA, UK, Germany, Canada, Australia, Singapore
- Year comparison bar chart — net gain/loss across multiple years
- Synthetic BUY transactions auto-generated from existing portfolio holdings
Feature 09 — Portfolio Analytics Dashboard
- All-Time ROI — total return vs total capital invested
- Sharpe Ratio — risk-adjusted return vs 5% risk-free rate
- Beta vs Bitcoin — portfolio correlation to BTC price movements
- 30-Day Volatility — rolling standard deviation of daily returns
- Win Rate — percentage of sell transactions that were profitable
- Diversification Score — 1 to 10 score based on concentration index
- Monthly Returns Heatmap — grid colored by return percentage, dark green to dark red
- Benchmark Comparison Chart — your portfolio vs BTC, ETH, and S&P 500
- Risk metric tooltips — tap the ? button on any metric for a plain-English explanation
- Portfolio Summary Widget — Small, Medium, Large — total value, 24h change, top assets
- Coin Price Tracker Widget — Small, Medium — configurable coin, live price, sparkline
- Alert Status Widget — Small, Medium — active alert count, next alert preview
- Deep links — tap any widget to open the correct screen inside the app
- Auto-update via WidgetCenter.reloadAllTimelines() after every portfolio or alert change
- App Group data bridge — data flows from SwiftData to widgets via shared UserDefaults
Feature 11 — Face ID / Touch ID Security
- Full-screen lock shown on every app launch when biometrics is enabled
- Auto-triggers Face ID / Touch ID on screen appear — no button tap needed
- Passcode fallback for devices without biometrics or when Face ID fails
- Configurable auto-lock timer — Immediately / 1 min / 5 min / 15 min / Never
- Balance privacy mode — separate from lock screen, hides numbers without locking
- Uses Apple’s LocalAuthentication framework only — no third-party biometric SDKs
Feature 12 — Settings
- Appearance — Light / Dark / System theme, alternate app icons (Default / Dark / Gold)
- Currency — 8 currencies with flag and symbol
- Privacy — hide balance toggle and compact price display
- Security — Face ID toggle and auto-lock timer
- Notifications — alerts toggle, sound toggle, daily summary
- Data — refresh interval, clear cache button
- API Settings — all keys stored in Apple Keychain, never UserDefaults
- Portfolio — export to CSV, import from CSV, reset all data
- About — version, rate the app, privacy policy, terms, contact support
APIs Used — All Free Tiers, No Keys Required to Run
- CoinGecko (Free) — all live prices, charts, market data — no key required
- CoinGecko Pro (Optional) — removes rate limits, faster refresh
- DefiLlama (Free) — DeFi protocol TVL list — completely free, no key ever
- OpenSea v2 (Free) — NFT collection stats and floor prices — no key required
- Moralis (Free tier, Optional) — live NFTs and DeFi positions
- Etherscan (Free tier, Optional) — wallet ETH token balances
All API keys entered by users are stored in Apple Keychain using the Security framework. Keys are never stored in UserDefaults and never transmitted to any server.
What’s Included
- Full Xcode project source code (CryptoFolio.xcodeproj)
- 50+ Swift files organized in clean MVVM folder structure
- WidgetKit extension with 3 widget types across 9 size configurations
- Complete HTML documentation with step-by-step setup guide
- 6 months of author support included with purchase
Getting Started — 5 Steps
- Step 1 — Open CryptoFolio.xcodeproj in Xcode 15+. No packages to resolve, no SPM dependencies. Opens and builds immediately.
- Step 2 — Change the Bundle Identifier to your own (e.g. com.yourname.cryptofolio) in both the main target and the CryptoFolioWidget target.
- Step 3 — Add App Groups capability to both targets with the same group ID and update AppConstants.swift. Required for widgets to receive live data.
- Step 4 — Build and run. Live coin prices load from CoinGecko immediately — no configuration needed.
- Step 5 — Optionally add Moralis, Etherscan, or OpenSea keys in Settings inside the running app. All stored in Keychain automatically.
White-Label in Under 30 Minutes
- Change the app name — update Display Name in Xcode, find-replace “CryptoFolio” in Swift files
- Change the accent color — one constant in AppConstants.swift recolors the entire app
- Replace the app icon — drop images into Assets.xcassets. Dark and Gold alternates supported
- Update identifiers — bundle ID, App Group ID, support email — all in AppConstants.swift
- Set your API keys — entered at runtime inside the app, never hardcoded in source
Frequently Asked Questions
Q: Do I need paid API keys to run the app?
No. CoinGecko free tier provides all live prices, charts, and market data with no key required. Moralis, Etherscan, and OpenSea keys are optional and only needed for live NFT and DeFi data.
Q: Is this a real wallet that can hold funds or sign transactions?
No. CryptoFolio is a read-only tracker. It cannot sign or execute blockchain transactions and never requests or stores private keys or seed phrases. This makes App Store submission straightforward.
Q: Will this pass App Store review?
CryptoFolio uses only Apple frameworks, stores credentials in Keychain, includes all required Info.plist usage descriptions, and makes no financial advice claims. It submits as a Finance category read-only tracker.
Q: Can I white-label this for a client?
Yes. Each client project requires a separate Regular License. Rebranding takes under 30 minutes — change the color constant, icons, bundle ID, and display name.
Q: How are API keys secured?
All API keys are stored in Apple Keychain using the Security framework. They are never written to UserDefaults, never logged, and never sent to any external server.
Q: What happens when CoinGecko rate-limits the free tier?
The app shows a clear message — “Rate limit reached, upgrade to CoinGecko Pro in Settings” — instead of crashing. Chart data is cached for 5 minutes to minimize calls.
Changelog
Version 1.0 — June 2026 — Initial Release
- 5-page onboarding with animated floating coin parallax
- 5-tab navigation: Portfolio, Markets, Alerts, Web3, Settings
- Live portfolio dashboard with donut chart and performance chart
- Live markets for 250+ coins with search, filters, shimmer loading, and pagination
- Interactive line and candlestick charts with drag interaction and 7 time ranges
- Price alerts with push notifications, active and triggered history
- NFT portfolio tracker with watch-only wallets across 7 blockchain networks
- DeFi positions — liquidity pools, lending, staking, yield farming
- Tax report generator — FIFO / LIFO / HIFO / ACB with CSV and PDF export
- Portfolio analytics — Sharpe ratio, beta, volatility, monthly heatmap, benchmarks
- WidgetKit extension — 3 widget types in small, medium, and large sizes
- Face ID / Touch ID lock screen with configurable auto-lock timer
- All API keys stored in Apple Keychain — never UserDefaults
- Full light / dark / system theme support
- Zero third-party dependencies — 100% native Apple frameworks
I respond to every message within 24 hours, Monday to Saturday. If you have a question before purchasing, post in the CodeCanyon comments. For setup help after purchase, reach out directly.