Loading...
Loading...
Create your account, register your first agent, and run a policy check in under 5 minutes.
Node.js 20+
Required for the TypeScript SDK. Check with node --version
DRD Account
Free tier includes 5 agents, 1,000 events/day, and 100 API calls/min.
Step 1
Sign up at drd.io/signup using your email, GitHub, or Google account. Once signed in, you'll land on your dashboard.
Step 2
Workspaces are the top-level organizational unit in DRD. They contain agents, policies, events, and content registrations. Each workspace has its own API keys and billing.
curl -X POST https://api.drd.io/api/v1/workspaces \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Production", "slug": "production", "plan": "pro"}'
// Response
{
"ok": true,
"data": {
"workspaceId": "ws_01HQ3X9M2KYZ...",
"name": "Production",
"slug": "production",
"apiKey": "drd_ws_sk_live_Abc123...",
"plan": "pro",
"createdAt": "2026-01-15T10:30:00Z"
}
}Step 3
Every AI system that interacts with DRD must be registered as an agent. Registration assigns a unique Decentralized Identifier (DID) and generates agent-scoped API credentials.
curl -X POST https://api.drd.io/api/v1/agents \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "content-moderator",
"type": "automation",
"description": "Automated content moderation pipeline",
"capabilities": ["content.scan", "content.flag"],
"metadata": { "model": "gpt-5.2", "version": "2.1.0" }
}'
// Response
{
"ok": true,
"data": {
"agentId": "agt_01HQ3XBN4RTYP...",
"did": "did:drd:agt_01HQ3XBN4RTYP",
"name": "content-moderator",
"status": "active",
"apiKey": "drd_agt_sk_Xyz789...",
"trustScore": 50,
"createdAt": "2026-01-15T10:35:00Z"
}
}Step 4
Install the @drd/sdk package from npm to integrate governance checks into your agent.
npm install @drd/sdkStep 5
Policy checks evaluate whether an agent action is permitted under your governance rules. The evaluation engine returns an allow/deny decision with detailed reasoning.
import { DRD } from '@drd/sdk';
const drd = new DRD({ apiKey: process.env.DRD_API_KEY });
// Evaluate an action against all active policies
const result = await drd.guard('content.publish', {
contentType: 'text/markdown',
wordCount: 1200,
containsPersonalData: false,
});
// result:
// {
// decision: "allow",
// policyId: "pol_01HQ3XCK9MWQN...",
// reasoning: "Action permitted by policy 'Content Publishing Rules'",
// evaluatedRules: 3,
// latency: 8,
// }
if (result.allowed) {
await publishContent(result.context);
await drd.report('content.published', { wordCount: 1200 });
}
await drd.shutdown();Store your credentials securely in environment variables. Never commit API keys to source control.
DRD_API_KEY=drd_ws_sk_live_Abc123...
DRD_WORKSPACE=ws_01HQ3X9M2KYZ...
DRD_AGENT_KEY=drd_agt_sk_Xyz789...API Reference
Full endpoint documentation with request/response schemas
Explore endpointsSDK Guide
Deep dive into guard(), report(), and error handling
Read the guideAgent Governance
Policies, enforcement tiers, and approval workflows
Learn moreTrust Badges
Earn "PROTECTED BY DRD" certification for your agents
Get certified