{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","tabs","tab"]},"redocly_category":"SDK Reference","type":"markdown"},"seo":{"title":"Overview","description":"Everything about Mosaic Journeys, SDKs, and APIs","siteUrl":"https://developer.transmitsecurity.com/","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"overview","__idx":0},"children":["Overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flutter_ts_authentication"]}," is a Flutter plugin for Mosaic Authentication on Android and iOS. It provides secure authentication methods for Flutter applications, including PIN codes, biometrics, WebAuthn, TOTP, and device key signing. It wraps both Apple's public-private key authentication for passkeys on iOS and Google's Credential Manager API for passkeys on Android, delivering a unified native experience for FIDO2-based authentication."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Note"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For additional integration guides such as configuring passkeys and advanced platform-specific features, refer to the native SDK documentation:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://developer.transmitsecurity.com/guides/webauthn/quick_start_sdk_ios/"},"children":["iOS documentation"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://developer.transmitsecurity.com/guides/webauthn/quick_start_sdk_android/"},"children":["Android documentation"]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"capabilities","__idx":1},"children":["Capabilities"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["WebAuthn passkey registration and authentication"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Native biometric authentication (FaceID/TouchID on iOS, fingerprint/face on Android)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Transaction signing with WebAuthn and native biometrics"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["PIN code registration and authentication"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["TOTP registration and code generation"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Device key signing"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Device info and WebAuthn support detection"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"requirements","__idx":2},"children":["Requirements"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["iOS 15.0+, Xcode 14+"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Android API 23+, compileSdkVersion 34+"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Flutter SDK"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"installation","__idx":3},"children":["Installation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add the dependency to your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pubspec.yaml"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"dependencies:\n  flutter_ts_authentication:\n    git:\n      url: https://github.com/TransmitSecurity/flutter_ts_authentication.git\n      ref: 0.0.3\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Install dependencies:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"flutter pub get\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"platform-setup","__idx":4},"children":["Platform setup"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"iOS","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add biometric permission to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ios/Runner/Info.plist"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","header":{"controls":{"copy":{}}},"source":"<key>NSFaceIDUsageDescription</key>\n<string>This app uses Face ID for secure authentication</string>\n","lang":"xml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This module uses Swift Package Manager (SPM) for iOS dependencies. No additional CocoaPods setup is required."]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Android","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add the Maven repository to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["android/build.gradle"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"gradle","header":{"controls":{"copy":{}}},"source":"allprojects {\n    repositories {\n        google()\n        mavenCentral()\n        maven {\n            url \"https://transmit.jfrog.io/artifactory/transmit-security-gradle-release-local/\"\n        }\n    }\n}\n","lang":"gradle"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Update ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["android/app/build.gradle"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"gradle","header":{"controls":{"copy":{}}},"source":"android {\n    compileSdkVersion 34\n\n    defaultConfig {\n        minSdkVersion 23\n        targetSdkVersion 34\n    }\n}\n","lang":"gradle"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add permissions to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["android/app/src/main/AndroidManifest.xml"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","header":{"controls":{"copy":{}}},"source":"<uses-permission android:name=\"android.permission.USE_BIOMETRIC\" />\n<uses-permission android:name=\"android.permission.USE_FINGERPRINT\" />\n<uses-permission android:name=\"android.permission.INTERNET\" />\n","lang":"xml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Make sure your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MainActivity"]}," inherits from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FlutterFragmentActivity"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import io.flutter.embedding.android.FlutterFragmentActivity\n\nclass MainActivity: FlutterFragmentActivity() {\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is required for biometric authentication features and ensures compatibility with Android's biometric prompt APIs."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"initialization","__idx":5},"children":["Initialization"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"dart","header":{"controls":{"copy":{}}},"source":"import 'package:flutter_ts_authentication/flutter_ts_authentication.dart';\n\nfinal auth = FlutterTsAuthentication();\n\nawait auth.initializeSDK();\n","lang":"dart"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Alternatively, initialize with explicit parameters:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"dart","header":{"controls":{"copy":{}}},"source":"final initOptions = TSInitOptions(\n  webAuthnInitOptions: TSWebAuthnInitOptions(\n    startAuthentication: '/auth/webauthn/authenticate',\n    startRegistration: '/auth/webauthn/register',\n  ),\n);\n\nawait auth.initialize(\n  'CLIENT_ID',\n  'your-domain.com',\n  'https://api.transmitsecurity.io',\n  initOptions\n);\n","lang":"dart"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"regional-base-urls","__idx":6},"children":["Regional base URLs"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Region"},"children":["Region"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Base URL"},"children":["Base URL"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["US"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.transmitsecurity.io/"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["EU"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.eu.transmitsecurity.io/"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Canada"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.ca.transmitsecurity.io/"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Australia"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.au.transmitsecurity.io/"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Japan"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.gasne1-ts01.transmitsecurity.io/"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sandbox"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.sbx.transmitsecurity.io/"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Custom domain"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://<your-domain>.com/"]}," (see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/deployment/custom_domains"},"children":["Custom domains"]},")"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":7},"children":["Next steps"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once initialized, implement authentication flows using the available ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/sdk-ref/flutter-ts-authentication/functions"},"children":["functions"]},"."]}]},"headings":[{"value":"Overview","id":"overview","depth":1},{"value":"Capabilities","id":"capabilities","depth":2},{"value":"Requirements","id":"requirements","depth":2},{"value":"Installation","id":"installation","depth":2},{"value":"Platform setup","id":"platform-setup","depth":2},{"value":"Initialization","id":"initialization","depth":2},{"value":"Regional base URLs","id":"regional-base-urls","depth":2},{"value":"Next steps","id":"next-steps","depth":2}],"frontmatter":{"title":"Authentication SDK for Flutter","markdown":{"toc":{"depth":2}},"seo":{"title":"Overview"}},"lastModified":"2026-08-12T11:57:11.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/sdk-ref/flutter-ts-authentication/authentication_overview","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}