Ce contenu est en cours de traduction et sera disponible ici dès qu'il sera prêt.
App Store Review Strategies
Publishing a crypto app to Apple's App Store or Google Play is navigating hostile territory. These platforms have policies specifically targeting cryptocurrency apps, some reasonable, some designed to protect their payment monopolies.
This lesson gives you the specific policies you need to know and the strategies that actually work for getting your Solana app approved.
Apple App Store: The Stricter Gatekeeper
Apple's App Store Review Guidelines dedicate an entire subsection to cryptocurrency: 3.1.5 Cryptocurrencies.
The key rules
Wallets are allowed, but only from organizations:
This means:
Individual developer accounts ($99/year) cannot publish wallet apps
You must enroll as an organization through Apple's enrollment process
This requires a D-U-N-S number for your business
If you're building a wallet or any app with self-custody features, you need the organization enrollment before you can even submit.
Exchanges have geographic restrictions:
If your app connects to exchanges or facilitates trading, you need to:
Limit availability to jurisdictions where you're licensed
Provide documentation of licensing if requested
Be prepared for additional scrutiny
NFT experiences must use in-app purchase for certain features:
Apple's position on NFTs has evolved. Currently:
Displaying NFTs the user owns: allowed
Buying NFTs with crypto in your app: allowed
Buying NFTs that unlock app features: requires in-app purchase
The last point is where it gets tricky. If an NFT gives the user something within your app (like premium features), Apple considers that a digital good subject to their 30% cut.
Test account requirements
This is the requirement that trips up most crypto developers:
Apple's reviewers need to test your app's functionality. But how do you give them a "test account" for a wallet that uses real blockchain addresses?
Solving the Test Account Problem
Apple reviewers are not going to create their own Solana wallet, fund it with SOL, and test your app. You need to provide them a way to test without understanding crypto.
Option 1: Demo mode
Build a demo mode into your app that simulates blockchain interactions:
// Check for demo mode flag
const isDemoMode = process.env.DEMO_MODE === 'true';
const executeTransaction = async (tx: Transaction) => {
if (isDemoMode) {
// Simulate successful transaction
await new Promise(resolve => setTimeout(resolve, 2000));
return {
signature: 'DEMO_' + Math.random().toString(36).substring(7),
success: true
};
}
// Real transaction
return await connection.sendTransaction(tx, [wallet]);
};Provide Apple with:
Instructions to enable demo mode
A pre-configured test account
Clear documentation of what's simulated vs real
Option 2: Privy test accounts
If you're using Privy for embedded wallets, they provide a test account system designed specifically for App Store review.
Enable test accounts in Privy Dashboard:
Go to User Management → Authentication → Advanced
Enable "Test accounts"
Note the test account format
Test account format:
Email:
test-XXXX@privy.io(where XXXX is 4+ characters)OTP code: always
XXXXXX(six X's)
Tell Apple reviewers:
The account will be fully functional, with a real embedded wallet, but doesn't require real email verification.
Option 3: Pre-funded test wallet
For apps that connect to external wallets (via MWA on Android or WalletConnect):
Create a dedicated test wallet
Fund it with small amounts of real SOL and tokens
Export the seed phrase
Provide Apple with:
Phantom (or other wallet) download instructions
Seed phrase to import
Instructions to connect to your app
Risks:
Reviewers might not follow complex instructions
Seed phrase could be compromised (use burner wallet with minimal funds)
Multiple reviewers might conflict with each other
The key principle
Whichever approach you choose, the goal is the same: make your entire app testable without requiring the reviewer to understand crypto. Every screen, every flow, every feature should be accessible through your test account or demo mode.
In your App Review Notes, provide clear step-by-step instructions for testing each major feature. Assume the reviewer has never used a crypto app before.
Google Play: Different Challenges
Google Play's policies are found in their "Families Policy" and "Financial Services" sections. For crypto apps, the key document is the Blockchain-based content policy.
Cryptocurrency exchanges and wallets
From Google's policy:
The "certified services" language is vague, but in practice means:
Money transmission licenses where required
Compliance with local financial regulations
Clear terms of service
The Financial Features declaration
When you submit to Google Play Console, you must declare if your app has "Financial Features":
Go to App Content → Financial Features
Select "Yes" if your app handles cryptocurrency
Provide additional information about:
What financial services you offer
What jurisdictions you operate in
Licensing information
Being honest here is important. If you declare "No" and Google's automated systems detect crypto functionality, you'll face delays or rejection.
Google's NFT position
Google has been more permissive than Apple on NFTs:
Buying/selling NFTs with crypto: allowed
NFTs that unlock in-app features: allowed if users can also earn/access them without purchase
The last point matters. If an NFT is the only way to access a feature, Google may push back. But if it's an accelerator or alternative path, you're usually fine.
Avoiding Common Rejection Reasons
Based on real rejection experiences from Solana developers:
Rejection: "Insufficient information about how the app works"
Why: Reviewers don't understand blockchain/crypto Fix: Over-explain in your App Review Notes. Assume zero crypto knowledge.
Rejection: "App requires additional resources to function"
Why: Your app requires a connected wallet, and reviewers don't have one Fix: Implement demo mode or provide test accounts as described above
Rejection: "Guideline 3.1.5 - Business - Payments - Cryptocurrencies"
Why: You're enrolled as individual, not organization Fix: Re-enroll as organization. This takes 2-4 weeks and requires business documentation.
Rejection: "App doesn't function as advertised"
Why: Reviewers couldn't complete a flow because it needed real crypto Fix: Either implement testnet mode for review or provide pre-funded test credentials
Rejection: "Binary rejected due to financial services concerns"
Why: App description or metadata mentioned features that require licensing Fix: Soften language. Instead of "trade crypto" say "view your portfolio and transfer to supported wallets"
Metadata Strategies
Your App Store listing affects both discoverability and review outcome.
Keywords to be careful with
These words can trigger additional scrutiny:
"Trade" / "Trading"
"Exchange"
"Investment" / "Invest"
"Earn" (in context of yields)
"Banking"
"Financial services"
Safer alternatives
"Manage your digital assets"
"Send and receive crypto"
"View your portfolio"
"Access decentralized applications"
"Connect to Web3"
Category selection
Choose carefully:
Finance - triggers financial services review but is often the right category
Utilities - lower scrutiny, works for wallets and tools
Lifestyle - can work for NFT apps focused on collecting
Handling Rejections
Rejections happen. How you respond determines your outcome.
Don't argue, educate
Reviewers often reject because they don't understand. Your appeal should:
Acknowledge their concern
Explain exactly how your app addresses it
Provide clear testing steps
Offer to get on a call if needed (Apple offers this for complex cases)
Be specific to your app and the exact rejection reason. Generic appeals don't work.
When to pivot
Sometimes a feature just won't get approved. Consider:
Removing the problematic feature for App Store version
Offering full functionality on dApp Store
Using deep links to push users to web for certain features
Many successful apps have a "lite" App Store version and full version on dApp Store or as a PWA.
Keeping Your App Listed
Getting approved is just the beginning. Apps can be removed post-approval.
Monitor policy changes
Both Apple and Google update their crypto policies regularly. Subscribe to:
Apple Developer News
Google Play Policy Updates
Solana Mobile updates (they track platform policy changes)
Respond to compliance requests quickly
If you get an email about policy compliance:
Respond within 24-48 hours
Acknowledge the concern
Provide a timeline for addressing it
Actually follow through
Slow responses or ignoring compliance requests can lead to removal.
Don't update metadata carelessly
Changing your app description to be more aggressive about features can trigger re-review. Keep approved language consistent unless you're intentionally accepting the re-review risk.
Summary
Getting a Solana app through App Store and Play Store review requires:
Organization enrollment for Apple (if you have wallet features)
Test accounts that don't require reviewers to understand crypto
Careful metadata that doesn't trigger unnecessary scrutiny
Financial Features declaration for Google Play
Patient appeals when rejections happen
The next lesson covers what happens after you're published: protecting your app from reverse engineering and other security threats.