OnionSharp 1.1.3

dotnet add package OnionSharp --version 1.1.3
                    
NuGet\Install-Package OnionSharp -Version 1.1.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OnionSharp" Version="1.1.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OnionSharp" Version="1.1.3" />
                    
Directory.Packages.props
<PackageReference Include="OnionSharp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OnionSharp --version 1.1.3
                    
#r "nuget: OnionSharp, 1.1.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OnionSharp@1.1.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OnionSharp&version=1.1.3
                    
Install as a Cake Addin
#tool nuget:?package=OnionSharp&version=1.1.3
                    
Install as a Cake Tool

OnionSharp

Implement Tor easily into your C# projects.

DISCLAIMER

The Tor implementation was completely taken out of WalletWasabi. The code was stripped of its WalletWasabi related components to serve as a general Tor implementation. I do not own this code and I'm not the intellectual owner of the code. Check WalletWasabi commits for that. The project was created for learning purposes only.

Key Features

  • Use TorSettings class to customize your Tor instance.
  • Use OnionHttpClientFactory to create TorHttpClient.
  • Use TorHttpClient to send requests.
  • Use it on client and/or server side.

How to use

// You can use the EnvironmentHelpers to grab the data dir or insert your own path/of/data/directory. 
var dataDir = EnvironmentHelpers.GetDataDir("Sample-Project");

// Create your Tor Settings
var torSetting = new TorSettings(dataDir,
			distributionFolderPath: EnvironmentHelpers.GetFullBaseDirectory(),
			terminateOnExit: true,
			TorMode.Enabled,
			socksPort: 37155,
			controlPort: 37156);

// Create and start TorProcessManager which will start tor.exe
TorProcessManager torProcessManager = new TorProcessManager(torSetting);
await torProcessManager.StartAsync(attempts: 3, CancellationToken.None);

// Create the OnionHttpFactory
var onionClientFactory = new OnionHttpClientFactory(torSetting.SocksEndpoint.ToUri("socks5"));

// Create Http Clients 
var myHttpClient = onionClientFactory.CreateClient("name-of-your-client");

// Send requests to onion address (for example)
await myHttpClient.GetAsync("http://explorerzydxu5ecjrkwceayqybizmpjjznk5izmitf2modhcusuqlid.onion/api/mempool/recent");

Don't trust, verify!

The nuget package contains a built-in tor.exe (v13.5.9). In case you don't trust it, you can replace it with a tor.exe you get by yourself. Download (tor.exe)[https://www.torproject.org/download/tor/] from the official site and replace the executable with your new one.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.3 100 1/27/2026
1.1.2 430 12/8/2025
1.1.1 189 11/27/2025
1.1.0 196 11/27/2025
1.0.6 184 11/27/2025
1.0.5 194 11/27/2025
1.0.4 185 11/27/2025
1.0.3 192 11/27/2025
1.0.2 182 11/27/2025
1.0.1 203 11/24/2025
1.0.0 198 11/24/2025