StrikeWallet.Client
1.4.0
dotnet add package StrikeWallet.Client --version 1.4.0
NuGet\Install-Package StrikeWallet.Client -Version 1.4.0
<PackageReference Include="StrikeWallet.Client" Version="1.4.0" />
<PackageVersion Include="StrikeWallet.Client" Version="1.4.0" />
<PackageReference Include="StrikeWallet.Client" />
paket add StrikeWallet.Client --version 1.4.0
#r "nuget: StrikeWallet.Client, 1.4.0"
#:package StrikeWallet.Client@1.4.0
#addin nuget:?package=StrikeWallet.Client&version=1.4.0
#tool nuget:?package=StrikeWallet.Client&version=1.4.0

Strike .NET client
This is a C# implementation of the Strike API found here:
License:
MIT
Features
- installation via NuGet (StrikeWallet.Client)
- targeting .NET Core 3.1, .NET 6, .NET 8, and .NET 10 (Windows/Linux/macOS compatible)
- framework-specific dependencies retain compatibility for existing consumers; legacy targets remain available even though their runtimes are out of support
- coverage of all 49 operations in the published Strike API reference, including events, webhook subscriptions, payouts, and account limits; see the API coverage audit
Usage
var apiKey = "YOUR_API_KEY";
var environment = StrikeEnvironment.Live;
var client = new StrikeClient(environment, apiKey);
var profile = await client.Accounts.GetProfile("marfusios");
Read recent webhook events and account limits:
var events = await client.Events.GetEvents(top: 20, orderBy: "created desc");
var limits = await client.Accounts.GetLimits();
For paginated collections, check IsCountUnknown before using the total. Existing collection types expose the full 64-bit value through TotalCount; the new events, payouts, and payout-originators collections use long Count.
With dependency injection support:
appsettings.json
{
"Strike": {
"Environment": "Live",
"ApiKey": "YOUR_API_KEY"
}
}
Startup.cs
services.AddStrike(configuration);
More usage examples:
Building and testing
Install the .NET 10 SDK and the .NET 8 runtime. global.json selects a stable .NET 10 SDK. The library builds for all four targets in both Debug and Release; offline tests run on .NET 8 and .NET 10.
dotnet restore
dotnet build Strike.Client.sln --configuration Release --no-restore
dotnet test test/Strike.Client.Tests/Strike.Client.Tests.csproj --configuration Release --no-build
dotnet pack src/Strike.Client/Strike.Client.csproj --configuration Release --no-build -o artifacts
dotnet list Strike.Client.sln package --vulnerable --include-transitive
The offline tests use an in-memory HTTP handler to check requests, authentication and idempotency headers, JSON converters, dependency injection, and error responses. They require no API credentials.
Integration tests load appsettings.Tests.json, environment variables, and user secrets. Set Strike__ApiKey and Strike__Environment for the account being tested; user secrets take precedence. Without an API key, integration tests are skipped. CI runs only the read-only checks:
dotnet test test_integration/Strike.Client.IntegrationTests/Strike.Client.IntegrationTests.csproj --configuration Release --no-build --filter "FullyQualifiedName~GetBalances_ShouldWork|FullyQualifiedName~GetRates_ShouldWork|FullyQualifiedName~ApiReadOnlyTests"
Reviewed live tests read balances, rates, limits, and lists of invoices, deposits, payment methods, payouts, payout originators, events, subscriptions, receive requests, and receives. The limits check skips with an explicit reason if the key lacks partner.account.profile.read-own and Strike returns 403. All integration flows that create, execute, initiate, update, or delete resources skip before making requests. A test-only HTTP handler also rejects every method except GET and HEAD before transmission, even if a test is accidentally marked read-only. This restriction applies to every environment and has no configuration override. The sample application uses its own user-secrets ID and is separate from this test setup.
Publishing
Update Version in Directory.Build.props and add docs/releases/<version>.md for every NuGet release. CI validates that the notes exist, builds and tests the library, publishes through NuGet trusted publishing, and then creates the matching v<version> GitHub release from those notes. Before tagging, it waits for the public package and verifies its repository commit. Reruns preserve existing releases.
Pull Requests are welcome!
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 is compatible. 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. |
| .NET Core | netcoreapp3.1 is compatible. |
-
.NETCoreApp 3.1
- Microsoft.Extensions.Configuration.Abstractions (>= 3.1.32)
- Microsoft.Extensions.Http (>= 3.1.32)
- Microsoft.Extensions.Logging (>= 3.1.32)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 3.1.32)
- System.Net.Http.Json (>= 5.0.0)
- System.Text.Json (>= 6.0.11)
-
net10.0
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Http (>= 10.0.12)
- Microsoft.Extensions.Logging (>= 10.0.12)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.12)
- System.Net.Http.Json (>= 10.0.12)
- System.Text.Json (>= 10.0.12)
-
net6.0
- Microsoft.Extensions.Configuration.Abstractions (>= 6.0.1)
- Microsoft.Extensions.Http (>= 6.0.1)
- Microsoft.Extensions.Logging (>= 6.0.1)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 6.0.1)
- System.Net.Http.Json (>= 6.0.2)
- System.Text.Json (>= 6.0.11)
-
net8.0
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.1)
- Microsoft.Extensions.Logging (>= 8.0.1)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
- System.Net.Http.Json (>= 8.0.1)
- System.Text.Json (>= 8.0.6)
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.4.0 | 33 | 9/24/2026 |
| 1.3.2 | 34 | 9/24/2026 |
| 1.3.1 | 995 | 6/9/2025 |
| 1.3.0 | 1,012 | 1/6/2025 |
| 1.2.3 | 232 | 10/3/2024 |
| 1.2.2 | 209 | 10/2/2024 |
| 1.2.1 | 204 | 9/23/2024 |
| 1.2.0 | 219 | 9/11/2024 |
| 1.1.2 | 222 | 7/17/2024 |
| 1.1.1 | 186 | 7/17/2024 |
| 1.0.13 | 226 | 7/4/2024 |
| 1.0.12 | 202 | 7/4/2024 |
| 1.0.11 | 234 | 6/26/2024 |
| 1.0.10 | 211 | 6/22/2024 |
| 1.0.9 | 211 | 6/22/2024 |
| 1.0.8 | 206 | 6/21/2024 |
| 1.0.7 | 196 | 6/21/2024 |
| 1.0.6 | 223 | 6/21/2024 |
| 1.0.5 | 218 | 6/20/2024 |
| 1.0.4 | 204 | 6/19/2024 |