<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: GetagentId</title>
    <description>The latest articles on DEV Community by GetagentId (@getagentid).</description>
    <link>https://dev.to/getagentid</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3861815%2Fa35cc88d-d1e3-498b-a235-1e5cac0831c9.png</url>
      <title>DEV Community: GetagentId</title>
      <link>https://dev.to/getagentid</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/getagentid"/>
    <language>en</language>
    <item>
      <title># How I Built Cryptographic Identity for AI Agents — In 3 Months, On One Laptop</title>
      <dc:creator>GetagentId</dc:creator>
      <pubDate>Sun, 05 Apr 2026 05:21:01 +0000</pubDate>
      <link>https://dev.to/getagentid/-how-i-built-cryptographic-identity-for-ai-agents-in-3-months-on-one-laptop-1g90</link>
      <guid>https://dev.to/getagentid/-how-i-built-cryptographic-identity-for-ai-agents-in-3-months-on-one-laptop-1g90</guid>
      <description>&lt;p&gt;AI agents are shipping without identity.&lt;/p&gt;

&lt;p&gt;No proof of who they are. No receipt of what they did. No trust signal for systems they interact with. Every agent framework — CrewAI, AutoGen, LangChain, Phidata — treats agents as trusted by default.&lt;/p&gt;

&lt;p&gt;That works when you're running agents locally. It breaks the moment agents handle money, sensitive data, or talk to agents they've never met.&lt;/p&gt;

&lt;p&gt;I built AgentID to fix this. Here's what it is, how it works, and what I learned building it alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  What AgentID Does
&lt;/h2&gt;

&lt;p&gt;Every agent registered on AgentID gets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cryptographic identity&lt;/strong&gt; — Ed25519 certificates, W3C DID document (&lt;code&gt;did:web:getagentid.dev:agent:your_id&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dual-signed receipts&lt;/strong&gt; — every action produces a receipt signed with both HMAC-SHA256 and Ed25519. Publicly verifiable offline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust levels L1-L4&lt;/strong&gt; — based on security capabilities, not time. Register = L1. Bind Ed25519 key = L2. Bind wallet = L3. Entity verified = L4.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session continuity detection&lt;/strong&gt; — auto-detects when an agent's model or memory changes between sessions. Server-side. The agent can't suppress it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Behavioral monitoring&lt;/strong&gt; — frequency spikes, unusual hours, payload drift, model changes. 30-day baseline. Anomalies flagged in real-time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Daemon agent support&lt;/strong&gt; — for always-on background agents that act autonomously.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Tech
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ed25519&lt;/strong&gt; for all signing — publicly verifiable with just the public key&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JCS RFC 8785&lt;/strong&gt; for canonical serialization — deterministic across Python, Node.js, Go, Rust&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solana&lt;/strong&gt; for blockchain anchoring — every receipt gets a memo transaction&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EdDSA trust header JWT&lt;/strong&gt; — attach to outbound HTTP requests, receiving services verify offline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standard JWKS&lt;/strong&gt; at &lt;code&gt;/.well-known/jwks.json&lt;/code&gt; — RFC 7517 compliant&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's Live
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;141+ agents&lt;/strong&gt; registered on the platform&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;8/8 cross-protocol tests&lt;/strong&gt; passing against live production&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;6/6 multi-attestation spec&lt;/strong&gt; verified — alongside InsumerAPI, ThoughtProof, RNWY, Maiat, and APS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SDK on PyPI&lt;/strong&gt; — &lt;code&gt;pip install getagentid&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Named Identity Verification owner&lt;/strong&gt; in the agent identity Working Group&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How It Works (5 Lines of Code)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;pip&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;getagentid&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;agentid&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Client&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;agentid_sk_...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Register an agent
&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;register&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;My Trading Bot&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;capabilities&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;trading&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;analysis&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Verify any agent
&lt;/span&gt;&lt;span class="n"&gt;verified&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;verify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;agent_abc123&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;verified&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;trust_level&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# 2
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;verified&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;context_continuity&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;score&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# 100
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For daemon agents (always-on, autonomous):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;agentid.daemon&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DaemonAgent&lt;/span&gt;

&lt;span class="n"&gt;daemon&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DaemonAgent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;register&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;agentid_sk_...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Background Monitor&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;autonomy_level&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;semi-autonomous&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;heartbeat_interval&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Every action gets a verifiable receipt
&lt;/span&gt;&lt;span class="n"&gt;receipt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;daemon&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sign_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;processed 15 records&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Trust headers for outbound requests
&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;daemon&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;trust_headers&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;# EdDSA JWT, 1hr TTL
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  We Also Build Agents
&lt;/h2&gt;

&lt;p&gt;Not just the identity layer — we build custom AI agents for businesses. Tell us what you need, we design, build, and deploy it. Every agent gets AgentID identity from day one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getagentid.dev/build" rel="noopener noreferrer"&gt;getagentid.dev/build&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Agents registered&lt;/td&gt;
&lt;td&gt;141+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cross-protocol tests&lt;/td&gt;
&lt;td&gt;8/8 passing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-attestation spec&lt;/td&gt;
&lt;td&gt;6/6 verified (Section 3.6)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SDK&lt;/td&gt;
&lt;td&gt;v0.5.0 on PyPI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Framework integrations&lt;/td&gt;
&lt;td&gt;CrewAI, AutoGen, Solana Agent Kit, Upsonic, ERC-8004&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time to build&lt;/td&gt;
&lt;td&gt;3 months&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Team size&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funding&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://getagentid.dev/docs" rel="noopener noreferrer"&gt;getagentid.dev/docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SDK:&lt;/strong&gt; &lt;code&gt;pip install getagentid&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build page:&lt;/strong&gt; &lt;a href="https://getagentid.dev/build" rel="noopener noreferrer"&gt;getagentid.dev/build&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Showcase:&lt;/strong&gt; &lt;a href="https://getagentid.dev/cross-tests" rel="noopener noreferrer"&gt;getagentid.dev/cross-tests&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/haroldmalikfrimpong-ops/getagentid" rel="noopener noreferrer"&gt;github.com/haroldmalikfrimpong-ops/getagentid&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built by Malik. One laptop. Three months. No team. No funding.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>security</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
