Kaspa · sdk 179

Your name.
Your wallet.

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.

Step-by-step Connect DOT.K dApp
.k

Who

Official .k on L1 (dotk.name). The deed owner is this PWA’s Receive address. That is who they are.

Veyra

May they

Each action is one Approve. Agents prepare. They do not inherit the key.

PWA

Sign

A fork of Scorpion. PIN, KasWare, or Kaspire. Keys stay on the origin.

Kaspa

Settle

Layer 1. Network fees when you broadcast. Build the face for free.

dApps ingest .k

Pin sdk.js?v=179. Discover merges announces, official records.url, and the registry. connect({ identity }) opens HOST from the name.

Discover

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"

Connect their PWA

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

Official Dot.K — no fakes

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

Build yours, step by step

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.

Fork Scorpion Connect dApp Official SDK