Skip to content

Quickstart

In five minutes you’ll register your first peer on the hosted FedShield federation, submit one trust event, and read the score back. Pick curl or Go below — both walk through the same three calls.

  • A FedShield preview account. Preview is invitation-only while we calibrate; request access with your studio name and use case.
  • A terminal.

The examples below hit the hosted federation at https://api.fedshield.io. Every request is authenticated with the session cookie your dashboard sets after sign-in, or a peer API key for server-to-server calls.

Sign up at https://fedshield.io/sign-up/studio. Your dashboard opens on a “Your studio” page with your studio ID and a “Register your first game server” call to action.

The signup writes a users row on the hosted federation, sets an httpOnly session cookie, and lands you on the dashboard.

Every game server is a peer. Peers get an API key on first registration and must include it (header X-Peer-API-Key) on every subsequent request. The plaintext key is shown exactly once. Store it in your server configuration; the hosted federation never returns it again.

Terminal window
# Cookie flows from the browser session created at signup.
curl -X POST https://api.fedshield.io/api/v1/peers/register \
--cookie "fedshield_session=<your-session>" \
-H "Content-Type: application/json" \
-d '{
"peer_name": "My Game Server",
"game_ids": ["my-game"],
"contact_email": "ops@mystudio.example"
}'

Save peer_id and api_key from the response:

{
"peer_id": "ad2e1e0f-7279-4013-9a0c-3a8a4ecde248",
"api_key": "sk_...",
"status": "active"
}

Events are descriptive (something happened) rather than directive (ban this player). The Federation Core decides what the aggregated score means; your server keeps full control of enforcement.

Terminal window
curl -X POST https://api.fedshield.io/api/v1/events \
-H "Content-Type: application/json" \
-H "X-Peer-API-Key: sk_..." \
-d '{
"schema_version": "1.0.0",
"event_id": "evt-001",
"event_type": "report_cheating",
"peer_id": "ad2e1e0f-7279-4013-9a0c-3a8a4ecde248",
"player_id": "player-alice-123",
"game_id": "my-game",
"severity": 0.85,
"timestamp": "2026-06-07T18:00:00Z"
}'

A single event won’t move a clean player’s score much — the Bayesian prior keeps newcomers near neutral until enough evidence accumulates. Try submitting a few more events to see the score shift.

The score endpoint is public — any peer in the same federation group can query any player ID. Your game server calls this at matchmaking time (or whenever the enforcement policy needs a signal).

Terminal window
curl https://api.fedshield.io/api/v1/players/player-alice-123/trust-score
{
"player_id": "player-alice-123",
"score": 47.8,
"confidence": 0.05,
"verdict": "neutral",
"event_count": 1
}

That’s it. You have a working federation peer. Your game server can now query trust scores for any player ID it sees and apply whatever policy makes sense (allow, monitor, kick, ban).