SuperWallet docs
v1.1.0
Wallet demoAdmin demo Get help
● Set up · Outside accounts

Services & costs
accounts, keys, who pays.

Every outside service the product can use: what to request, what to send, where the key goes, how to test it, and what to use while you wait. Then the costs, and who pays each one.

On Windows

The commands on this page are written for macOS and Linux shells. On Windows, run them in Git Bash or WSL, where they work as written. In PowerShell, set a variable with $env:NAME="value" instead of export. Flutter, Node.js and the Firebase and FlutterFire CLIs run natively on Windows; iOS and macOS builds need a Mac.

01What you need, in order

ServiceNeeded forWithout it
Firebase (Blaze)Everything server-sideThe wallet runs, but no settings, sign-in, push or PRO
Reown project IDWalletConnectWalletConnect shows "WalletConnect not configured"
0x and / or 1inch keyExecutable swaps on EVM chains, and your fee on themEVM swaps use a direct DEX router where one is known (no fee) or show an estimate marked "~ Indicative via CoinGecko"
Solana fee token accountsYour fee on Jupiter swapsSolana swaps run without your fee
Apple and Google server credentialsChecking PRO purchasesPurchases cannot be verified; grant PRO by hand
Transak partner accountBuying crypto by cardLeave the on-ramp off
Alchemy, Helius, Moralis, explorers, AnthropicFaster data, history, NFTs, Portfolio BrainPublic endpoints and fewer features
Menus change

Provider dashboards change their menus often. These steps say what to create, not every click. Each provider's own docs have the current path.

02Firebase

  1. Create the project and switch to BlazeSee Installation. Cloud Functions and Secret Manager need Blaze.
  2. Set a budget alertIn the Google Cloud billing settings for the project. It warns you; it does not stop spending.

Meanwhile: the package's placeholder firebase_options.dart lets the wallet start without Firebase, so you can try the app first.

03Reown (WalletConnect)

  1. Create a projectAt cloud.reown.com, create a project for your wallet. Use your own app name and website.
  2. Copy the Project IDPut it in REOWN_PROJECT_ID in crypto_wallet/.env, or in Admin → System Config → Remote API Keys → WalletConnect / Reown Project ID.
  3. Restrict itIf the dashboard offers allowed domains or app IDs, add your web domain and bundle ID.

Test: open a dApp's "Connect wallet → WalletConnect" in a desktop browser, scan the QR code from the wallet's WalletConnect screen. The dApp shows your wallet as connected.

Web build: the relay uses a WebSocket (wss://). The included firebase.json allows it with connect-src 'self' https: wss:. If you host elsewhere with your own Content-Security-Policy, include wss: in connect-src.

040x API key

  1. Create an account and an appAt dashboard.0x.org. Copy the API key.
  2. Add itZEROX_API_KEY in .env (spelled exactly like that), or Admin → System Config → Remote API Keys → 0x Protocol API Key, then publish.
  3. Read their termsCheck 0x's current plan limits and its own fees on swaps. Your fee is added separately (how).

Test the key with the same endpoint the app uses. A JSON price means it works; 401 means the key is wrong or missing.

curl -s "https://api.0x.org/swap/allowance-holder/price?chainId=1&sellToken=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE&buyToken=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48&sellAmount=10000000000000000" \
  -H "0x-api-key: <your-0x-key>" -H "0x-version: v2"

Meanwhile: the swap screen shows indicative prices or direct-router quotes, and the fee can stay off.

051inch API key

  1. Create a keyAt portal.1inch.dev.
  2. Add itONEINCH_API_KEY in .env, or Admin → System Config → Remote API Keys → 1inch API Key.

Test:

curl -s "https://api.1inch.dev/swap/v6.0/1/quote?src=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE&dst=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48&amount=10000000000000000" \
  -H "Authorization: Bearer <your-1inch-key>"

One of the two keys is enough to get started. With both, the app asks both at the same time and takes the first usable quote, unless you set a preferred aggregator in Admin → Swap Config (ParallelChainAwareSwapQuoteSource in lib/core/swap/swap_quote_service.dart).

06Solana fee token accounts

Jupiter needs no key. To earn your fee on Solana, your Solana fee wallet needs an associated token account for each token users swap into (why). The app checks this before every Jupiter quote; if the account is missing, that swap runs without your fee.

  1. Create the accountsFor the tokens users receive most, for example USDC and USDT. With the Solana command-line tools: spl-token create-account <token-mint> --owner <your-solana-fee-wallet>. Most Solana wallet apps also create the account when the wallet first receives that token. Each account costs a small refundable SOL deposit.
  2. Check oneAn empty "value":[] means the account does not exist yet:
curl -s https://api.mainnet-beta.solana.com -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"getTokenAccountsByOwner","params":["<your-solana-fee-wallet>",{"mint":"<token-mint>"},{"encoding":"jsonParsed"}]}'

Meanwhile: leave the Solana fee wallet empty. Solana swaps work without a fee.

07Apple: App Store subscription checks

  1. Join the Apple Developer Program as an organisationApple accepts crypto wallets only from organisations (store notes).
  2. Create the subscriptionAn auto-renewable subscription with your product ID (PRO setup, with Apple's guide linked there).
  3. Create an App Store Server API keyFollow Apple's guide Creating API keys to authorize API requests. You get a key ID, an issuer ID and a .p8 file that downloads once.
  4. Fill functions/.envAPP_STORE_KEY_ID, APP_STORE_ISSUER_ID, APP_STORE_PRIVATE_KEY (the .p8 text in double quotes, line breaks as \n), APPLE_BUNDLE_ID (your iOS bundle ID) and PRO_WEEKLY_PRODUCT_ID. Then firebase deploy --only functions.

Test: buy with a sandbox tester in a TestFlight build, then read the log of the function the app calls:

cd crypto_wallet
firebase functions:log --only validatePremiumEntitlement -n 50

Success logs Premium entitlement validated. "App Store entitlement verification is not configured." means the variables are missing.

Meanwhile: grant PRO by hand in Admin → Users, for example to store reviewers.

08Google: Play subscription checks

  1. Create the subscriptionWith the same product ID and a weekly base plan (Google: create and manage subscriptions).
  2. Create a service account and give it accessEnable the Google Play Android Developer API, create a service account with a JSON key and grant it access to your app in Play Console, as described in Google's Getting started with the Play Developer API.
  3. Fill functions/.envGOOGLE_PLAY_SERVICE_ACCOUNT_JSON = the JSON on one line. Deploy the functions.

The app passes the user's account token with every purchase; the server refuses a subscription bought by a different account (how it works).

Test: buy as a license tester from an internal testing track and read the same log. "Google Play entitlement verification is not configured." means the variable is empty; "credentials are malformed" means the JSON is not on one valid line.

Google can take a while before a new service account works; if checks fail at first, wait and retry before changing anything.

09Transak (buy crypto by card)

  1. Apply as a partnerAt Transak's partner sign-up. Expect a business verification (KYB): company documents, your app, the countries you serve. Transak decides what they need.
  2. Test in stagingUse a staging key and Admin → Monetization → On-Ramp Configuration → environment Staging. The app then opens Transak's staging site.
  3. Go liveWhen Transak approves you, switch to the production key and Production.

Meanwhile: keep the on-ramp off. Any revenue share is between you and Transak.

10Optional data providers

ProviderVariableAdds
AlchemyALCHEMY_API_KEYFaster EVM data on Ethereum, Optimism, Polygon, Base, Arbitrum, Avalanche
HeliusHELIUS_API_KEYSolana NFTs and asset data
MoralisMORALIS_API_KEYNFT metadata, prices, history
Etherscan familyETHERSCAN_API_KEY and the per-chain keysTransaction history
AnthropicSecret CLAUDE_API_KEY (server only)The optional Portfolio Brain PRO feature

11Third-party services and costs

The purchase covers the source code. Every service below runs on your own accounts and is billed to you by the provider, or to your users where noted. Prices change; check each provider's current pricing before you launch.

You pay the providers, not us

Your purchase covers the source code only. It includes no API credit, no hosting and no provider plan. Every outside service runs on your own account, under your own agreement with that provider, and anything you use beyond a provider's free tier is billed to you by that provider — not by us and not by the marketplace. That applies to every service this product can call: Firebase on the Blaze plan; 0x and 1inch for EVM swap quotes; Jupiter for Solana swap quotes; Reown (WalletConnect); Alchemy, Helius, Moralis, the Etherscan-family block explorers and the public RPC endpoints for chain data and history; CoinGecko, DexScreener and Birdeye for prices; the fiat on-ramp partner you enable (Transak, MoonPay or Ramp); and Anthropic if you switch on Portfolio Brain. Free tiers, rate limits and prices belong to each provider and change without notice, so read their current pricing before you launch and set a budget alert wherever one is offered. We cannot grant, extend, discount or refund any third-party usage.

CostWho paysNotes
Firebase Blaze usage (functions, Firestore, hosting, Secret Manager, backups)YouPay as you go. Set a budget alert.
Domain and web hostingYouOptional; Firebase Hosting or any static host works
RPC and data providers (Alchemy, Helius, Moralis, explorers)YouFree tiers exist; paid plans as you grow
Jupiter, CoinGecko, DexScreener, Birdeye and the public RPC endpointsYouCalled without a key by default, on each provider's free public tier, which is rate-limited. CoinGecko and Birdeye also take an optional key (COINGECKO_API_KEY, BIRDEYE_API_KEY). Heavier use needs that provider's paid plan, billed to you.
0x and 1inch API plansYouCheck plan limits and the provider's own swap fees
Reown (WalletConnect)YouCheck Reown's current plans
TransakCard fees are paid by the buying userTerms are in your contract with Transak
Apple Developer ProgramYouYearly membership
Google Play ConsoleYouOne-time registration
Store commission on subscriptionsTaken from your subscription incomeSet by Apple and Google
Anthropic (Portfolio Brain)YouOnly if you set CLAUDE_API_KEY
Network fees (gas) for sends, swaps and approvalsYour usersPaid in the chain's coin from the user's own wallet
Your swap feeYour usersAdded to their swap when you turn it on (earnings)
Solana token account depositsYouA small refundable SOL amount per fee token account