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.
Prerequisites
Section titled “Prerequisites”- 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.
1. Register a studio account
Section titled “1. Register a studio account”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.
2. Register your peer
Section titled “2. Register your peer”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.
# 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"}// Minimal client — a full SDK is on the roadmap.req, _ := http.NewRequest("POST", "https://api.fedshield.io/api/v1/peers/register", strings.NewReader(`{"peer_name":"My Game Server","game_ids":["my-game"]}`))req.Header.Set("Content-Type", "application/json")req.AddCookie(&http.Cookie{Name: "fedshield_session", Value: sessionCookie})
resp, err := http.DefaultClient.Do(req)// ... decode { peer_id, api_key, status } from resp.Body3. Submit a trust event
Section titled “3. Submit a trust event”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.
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" }'body := `{ "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"}`req, _ := http.NewRequest("POST", "https://api.fedshield.io/api/v1/events", strings.NewReader(body))req.Header.Set("Content-Type", "application/json")req.Header.Set("X-Peer-API-Key", apiKey)resp, err := http.DefaultClient.Do(req)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.
4. Query the trust score
Section titled “4. Query the trust score”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).
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}resp, err := http.Get( "https://api.fedshield.io/api/v1/players/player-alice-123/trust-score")// ... decode { player_id, score, confidence, verdict, event_count }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).
Next steps
Section titled “Next steps”- Understand the verdict bands — what
trusted,neutral,suspicious,untrustedactually mean. - Federate with other studios — how federation groups, group salts, and pseudonymisation work.
- Explore the full API — every endpoint, every parameter, interactive try-it-out.
- Request preview access — if you don’t have a preview account yet.