Last updated: October 8, 2026. Effective: October 8, 2026.
SMSly is an Android application (package com.apexmobile.smsservice) that sells one-time virtual phone numbers for receiving SMS verification codes from online services (e.g., WhatsApp, Telegram, ChatGPT). You choose a service and a country, pay from an in-app wallet, receive the code, and are refunded automatically if no SMS arrives within the allocation window.
The service is provided by Timotty Two LLC ("we", "us", "our"). By using the app, you agree to these Terms.
You must be at least 13 years old (or the minimum age required in your jurisdiction) to use SMSly. The app is not directed to children under 13. If you are a parent or guardian and believe your child has provided personal information, contact us at support@edgpt.site.
On first launch, the app generates a 32-byte device secret stored in the Android Keystore (or iOS Keychain). The server stores only the SHA-256 hash of this secret. One device = one account. This account is anonymous: it has no email, no display name, and no password. Your Activations balance is tied to this device. If you reinstall the app without linking Google or Apple, the balance is lost.
You may link a Google account (Android) or Apple account (iOS) via Firebase Authentication. This attaches the provider's stable subject identifier to your SMSly account, allowing you to recover your balance on a new device or after reinstall. Linking is optional. We receive only the Firebase UID, the provider subject ID, the email (or private-relay address for Apple), and the display name. We never see your Google/Apple password.
If you link a provider that already has an SMSly account, you may choose to move your anonymous balance into that existing account (one direction only: anonymous → linked). This is a zero-sum ledger transfer; the anonymous account is then marked merged and its device credential revoked.
The wallet unit is an integer count of Activations. One Activation is the price of one standard number. Balances, prices, grants, debits, and refunds are all integer Activations — never fractional, never in USD.
Activations are sold in fixed packs through Google Play Billing (RevenueCat):
| Product ID | Grants | Reference price (US) |
|---|---|---|
activations_5 | 5 Activations | $0.99 |
activations_15 | 15 Activations | $2.49 |
activations_40 | 40 Activations | $5.99 |
activations_100 | 100 Activations | $12.99 |
The price you pay is the store's price in your currency. The reference prices above are used only to compute per-Activation value and "Best value" marking (which applies only to the 15-Activation pack). No bonus Activations, no promotional multipliers.
If a number receives no SMS before it expires, its cost is automatically refunded to your Activations balance. Once a verification code has been delivered, no refund is issued — not on cancel, not on expiry, not via support. This is the "Golden Rule of Refund" enforced by the server.
Activations have no monetary value outside the app. They cannot be withdrawn, transferred to another user (except via the account-merge flow), or exchanged for cash.
Numbers and SMS text are supplied by a third-party provider (TemporaSMS in production; a sandbox provider in development). When you order a number, we request a line from the provider for the chosen service and country. The provider returns a phone number and an activation ID. We poll the provider for incoming SMS. The SMS text (including the verification code) is delivered to you in the app and stored in our database linked to your account.
We do not control carrier delivery rates or latency. The app shows a delivery-rate indicator (green ≥ 95%, amber < 95%) based on historical data from the provider.
We do not sell personal data. Third parties process data only as needed to provide their specific service.
active. On deletion: email and display name are nulled, display name set to "Deleted User", Firebase UID cleared, provider identities deleted. The users row remains with status = 'deleted'.wallet_transactions)revoked_at, revoke_reason = 'account_deleted'), row retained.Note — Metrics logs and backups are retained only as long as necessary for operational, security, and compliance purposes, and as required by applicable law.
You may delete your account from the app: Profile → Delete account and all data. This triggers DELETE /api/auth/account, which runs in a single transaction:
WAITING_SMS activations with their usual refund (refund added to balance).ACCOUNT_DELETION_FORFEITURE ledger entry; wallet set to 0.status = 'deleted', email = NULL, display_name = 'Deleted User', firebase_uid = NULL, token_version + 1 (revokes all sessions).user_identities).revoke_reason = 'account_deleted').Money that reaches a deleted account later (redelivered purchase, in-flight refund) is credited to the deleted account's ledger where support can find it; it is not refused or redirected. A subsequent deletion would forfeit it.
For users who cannot access the app, contact support@edgpt.site with your device label (shown in Profile) to request deletion.
If you have linked Google or Apple, you may sign out from Profile. This revokes only the current device's credential; the account, its balance, and other devices remain. Anonymous accounts cannot sign out (the device is the only credential).
We may update these Terms. Material changes will be notified in-app. Continued use after the effective date constitutes acceptance.
These Terms are governed by the laws of the United States. Disputes will be resolved in the competent courts of the United States.
Questions? Contact support@edgpt.site.