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 disconnect and 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.

Last updated 18 Oct 2026