Quickstart — Zero to your first signed receipt in 5 minutes
By the end of this tutorial you will have minted an Agent SBT on Base mainnet, installed our MCP server, stored your first cryptographically signed memory, and verified the receipt — all without leaving your terminal.
Step 01 Get an API key
Visit dcslabs.ai/memory and click Claim free tier. Enter your email and GitHub handle. You'll receive an API key by email within 60 seconds, formatted as:
dcs_sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Save it to an environment variable for the rest of this tutorial:
# In your shell export DCS_API_KEY="dcs_sk_live_..."
Step 02 Mint your free Agent SBT
Visit dcslabs.ai/mint and click Connect Wallet. Approve the connection in your wallet, then click Mint Agent.
You'll get back an Agent ID like 0348 and a Basescan transaction link. That's your agent's permanent identity on Base mainnet. Save the Agent ID:
export DCS_AGENT_ID="0348"
basescan.org/address/0xbDd1f5fC... and search for your Agent ID. You should see your mint transaction with status Success. You now have an on-chain identity that nothing and no one can take from you.
Step 03 Install the MCP server
One line:
npm install @trdnetwork/mcp-server
This installs @trdnetwork/mcp-server v0.1.1+ — the reference Model Context Protocol server with R+2 signed receipts on every tool call. Compatible with Claude Desktop, Cursor, Windsurf, Zed, and any other MCP-compatible client.
Step 04 Store your first signed memory
Make your first API call:
curl -X POST https://api.dcslabs.ai/v1/memory/store \ -H "Authorization: Bearer $DCS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "agent_id": "0348", "content": "Hello world — this is my first signed memory." }'
You should get back something like:
{
"memory_id": "mem_a83f12cd",
"receipt_id": "r2_a83f12cd",
"embedding_dim": 1536,
"signed": true,
"stored_at": "2026-05-21T15:42:08.123Z"
}
The receipt_id is your handle to a cryptographically signed R+2 receipt attesting that your agent did this thing. Save it:
export DCS_RECEIPT_ID="r2_a83f12cd"
Step 05 Verify the receipt
Now verify the receipt without trusting our server. The r2-verify CLI runs entirely client-side using only the agent's public key from the on-chain identity layer:
# Run with npx — no install needed
npx @trdnetwork/r2-verify --receipt-id $DCS_RECEIPT_ID
Expected output:
✓ Schema
✓ Spec version r2/v0.1
✓ Pubkey match u4yK_lH8Z6vJ...
✓ Signature
✓ Chain pointer first receipt (null)
✓ Timestamp within ±24h window
Receipt verified.
What just happened, under the hood
- Step 02 minted a non-transferable token on Base mainnet to a wallet you control. That token is your agent's permanent identity.
- Step 04 generated an Ed25519 keypair scoped to your agent, embedded your content as a 1536-dimensional vector via OpenAI's
text-embedding-3-large, stored everything in pgvector, and signed an R+2 receipt over the canonical JSON form of the action. - Step 05 re-canonicalized the receipt, fetched your agent's public key from the SBT contract on Base, verified the Ed25519 signature, and confirmed the schema and chain pointer.
The full R+2 specification is at dcslabs.ai/standard. The reference verifier source is at github.com/DCS-LabsAI/r2-verify.
What's next
Now that you have a working agent producing signed receipts, the natural next steps:
- Tutorial 03 — Build persistent memory — store many memories, search them semantically, watch the chain grow across sessions.
- Tutorial 04 — Agent-to-agent negotiation — connect two agents and have them transact via the Treasury.
- Tutorial 05 — Verify R+2 receipts — go deep on the verification flow, including the chain-walk for compliance audits.
Troubleshooting
API returns 401: Check that $DCS_API_KEY is exported in your current shell. Test with echo $DCS_API_KEY.
SBT mint fails: Make sure you're connected to Base mainnet (not Base Sepolia or Ethereum mainnet). The wallet network selector should show "Base".
r2-verify command not found: Try npx @trdnetwork/r2-verify --version instead of installing globally. Some macOS configurations don't allow global npm installs without sudo.
Anything else: Email [email protected] with the exact command, output, and error. Solo-founder support; response within 24h, usually much faster.