Loading...
Loading...
Create or join federations to share trust signals, coordinate enforcement, and maintain collective security across multiple organizations. Federations enable cross-org agent governance without sacrificing autonomy.
A federation is a trust network of DRD workspaces that agree to share governance data under a defined set of rules. Each member maintains full control of their own agents and policies while contributing and consuming trust signals from the federation.
Share DRD Scores, badge status, and violation history across member organizations.
When one member suspends an agent, other members are notified and can apply reciprocal enforcement.
Fine-grained control over what data is shared. Share scores without revealing policy details.
Any DRD organization can create a federation. The creator becomes the federation owner with full administrative control.
{
"name": "Enterprise AI Safety Alliance",
"description": "Cross-industry federation for AI agent governance",
"visibility": "private",
"joinPolicy": "approval_required",
"trustSignals": {
"shareScores": true,
"shareViolations": true,
"shareKycStatus": true,
"shareBlacklists": true
},
"enforcementPolicy": {
"propagateKillSwitch": true,
"minConsensus": 0.67,
"votingPeriod": "24h"
}
}
// Response
{
"federationId": "fed_abc123",
"name": "Enterprise AI Safety Alliance",
"status": "active",
"memberCount": 1,
"createdAt": "2026-02-12T10:00:00Z",
"inviteCode": "inv_xyz789"
}Organizations can join federations via invite code or by requesting membership through the public directory.
import { DRD } from '@drd/sdk';
const drd = new DRD({ apiKey: process.env.DRD_API_KEY });
// Join via invite code
await drd.federation.join({
inviteCode: 'inv_xyz789',
message: 'Requesting to join the Alliance',
});
// Request membership (for approval_required federations)
await drd.federation.requestMembership({
federationId: 'fed_abc123',
message: 'We are an enterprise AI company...',
organizationProfile: {
industry: 'Financial Services',
agentCount: 42,
complianceLevel: 'enterprise',
},
});
// List available federations
const federations = await drd.federation.discover({
visibility: 'public',
industry: 'financial_services',
});Federation members are assigned roles that determine their permissions within the federation.
Created the federation. Full administrative control including dissolution.
Can manage members, policies, and trust signal configuration.
Participates in the federation and shares/receives trust signals.
Read-only access to federation data and trust signals.
Federations enable organizations to share trust-related data securely. All signals are encrypted in transit and at rest, with granular access controls.
Agent Score
Share DRD Scores for agents across federation members
Violation Reports
Propagate policy violations to all federation members
KYC Status
Share verification status to avoid duplicate KYC
Blacklists
Collectively maintain lists of blocked agents or content
Compliance Status
Share audit results and compliance certifications
// Query trust signals across the federation
const signals = await drd.federation.getTrustSignals('fed_abc123', {
agentId: 'agent_suspicious',
signalTypes: ['score', 'violations', 'blacklist'],
});
// Result aggregates data from all federation members
console.log(signals.aggregatedScore); // 34 (average across members)
console.log(signals.violations); // [{ org: 'MemberOrg', type: 'policy_breach', ... }]
console.log(signals.blacklisted); // true (blacklisted by 2 members)
console.log(signals.reportingMembers); // 3Federations can collectively enforce policies through consensus-based decision making. When an agent is flagged by multiple members, the federation can coordinate a unified response.
// Propose a federation-wide enforcement action
const proposal = await drd.federation.proposeEnforcement({
federationId: 'fed_abc123',
targetAgentId: 'agent_malicious',
action: 'kill_switch',
reason: 'Coordinated policy violations across 3 member orgs',
evidence: ['violation_001', 'violation_002', 'violation_003'],
votingPeriod: '24h',
});
// Members vote on the proposal
await drd.federation.vote(proposal.proposalId, {
vote: 'approve',
comment: 'Confirmed violations in our system',
});
// Check proposal status
const status = await drd.federation.getProposal(proposal.proposalId);
console.log(status.votes); // { approve: 5, reject: 1, abstain: 2 }
console.log(status.consensus); // 0.71 (above 0.67 threshold)
console.log(status.outcome); // 'approved'All federation communication follows standardized protocols for interoperability and security.
All federation data is encrypted with TLS 1.3. Trust signals use end-to-end encryption with federation-scoped keys.
Federation membership and trust signals are backed by W3C Verifiable Credentials 2.0 for cryptographic verification.
Enforcement decisions use configurable consensus thresholds (default 67%) with time-bounded voting periods.
Complete REST API endpoints for federation management.
| Method | Path | Description |
|---|---|---|
| GET | /federations | List federations (public + your memberships) |
| POST | /federations | Create a new federation |
| GET | /federations/:id | Get federation details and membership list |
| POST | /federations/:id/join | Request to join a federation |
| DELETE | /federations/:id/leave | Leave a federation |
| GET | /federations/:id/trust/:agentDid | Get trust signals for an agent |
| POST | /federations/:id/enforcement | Propose a federation-wide enforcement action |
| POST | /federations/:id/enforcement/:propId/vote | Vote on an enforcement proposal |
| GET | /federations/:id/events | List federation events and activity log |
Federation Governance
Federation rules are immutable once 3 or more members have joined. Changes to rules require a governance vote with the threshold defined at creation time (default: 75% majority).