Design Standards
Guidelines
These guidelines are meant to help you succeed as a mini app developer.
MiniKit Integration
Apps should integrate with MiniKit. MiniKit supercharges your web application into a mini app with features that are not available anywhere else. Specifically, World ID and Wallet access. Thinking through how your app can leverage these features will help you succeed and make your application much more interesting to users.
Mobile First
Mini apps are inherently access via mobile. Your application UI should look and feel like an app. This includes tab navigation, snap to text boxes, no footers, no sidebars, minimal scrolling, no hamburger menus, and smooth transitions.
❌ Bad Example
Footer and long scrolling
✅ Good Example
Bottom tab navigation and anchored buttons
Localisation
Many of our users are located around the world. Apps that are localised for each region will perform significantly better. You can recognize the user's locale by using the Accept-Language header
These languages are particularly important given our users:
- English
- Spanish
- Japanese
- Korean
Usernames
You should never display the user's wallet address, instead use their username. Usernames are our ENS compatible username for every World App user. See the docs on how to implement.
Using the Address Book
World ID inherently allows anonymity between applications. We generally encourage
developers to use their own Verify Command and verify the proof. However, we also offer a World ID
address book. This contract stores a mapping addressVerifiedUntil
you can query to see if a World App
address is World ID Orb verified.
Design Patterns
Here are some design patterns that we recommend you follow:
- Wallet Auth -> Show Usernames
- Wallet Auth -> Verify Command
- Wallet Auth -> Resolve verification via Address Book
If you use Sign in with World ID you should not be doing any transactions with the user's wallet address. Instead, you should be using the username. Sign in with World ID and Verify offer the same World ID guarantees, but Verify is more reliable.