Tor Onion Proxy For Flutter (Android only)

What is this?

This is a Flutter Plugin for Android, based on code from Tor Onion Proxy Library and Tor Android.

Check out the example app included in this repo for reference on how to use this library with sockets.

Currently used Tor version

This is built using tor

All releases



How do I use this plugin?

Preparation (for Android App Bundling)

  1. Add android.bundle.enableUncompressedNativeLibs=false to your android -> file.
  1. Add android:extractNativeLibs="true" to your AndroidManifest.xml.
<manifest xmlns:android=""



  1. Add shrink, zip aligned and minify settings into your android/app/build.gradle file.
android {
    compileSdkVersion 29

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 29

    buildTypes {
        release {
            signingConfig signingConfigs.debug
            shrinkResources false
            zipAlignEnabled false
            minifyEnabled false
  1. Use --no-shrink param in build appbundle command.
flutter build appbundle --no-shrink ...

1. add dependencies into you project pubspec.yaml file

    utopic_tor_onion_proxy: version_number

2. import lib

import 'package:utopic_tor_onion_proxy/utopic_tor_onion_proxy.dart';

3. start Tor Onion Proxy

try {
    port = await UtopicTorOnionProxy.startTor();
} on PlatformException catch (e) {
    print('Failed to get port. Message: ${e.message}');

4. check is Tor OP running

try {
    await UtopicTorOnionProxy.isTorRunning();
} on PlatformException catch (e) {
    print('Failed to get is tor running. Message: ${e.message}');

5. stop Tor Onion Proxy when done

try {
    await UtopicTorOnionProxy.stopTor();
} on PlatformException catch (e) {
    print('Failed to stop tor. Message: ${e.message}');