Safety
These toys are used on bodies. The SDK enforces the rules below, and the developer terms forbid working around them.
What the SDK does for you
- No raw access. Only the documented calls send anything to the toy.
- Clamping. Strength is clamped to 0–100, then to your app's
maxStrength. - Auto-stop. Every command has a duration (vibrate, presets and patterns up to 60 s; suction up to 60 s; heat up to 10 min) and stops when it ends.
- Stops on page events. On disconnect, when the page closes, and when the page is hidden (unless you set
backgroundPlayback: true). - Reliable timers. Timers run in a Web Worker, so a hidden tab can't stretch a 3-second command into a minute.
- Explicit stops. A toy keeps running its last command, so the SDK always sends stop itself, including before it disconnects.
- Rate limit. At most one write every 50 ms per toy. The newest command wins.
What you must do
- Get consent. Only control a toy with the clear, ongoing consent of the person using it.
- Show a Stop button that's always visible and always works. Call
toy.stop(). - Adults only. Your app must not target or be marketed to anyone under 18.
- Handle disconnects. Listen for
disconnectand tell the player. - Think before
backgroundPlayback. Only turn it on if your app really needs to play while hidden, such as a game the player controls from another device. - Report safety bugs within 72 hours of finding one that could make a toy behave unexpectedly.