Sign in and keys
Paste a key, or let the agent pair itself. One wallet per key.
Paste a key
The simplest way, as in the quick start. Send it as Authorization: Bearer <key>. A key lasts 30 days.
Pair from the agent
A call with no key answers HTTP 401 with error.data.code = "not_logged_in", a loginUrl and a pairing object (code, approveUrl, deviceSecret).
- Send the person to
approveUrl. - Poll until the key comes back:
POST https://api.krexa.xyz/api/v1/mcp/link/claim
Content-Type: application/json
{ "code": "<code>", "deviceSecret": "<deviceSecret>" }| Status | Means |
|---|---|
202 | Still waiting for approval. |
200 | Approved. The body holds the kxm_… key. |
One wallet per key
A key acts for the one wallet you picked, and nothing else.
Revoke
krexa.xyz/mcp/link lists your connected agents (client, wallet, last used) with a Revoke button. A revoked key gets not_logged_in on its next call.
Phishing
Only approve a ?code= link you started in your own agent a few minutes ago. New pairings are limited to 10 per 10 minutes per address.
