Production-grade .NET/Unity SDK for Frayit chat moderation evaluation.
License
—
Deps
1
Install Size
—
Vulns
✓ 0
Published
Feb 23, 2026
$ dotnet add package Frayit.SdkFrayit.Sdk)Production-grade SDK for Frayit chat moderation evaluation API, designed for Unity and standard .NET applications.
dotnet add package Frayit.Sdk
using Frayit.Sdk;
var options = new FrayitOptions
{
ClientId = "<your-client-id>",
ClientSecret = "<your-client-secret>",
BaseUrl = "https://<your-frayit-api-base-url>/",
ChatTimeoutMilliseconds = 100
};
using var client = new FrayitClient(options);
await client.InitializeAsync();
using Frayit.Sdk.Models;
var request = new ChatEvaluationRequest
{
Message = "you are trash",
PlayerId = "player-123",
SessionId = "session-1",
ChannelId = "global"
};
ChatEvaluationResponse response = await client.EvaluateChatAsync(request);
if (response.FailOpen)
{
// Service unavailable/timeout path: SDK safely allows chat
Console.WriteLine("Fail-open: " + response.FailOpenReason);
}
if (response.Allowed)
{
Console.WriteLine("Allowed message");
}
else
{
Console.WriteLine("Blocked");
Console.WriteLine("Reasons: " + string.Join(",", response.BlockReasonCodes));
Console.WriteLine("Redacted: " + (response.RedactedMessage ?? "***"));
}
using Frayit.Sdk.Logging;
public sealed class ConsoleFrayitLogger : IFrayitLogger
{
public void OnTokenRefreshStarted() => Console.WriteLine("[token] refresh started");
public void OnTokenRefreshSucceeded(DateTimeOffset expiresAtUtc) => Console.WriteLine("[token] expires " + expiresAtUtc);
public void OnTokenRefreshFailed(Exception exception) => Console.WriteLine("[token] refresh failed: " + exception.Message);
public void OnSdkError(string operation, Exception exception) => Console.WriteLine("[sdk] " + operation + ": " + exception.Message);
public void OnCircuitBreakerStateChanged(string previousState, string nextState, string reason) =>
Console.WriteLine("[cb] " + previousState + " -> " + nextState + " (" + reason + ")");
}
Use it when creating the client:
using var client = new FrayitClient(options, logger: new ConsoleFrayitLogger());
ClientSecret on server-side in production.