Who
Official .k on L1 (dotk.name). The deed owner is this PWA’s Receive address. That is who they are.
Kaspa · sdk 179
alice.k is who you are — an official L1 covenant from dotk.name, owned by the Receive address of the PWA you build. Step 12 publishes records.url so the name itself is discoverable, and Verified only when deed, HOST, and the connected account agree.
Official .k on L1 (dotk.name). The deed owner is this PWA’s Receive address. That is who they are.
Each action is one Approve. Agents prepare. They do not inherit the key.
A fork of Scorpion. PIN, KasWare, or Kaspire. Keys stay on the origin.
Layer 1. Network fees when you broadcast. Build the face for free.
Pin sdk.js?v=179. Discover merges announces, official records.url, and the registry. connect({ identity }) opens HOST from the name.
Announced providers plus dotk-wallets.json. If identity ends in .k, show it as Connect.
const wallets = await kcc20.discoverWallets() // identity: "alice.k" // origin: "https://alice-k.vercel.app" // rdns: "k.alice"
Pass origin. The popup URL is HOST/index.html?dapp=1. You receive an address, never a seed.
await kcc20.connect({ identity: 'alice.k' })
// origin comes from records.url, then the registry
const who = await kcc20.getIdentity()
const v = await kcc20.verifyDotk({ identity: 'alice.k' })
// v.verified === true only when deed, HOST, and account agree
A .k name is a Kaspa L1 covenant coin. Register it with @dotk/sdk + @dotk/sdk-tx. Site dotk.name. API api.dotk.name. Never knsdomains.org, never a local JSON name. Buy it from the Receive address of the PWA you are building (step 10). GitHub + Vercel HOST is how the dApp pops you (step 11). Step 12 writes records.url = HOST so the name is discoverable, and paints Verified only when all four facts agree.
WHO = deed owner = this PWA kaspa: address
WHERE = records.url = HOST (https origin)
CONNECT = kcc20.connect({ identity: 'alice.k' }) // origin from the name
VERIFIED = addressFor === getAccounts()[0] && records.url === HOST
Google AI Studio, Cursor, or Replit. One prompt per pass. Wait until that pass is done before the next. Fill step 0 first, then paste it above every later prompt.