|
| 1 | +--- |
| 2 | +title: "Requirements for Featured Placement" |
| 3 | +sidebarTitle: "Requirements" |
| 4 | + |
| 5 | +--- |
| 6 | +<Info> |
| 7 | + To submit your app for featured placement, fill out the [submission form](https://buildonbase.deform.cc/getstarted/). |
| 8 | +</Info> |
| 9 | + |
| 10 | +In order to be eligible for featured placement, your app must meet the requirements outlined in this document. |
| 11 | + |
| 12 | +## Complete Metadata |
| 13 | + |
| 14 | +Metadata includes your manifest and embed metadata. Complete, valid metadata is required for indexing, category placement, and high‑quality embeds. |
| 15 | + |
| 16 | +**Acceptance Criteria** |
| 17 | +- Manifest is publicly accessible at `/.well-known/farcaster.json` |
| 18 | +- Required fields are present and valid (`accountAssociation`, `frame`, `primaryCategory`, `tags`) |
| 19 | +- Images meet size/format constraints; text fields respect length limits |
| 20 | + |
| 21 | +**How to Implement** |
| 22 | +- Follow the [Manifest guide](/mini-apps/features/manifest) |
| 23 | +- Implement [embed metadata](/mini-apps/features/embeds-and-previews#implementation) |
| 24 | + |
| 25 | +<Note> |
| 26 | + [Coming Soon] Validate your manifest using our preview tools at <a href="https://base.dev/preview">base.dev/preview</a>. |
| 27 | +</Note> |
| 28 | + |
| 29 | +## In-app Authentication |
| 30 | + |
| 31 | +Users must remain in the Base app throughout the authentication flow. Eliminate flows that bounce users out of the Base app. |
| 32 | + |
| 33 | +**Acceptance Criteria** |
| 34 | +- No external redirects |
| 35 | +- No email / phone verification |
| 36 | +- Users can explore before sign‑in when possible |
| 37 | + |
| 38 | +**How to Implement** |
| 39 | +- Follow the [Authentication guide](/mini-apps/features/authentication) |
| 40 | +- Prefer in‑app SIWF/Quick Auth or wallet auth; |
| 41 | + |
| 42 | +## Client-Agnostic |
| 43 | + |
| 44 | +There must be no client‑specific behaviors or wording that degrade the experience in the Base app. You must also ensure that you don't redirect the user to another client for functionality supported in the Base app. |
| 45 | + |
| 46 | +**Acceptance criteria** |
| 47 | +- Do not hardcode client‑specific URLs (e.g., Farcaster‑only links) |
| 48 | +- Use neutral language in UI (e.g. use "Share to Feed" instead of "Share to Farcaster") |
| 49 | +- Eliminate buttons that deeplink to other clients for features supported in the Base app |
| 50 | + |
| 51 | +**How to Implement** |
| 52 | +- Update all links according to the [Links](/mini-apps/features/links) guide |
| 53 | +- Review the [Base App Compatability](/mini-apps/troubleshooting/base-app-compatibility) guide for functionality not supported in the Base app. All other functionality must keep users in the Base app. |
| 54 | + |
| 55 | +## Gasless |
| 56 | + |
| 57 | +Sponsor transaction fees to remove friction and reduce drop‑off for new users. For mini apps on Base, we recommend using the [Base Paymaster](/onchainkit/paymaster/quickstart-guide). |
| 58 | + |
| 59 | +**Acceptance criteria** |
| 60 | +- Transactions are sponsored via a paymaster |
| 61 | + |
| 62 | +**How to Implement** |
| 63 | +- Recommended: [Base Paymaster](/onchainkit/paymaster/quickstart-guide) |
| 64 | + |
| 65 | +<Note> |
| 66 | + [Coming Soon] Claim free gas credits on <a href="https://base.dev">base.dev</a>. |
| 67 | +</Note> |
| 68 | + |
| 69 | + |
| 70 | +## Batch Transactions (EIP-5792) |
| 71 | + |
| 72 | +Batch sequential actions where applicable to minimize signatures and reduce friction. Use EIP‑5792 capabilities to send multiple calls in one request. |
| 73 | + |
| 74 | +**Acceptance criteria** |
| 75 | +- Where applicable, combine sequential actions into a single batch (e.g. approve + swap) |
| 76 | + |
| 77 | +**How to Implement** |
| 78 | +- See [Batch Transactions](/base-account/improve-ux/batch-transactions) |
| 79 | +- Provider APIs: [`wallet_sendCalls`](/base-account/reference/core/provider-rpc-methods/wallet_sendCalls), [`wallet_getCapabilities`](/base-account/reference/core/provider-rpc-methods/wallet_getCapabilities) |
| 80 | + |
| 81 | +## Mainstream Ready |
| 82 | + |
| 83 | +Design for mainstream users and assume no prior crypto experience. Use familiar language, avoid crypto jargon, and explain benefits rather than mechanisms. Keep copy clear, simple, and confidence‑building. |
| 84 | + |
| 85 | +**Acceptance criteria** |
| 86 | +- Avoid crypto jargon (e.g., “Sign in”, not “Connect Wallet”) |
| 87 | +- Display usernames, not wallet addresses unless necessary |
| 88 | +- Plain‑language copy that explains benefits, not mechanisms |
| 89 | +- Replace client‑specific terms with neutral ones (see Client‑agnostic) |
| 90 | + |
| 91 | +**How to Implement** |
| 92 | +- Follow voice/tone in [Best Practices](/mini-apps/design-ux/best-practices) |
| 93 | +- Provide context and value props on the first screen |
| 94 | + |
| 95 | +## User onboarding |
| 96 | + |
| 97 | +Use the `context` object to make users instantly feel at home with profile pictures, usernames, and other context data. Help new users orient quickly with a lightweight, **optional** onboarding flow or a clear tutorial CTA on the home screen. Defer authentication until needed (if needed at all); offer a guest mode when possible. |
| 98 | + |
| 99 | +**Acceptance criteria** |
| 100 | +- All users can explore the at least part of the app without authenticating |
| 101 | +- Lightweight, optional onboarding or prominent tutorial CTA from the homepage |
| 102 | +- Display profile pictures, usernames, and other context datas instantly |
| 103 | + |
| 104 | +**How to Implement** |
| 105 | +- See [Optimize Onboarding](/mini-apps/growth/optimize-onboarding) |
| 106 | +- Provide quick‑start steps or a short guided tour |
| 107 | + |
| 108 | + |
| 109 | +## Design guidelines |
| 110 | + |
| 111 | +Design for compact, touch‑first contexts with clear primary actions and accessible, responsive layouts. Keep interfaces concise and focused. |
| 112 | + |
| 113 | +**Acceptance criteria** |
| 114 | +- Respect mobile safe areas; concise interfaces with clear primary actions |
| 115 | +- Legible text, accessible contrast, responsive layouts |
| 116 | + |
| 117 | +**How to Implement** |
| 118 | +- Follow [Best Practices](/mini-apps/design-ux/best-practices) |
| 119 | +- UI components: [OnchainKit UI](/mini-apps/design-ux/onchainkit) |
| 120 | + |
| 121 | + |
| 122 | + |
0 commit comments