{
  // SAFE EXAMPLE ONLY
  // Do not commit real secrets (nsec, API keys, private relays, or private admin data).

  // ─── Agent Identity Key ─────────────────────────────────────────────
  // Use your real Nostr nsec locally in genesis.jsonc (gitignored).
  "key": {
    "nsec": "nsec1REPLACE_WITH_YOUR_AGENT_NSEC"
  },

  // ─── Administrator ──────────────────────────────────────────────────
  // Admin pubkey may be npub or hex.
  "admin": {
    "pubkey": "npub1REPLACE_WITH_ADMIN_PUBKEY"
  },

  // ─── DM Protocol ───────────────────────────────────────────────────
  // Supported values: "nip04", "nip17", or "both".
  "dm_protocol": "nip04",

  // ─── LLM Provider ──────────────────────────────────────────────────
  // OpenAI-compatible endpoint settings.
  "llm": {
    "provider": "openai",
    "api_key": "sk-REPLACE_WITH_API_KEY",
    "model": "gpt-4o-mini",
    "base_url": "https://api.openai.com/v1",
    "max_tokens": 512,
    "temperature": 0.7
  },

  // ─── HTTP Admin API ────────────────────────────────────────────────
  "api": {
    "enabled": true,
    "port": 8484,
    "bind_address": "127.0.0.1"
  },

  // ─── Startup Events ────────────────────────────────────────────────
  "startup_events": [
    {
      "kind": 0,
      "content_fields": {
        "name": "Didactyl",
        "about": "I am a Didactyl agent living on Nostr"
      },
      "tags": []
    },
    {
      "kind": 3,
      "content": "",
      "tags": [
        ["p", "ADMIN_HEX_PUBKEY"]
      ]
    },
    {
      "kind": 10002,
      "content": "",
      "tags": [
        ["r", "wss://relay.damus.io"],
        ["r", "wss://relay.primal.net"]
      ]
    }
  ],

  // ─── Default Skill ────────────────────────────────────────────────
  // Keep this generic and non-sensitive for repository examples.
  "default_skill": {
    "d_tag": "default_admin_dm",
    "kind": 31124,
    "content": "# Didactyl Agent\n\nYou are {{my_kind0_profile}}\n\nYour npub: {{my_npub}}\n\n## Rules\n\n- Communicate through encrypted Nostr direct messages\n- Keep responses concise and clear\n- Be helpful and technically accurate\n- If unsure, state uncertainty directly\n- Use tools when a request requires taking action\n- After a tool call, base your answer on the actual tool result\n- Never claim a tool was run if no tool was executed\n- Maintain your task list as short-term working memory\n- Never reveal your private key (nsec)\n- You may share your public key (npub) with anyone",
    "tags": [
      ["app", "didactyl"],
      ["scope", "private"],
      ["description", "Default admin DM handler"],
      ["trigger", "dm"],
      ["filter", "{\"from\":\"admin\"}"]
    ]
  }
}
