Mobile, PC & developer handoff
Updated 2026-09-18: SDK installation and game-only embedding are separate deliverables. Implement the game-only embed guide, then register its deployed URL. A homepage with SDK installed can still overflow inside the player.
Updated: 2026-09-17. Applies to the v1.4 SDK and the current tokenApps player.
Deliverables to request
| Deliverable | What the developer must provide |
|---|---|
| Primary URL | HTTPS game-only entry point, directly playable in an iframe |
| Device support | Mobile, PC, tablet; mark unsupported devices honestly |
| Build delivery | One responsive build, or separate mobile / PC test URLs |
| Player orientation | Landscape or portrait for the primary player frame |
| Input | Touch for mobile, keyboard / mouse for PC; optional gamepad |
| Languages | English first where supported; list all actual game languages |
| Integration | Not started / in progress / integrated, plus individual SDK features |
| QA | Tested browser versions, device/OS, completed checks and known issues |
| Artwork | Icon, cover, up to three real gameplay screenshots |
| Contact | Developer email, build version/date and target fix dates in notes |
Open the registration form and use Download developer brief even before signing in. It exports the current answers and a checklist to send to a developer. Downloading does not send messages. Submit the finished form when ready. Owners of existing games use Mobile & PC requirements in My games. Operators see the private brief in the app detail panel.
One entry point, multiple devices
Prefer a responsive player URL. If the game has separate builds, provide both URLs for review and route from the primary URL yourself. Submitted mobile/PC URLs are not automatically wired into the platform player.
Avoid routing purely by user agent: desktop windows can be narrow, tablets can have keyboards, and users can rotate mid-game. Base layout on the available frame size and input capability. Keep saved progress compatible between builds, or document differences.
The host records one orientation per app today. A mobile portrait + PC landscape combination needs a primary build that adapts within the chosen player container. Report device-specific orientation requirements in notes; there is no per-device orientation selector in the live player yet.
Fit the frame and remove unintended scroll
The iframe is smaller than the browser window because tokenApps has its own controls. Never size the game from screen.width or a fixed desktop height. Use the actual container size.
This is a starting point for a game-only document; do not apply it to an entire website containing FAQ or account pages:
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<style>
html, body { width: 100%; height: 100%; margin: 0; }
body { overflow: hidden; overscroll-behavior: none; }
#game-root {
position: fixed; inset: 0; min-width: 0; min-height: 0;
box-sizing: border-box;
padding: env(safe-area-inset-top) env(safe-area-inset-right)
env(safe-area-inset-bottom) env(safe-area-inset-left);
}
canvas { display: block; width: 100%; height: 100%; }
.game-input { touch-action: none; }
button { min-width: 44px; min-height: 44px; }
</style>
<div id="game-root"><canvas class="game-input"></canvas></div>
Use ResizeObserver on #game-root to call your engine's resize method. Update canvas drawing-buffer dimensions for devicePixelRatio separately from its CSS size; keep input coordinates and the camera in sync. Cap rendering resolution on slower devices. Changing canvas width/height resets its context, so redraw without recreating game state.
For a fixed-ratio board, calculate a contain scale (letterboxing is acceptable). HUD, pause, score, retry and touch controls must remain inside the visible area. Do not hide an oversized canvas behind overflow:hidden and call it responsive. Internal menus may scroll intentionally; the play surface should not create a second page scrollbar.
Input, audio and lifecycle
- Use pointer events for mouse and touch. All mobile actions need visible touch controls; no hover-only action.
- Limit
touch-action:noneand gesture prevention to the game surface. Do not globally disable zoom or native form interaction. - Keep touch targets at least 44×44 CSS px with space between them.
- Unlock audio on tap/click. Handle failed
play()/ suspended AudioContext without blocking the game. - Pause appropriately on
visibilitychangeand resume safely. Avoid counting hidden time yourself. - Test resize, orientation change, browser toolbar expansion, device rotation and fullscreen rejection. Fullscreen is optional; a normal iframe must remain playable.
- Guard localStorage, cookies and IndexedDB with fallbacks. Third-party frames can retain their origin but browser policies can block storage.
- Do not restart a round on every SDK
sessionevent. Login and token refresh can repeat it.
QA matrix
These are review targets, not a promise that the host always gives these exact dimensions. Test the actual iframe bounds, including shorter heights.
| Class | Viewports to exercise | Browsers |
|---|---|---|
| Small phone | 320×568, 390×844 | iOS Safari, Android Chrome on actual supported devices |
| Phone landscape | 844×390 | Rotation, visible HUD, no unwanted scroll |
| Tablet | 768×1024, 1024×768 | iPad Safari / Android Chrome as claimed |
| PC | 1366×768, 1920×1080, narrow resizable window | Chrome, Edge, Firefox, macOS Safari as claimed |
For each claimed device: boot → play → pause/resume → game over → replay. Also verify guest play, blocked storage, SDK unavailable, login during play, cloud save after reload, and optional features declining/unavailable. For each result record device, OS, browser version, build version and date. Emulation is useful for layout; it is not proof of real-device audio or fullscreen support.
Farming, assets and release
The host measures time and settles automatic farming at 60 seconds. The existing SDK completion path has a 45-second threshold and shares the same daily award. Never add a second local TAP wallet or promise a reward from a client timer. See SDK handoff.
Upload PNG/JPEG/WebP only: each file at most 2MB and combined submission images at most 2.5MB. Recommended icon 512×512 and cover 1600×900 (16:9); include mobile and PC gameplay screenshots where supported. Do not bake tiny labels into artwork.
Unfinished SDK work can be reported honestly; it does not automatically block submitting for review. Approval and publishing are separate. A successful HTTP embed check only checks headers, not whether the game fits or can be controlled.
Copyable request
Please deliver:
- Primary HTTPS player URL (game-only)
- Mobile / PC / tablet support and unsupported cases
- Responsive build or device URLs, routing handled by primary URL
- Primary orientation, touch + keyboard/mouse controls
- SDK 1.4 integration status and feature list
- Guest play, blocked storage, no unintended scroll, resize/rotation, audio checks
- Device / OS / browser / build versions, known issues and fix dates
- English game name/copy, supported languages, icon/cover/gameplay screenshots
- Developer contact email
Documentation: https://tokenapps.io/dev/sdk
Device checklist: https://tokenapps.io/dev/devices
Submission / downloadable brief: https://tokenapps.io/submit