Twitter Digits Is Gone: Phone-Number Sign-In for Mobile Apps in 2026
Key takeaways
- Twitter launched Digits, free SMS sign-in for apps, on October 22, 2014. After its team joined Google in 2017, Digits was replaced by Firebase phone authentication and shut down on September 30, 2017.
- Phone sign-in is rarely free now. Firebase bills per SMS on the Blaze plan (US $0.01, UK $0.04, Germany $0.10 per message, first 10 a day free), and Twilio Verify charges $0.05 per successful verification plus $0.0083 per US SMS.
- The biggest risk is SMS pumping fraud: bots request codes to expensive numbers and someone else earns from the traffic. Limit the countries you send to, rate-limit requests and verify the app before sending.
- Firebase is the closest successor to Digits and the simplest choice for Flutter, iOS and Android apps. Supabase, Auth0 and Cognito work through an SMS provider you configure.
- Vendors themselves warn that a phone number is a weak sole credential. Pair SMS with email, or offer passkeys, for accounts that hold money or private data.
Pricing an app? Try the free app cost calculator or get a range for your project in the instant quote.
Twitter Digits, the free "sign in with your phone number" SDK, shut down on September 30, 2017, and Firebase phone authentication took its place. In 2026, adding SMS sign-in to a mobile app is still straightforward, but it's never free and it attracts fraud. Firebase is the closest successor and the simplest option for Flutter, iOS and Android. Twilio Verify suits apps that want a dedicated verification service. Whatever you choose, limit which countries you send codes to before you launch.
This page replaces the Digits pages and Fabric docs that older tutorials still link to. Digits dates come from its own blog and Twitter's, read through the Wayback Machine. Prices come from each vendor's pricing page and were checked on October 17, 2026.
Disclosure: App369 is my studio, and I build most apps with Flutter and Firebase, which appear below. No vendor on this page paid for a mention.
What happened to Digits, and when
| Date | What happened | Source |
|---|---|---|
| October 22, 2014 | Twitter launches Digits at its Flight conference, alongside Fabric: free sign-in with a phone number and an SMS code | Twitter blog |
| January 18, 2017 | Google agrees to acquire Fabric from Twitter | Google Developers Blog |
| May 17, 2017 | The Digits team announces Digits will become Firebase phone authentication | Digits blog |
| September 30, 2017 | Digits shuts down; apps still on the Digits SDK can no longer sign users in | Digits blog |
Some Digits features didn't carry over to Firebase, including delivering the code by voice call and the optional account PIN, according to Fabric's migration guide.
What the old addresses do today
Checked on October 17, 2026:
- get.digits.com and its blog no longer resolve. The Wayback Machine has copies.
- digits.com now belongs to an unrelated accounting software company, so old "Digits" links send readers somewhere confusing.
- docs.fabric.io/apple/digits/ redirects to the Firebase home page.
The 2026 options compared
Prices were checked on October 17, 2026. SMS prices vary by destination country, so check your own markets.
| Option | How it works | SMS cost | Free allowance | Fraud controls the vendor documents |
|---|---|---|---|---|
| Firebase Authentication | Phone sign-in built into Firebase Auth, with SDKs for Flutter, iOS, Android and web. Android can sometimes verify the number automatically | Per SMS by country on the Blaze plan: US $0.01, UK $0.04, India $0.07, Germany $0.10 | First 10 SMS a day. Not available on the free Spark plan | SMS region policy (new projects allow no regions), Play Integrity on Android, silent push on iOS, reCAPTCHA fallback |
| Twilio Verify | A verification API: you send and check codes from your backend | $0.05 per successful verification, plus $0.0083 per SMS in the US | Check Twilio's current trial terms | Fraud Guard (included), geo permissions, rate limits |
| Supabase Auth | signInWithOtp with a phone number, through an SMS provider you configure (MessageBird, Twilio, Vonage or TextLocal) | Paid to your SMS provider | Supabase's free plan covers 50,000 monthly active users; SMS is extra | CAPTCHA (hCaptcha or Turnstile) and SMS rate limits |
| Auth0 | Passwordless sign-in with an SMS code, through Twilio or a custom phone provider | Paid to your SMS provider | Free plan up to 25,000 monthly active users | Not documented on the passwordless SMS page; add your own rate limits and CAPTCHA |
| Amazon Cognito | SMS sign-in through AWS End User Messaging | US about $0.0077 plus a $0.0042 carrier fee per SMS | Essentials: 10,000 monthly active users free, then $0.015 each | SMS Protect blocks artificially inflated traffic; new accounts start in an SMS sandbox |
Firebase is also rolling out Phone Number Verification, which confirms the number with the mobile carrier instead of sending an SMS. Its documentation currently covers Android only and carrier coverage is partial, so treat it as an addition to SMS rather than a replacement for now.
SMS pumping: the cost nobody budgets for
SMS pumping, also called toll fraud, is when bots hit your "send code" endpoint with numbers in countries where SMS is expensive, and someone shares the revenue from that traffic. Twilio's guide describes it plainly: both attacks inflate traffic "with the intent to make money". It can run up a large bill overnight on an app with no real users.
What the vendors recommend, in order of impact:
- Allow only the countries you serve. In Firebase, set the SMS region policy. In Twilio, set geo permissions. In AWS, use the sandbox until you go live, then SMS Protect.
- Verify the app or the person before sending. Firebase does this with Play Integrity, silent push and reCAPTCHA. Supabase supports CAPTCHA. On your own backend, add a CAPTCHA before the send call.
- Rate-limit per IP address, per phone number and per device, with growing delays between retries. Twilio notes that rate limits slow attackers rather than stop them, so combine them with the steps above.
- Watch codes sent versus codes verified. A sudden drop in the verified share, or traffic from a country you don't serve, is the alarm. Google's pricing page suggests blocking regions with very low verification rates.
- Set a billing alert. Google Cloud (which handles Firebase billing), AWS and Twilio all offer spend alerts, for example Twilio usage triggers. Put one in place before launch.
How to choose
- You're building with Flutter or Firebase already. Use Firebase phone auth. It's the direct successor to Digits, and the Flutter guide covers the full flow. Upgrade to Blaze, set the region policy, and add test numbers for development.
- Your backend isn't Firebase and you want one bill for verification. Twilio Verify. The per-verification price includes fraud protection, and you only pay the $0.05 fee when a code is confirmed (the per-SMS fee is billed on every send).
- Your app runs on Supabase. Use its phone login with Twilio or another supported provider, and turn on CAPTCHA before launch.
- You're on AWS already. Cognito with End User Messaging, plus SMS Protect.
- Your users can receive email or use passkeys. Consider making SMS optional. Email magic links work in Firebase and Supabase, passkeys are standard on Apple and Google devices, and Supabase's passkey support is still marked experimental. Fewer SMS sends means less cost and less fraud.
Migration checklist for an app still built around Digits
- Find the old SDK. Search the project for
Digits,FabricandTwitterKit. If they're still there, sign-in has been broken since 2017 or the code is dead weight. - Pick the new provider from the table above, and create a test project first.
- Map existing users. If your backend stored Digits user IDs, match accounts by phone number instead, and make sure the number is stored in E.164 format (
+15615551234). - Set the fraud controls before launch: a country allow list, rate limits, app verification and a billing alert.
- Add test numbers so development and app review don't send real SMS.
- Write the consent text. Tell meers an SMS may be sent and that standard rates apply. Firebase's docs also ask you to tell users their number is sent to Google for spam and abuse prevention.
- Test on real devices, including a phone without Google Play services and a slow network, before you release.
Need a hand?
If phone sign-in is stuck on one bug, such as codes that never arrive, a reCAPTCHA loop or a verification that fails on iOS only, the App Fix Ticket is a fixed-price option. The Diagnosis is $450 in 3 business days and the Fix is $1,200 in 5 business days. It covers Flutter, Swift, Kotlin and Firebase among others, and it doesn't cover rewrites. For a full sign-in rebuild, get in touch and I'll scope it.
Frequently asked questions
- What replaced Twitter Digits?
- Firebase Authentication's phone sign-in. The Digits team joined Google in January 2017, announced in May 2017 that Digits would become Firebase phone authentication, and shut Digits down on September 30, 2017. Apps that still used the Digits SDK after that could no longer sign users in.
- How much does SMS sign-in cost in 2026?
- It depends on the vendor and the country. Firebase charges per SMS on the Blaze plan, from $0.01 in the US to $0.10 in Germany and more elsewhere, with the first 10 SMS a day free. Twilio Verify charges $0.05 per successful verification plus a channel fee, $0.0083 per SMS in the US. Supabase, Auth0 and Cognito pass the cost through to the SMS provider you connect.
- What is SMS pumping fraud?
- Attackers trigger sign-in codes to premium or high-cost numbers they profit from, so your SMS bill grows with no real users behind it. Twilio, Google and AWS all document it. The usual defences are a country allow list, rate limits per IP and per number, app attestation or CAPTCHA before sending, and watching the ratio of codes sent to codes verified.
- Is phone-number sign-in secure enough on its own?
- For low-risk apps it is common, but Firebase's own docs note that a phone number can be transferred between people, and AWS says SMS isn't a security best practice. For accounts with payments or private data, add a second factor or offer passkeys.
- Can I test phone sign-in without paying for SMS?
- Yes. Firebase lets you add up to 10 test phone numbers with fixed codes that never send a real SMS. Use hard-to-guess numbers and codes, and change them regularly.
Sources
- Twitter blog, "A better way to sign in with Digits" (October 22, 2014), Wayback Machine copy
- Digits blog, "Introducing Firebase phone authentication" (May 17, 2017), Wayback Machine copy
- Digits blog, "Digits is now shut down" (October 2, 2017), Wayback Machine copy
- Google Developers Blog, "Welcoming Fabric to Google" (January 18, 2017)
- Fabric docs, "Migrating from Digits" (September 2017), Wayback Machine copy
- Firebase blog, "Firebase Phone Auth" (2017)
- Firebase docs, phone authentication on the web (SMS region policy, test numbers)
- Firebase docs, phone authentication in Flutter
- Firebase Authentication limits
- Google Cloud Identity Platform pricing (per-country SMS prices)
- Firebase Phone Number Verification
- Twilio Verify pricing
- Twilio docs, preventing toll fraud
- Supabase docs, phone login
- Auth0 docs, passwordless with SMS
- Amazon Cognito docs, SMS message settings
- AWS End User Messaging pricing
- Apple Developer, passkeys
- Supabase docs, passkeys (experimental)
Want this done at a fixed price?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
Related Resources
Related guides
Firebase Security Rules: The Complete Guide for App Developers (2026)
Firebase security rules complete guide for 2026: Firestore rules, role-based access control, data validation, and Cloud Functions for server-side protection.
Read more →Flutter Security Best Practices: Protecting Your App in 2026
Flutter security best practices for 2026: secure storage, API key protection, SSL pinning, code obfuscation, and AES-256 encryption explained in detail.
Read more →Deep Linking in 2026: What Replaced Firebase Dynamic Links and How to Set It Up
What deep linking is, what happened when Firebase Dynamic Links shut down on August 25, 2025, and how to set up Universal Links and Android App Links in 2026. Vendor options and prices checked October 17, 2026.
Read more →