{
  "name": "user-attributes",
  "title": "User Attributes",
  "category": "Auth",
  "description": "Know a signed-in user's name, email or organization in a canister, not only their principal. Internet Identity signs an attribute bundle alongside the delegation, and the backend verifies the signer, the frontend origin and a nonce it issued itself before believing any of it. Use when a canister must know something about the caller beyond their principal: filling a profile, showing a name the user never typed into your app, contacting them, or gating access or an allowlist on an address the user provably controls; and when the backend rejects a bundle the frontend has just obtained. Covers the frontend request, scoping attributes to the account signed in with, and the identity-attributes library for Motoko and Rust. Assumes sign-in already works: load user-sign-in first. Do NOT use for the sign-in flow itself, for an email address the user typed in (that is ordinary app input, which II has not checked), or for an agent or CLI acting as a user (agent-web-identity).",
  "license": "Apache-2.0",
  "compatibility": "moc >= 1.6.0, ic-cdk >= 0.20.1",
  "updated": "2026-11-10T12:15:44.000Z",
  "urls": {
    "html": "https://skills.internetcomputer.org/skills/user-attributes/",
    "markdown": "https://skills.internetcomputer.org/.well-known/skills/user-attributes/SKILL.md",
    "json": "https://skills.internetcomputer.org/api/skills/user-attributes.json",
    "source": "https://github.com/dfinity/icskills/blob/5410eff3004bbed61389b2b307a6ee88e3aadf33/skills/user-attributes/SKILL.md"
  },
  "publisher": {
    "name": "DFINITY Foundation",
    "url": "https://dfinity.org"
  },
  "canonicalRepo": {
    "name": "dfinity/icskills",
    "url": "https://github.com/dfinity/icskills"
  }
}
