better-near-auth 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/package.json +7 -3
- package/skills/client/SKILL.md +301 -0
- package/skills/relay/SKILL.md +295 -0
- package/skills/siwn/SKILL.md +257 -0
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAW,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AAOpF,OAAO,KAAK,EACX,SAAS,EAET,OAAO,EAGP,MAAM,YAAY,CAAC;AAepB,cAAc,YAAY,CAAC;AAuB3B,MAAM,WAAW,aAAa;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CAClC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAW,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AAOpF,OAAO,KAAK,EACX,SAAS,EAET,OAAO,EAGP,MAAM,YAAY,CAAC;AAepB,cAAc,YAAY,CAAC;AAuB3B,MAAM,WAAW,aAAa;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CAClC;AAmKD,MAAM,WAAW,iBAAiB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC/D,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE;QACjC,SAAS,EAAE,SAAS,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,eAAO,MAAM,IAAI,GAAI,SAAS,iBAAiB,KAAG,gBAo5BjD,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -96,7 +96,6 @@ async function initRelayer(relayerConfig, network, adapter, secret, apiKey, rpcU
|
|
|
96
96
|
await adapter.create({
|
|
97
97
|
model: "relayerKey",
|
|
98
98
|
data: {
|
|
99
|
-
id: `relayer:${network}`,
|
|
100
99
|
accountId,
|
|
101
100
|
encryptedPrivateKey: encrypted,
|
|
102
101
|
iv,
|
|
@@ -718,7 +717,7 @@ export const siwn = (options) => {
|
|
|
718
717
|
if (rState.mode === "ephemeral") {
|
|
719
718
|
await ctx.context.adapter.update({
|
|
720
719
|
model: "relayerKey",
|
|
721
|
-
where: [{ field: "
|
|
720
|
+
where: [{ field: "network", operator: "eq", value: network }],
|
|
722
721
|
update: { lastUsedAt: new Date() },
|
|
723
722
|
});
|
|
724
723
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "better-near-auth",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Sign in with NEAR (SIWN) plugin for Better Auth",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"authentication",
|
|
25
25
|
"blockchain",
|
|
26
26
|
"web3",
|
|
27
|
-
"plugin"
|
|
27
|
+
"plugin",
|
|
28
|
+
"tanstack-intent"
|
|
28
29
|
],
|
|
29
30
|
"author": "efiz.near",
|
|
30
31
|
"license": "MIT",
|
|
@@ -54,6 +55,7 @@
|
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@changesets/changelog-github": "^0.6.0",
|
|
56
57
|
"@changesets/cli": "^2.30.0",
|
|
58
|
+
"@tanstack/intent": "^0.0.40",
|
|
57
59
|
"@types/bun": "latest",
|
|
58
60
|
"@types/node": "^25.0.9",
|
|
59
61
|
"better-auth": "^1.6.9",
|
|
@@ -63,7 +65,9 @@
|
|
|
63
65
|
"files": [
|
|
64
66
|
"dist/",
|
|
65
67
|
"README.md",
|
|
66
|
-
"LICENSE"
|
|
68
|
+
"LICENSE",
|
|
69
|
+
"skills",
|
|
70
|
+
"!skills/_artifacts"
|
|
67
71
|
],
|
|
68
72
|
"scripts": {
|
|
69
73
|
"build": "tsc",
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: client
|
|
3
|
+
description: >
|
|
4
|
+
Set up the siwnClient plugin for Better Auth client, configure NEAR wallet
|
|
5
|
+
connection via NearConnect, use authClient.near actions for sign-in, profile
|
|
6
|
+
lookup, account management, delegate action building with TransactionBuilder,
|
|
7
|
+
and relay submission. Load when implementing NEAR wallet sign-in on the client,
|
|
8
|
+
using authClient.near.* methods, or building delegate actions for gasless relay.
|
|
9
|
+
type: core
|
|
10
|
+
library: better-near-auth
|
|
11
|
+
library_version: "1.1.0"
|
|
12
|
+
sources:
|
|
13
|
+
- "elliotBraem/better-near-auth:src/client.ts"
|
|
14
|
+
- "elliotBraem/better-near-auth:src/types.ts"
|
|
15
|
+
- "elliotBraem/better-near-auth:README.md"
|
|
16
|
+
- "elliotBraem/better-near-auth:LLM.txt"
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Better-Near-Auth — Client Integration
|
|
20
|
+
|
|
21
|
+
Client-side plugin for NEAR wallet authentication and gasless relay. Connects to NEAR wallets via NearConnect, provides `authClient.near.*` actions for sign-in, account management, profile lookup, and delegate action building.
|
|
22
|
+
|
|
23
|
+
## Setup
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
import { createAuthClient } from "better-auth/client";
|
|
27
|
+
import { siwnClient } from "better-near-auth/client";
|
|
28
|
+
|
|
29
|
+
export const authClient = createAuthClient({
|
|
30
|
+
plugins: [
|
|
31
|
+
siwnClient({
|
|
32
|
+
recipient: "myapp.com",
|
|
33
|
+
networkId: "mainnet",
|
|
34
|
+
}),
|
|
35
|
+
],
|
|
36
|
+
});
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The `recipient` must match the server's `siwn()` recipient exactly. `networkId` defaults to `"mainnet"`.
|
|
40
|
+
|
|
41
|
+
## Core Patterns
|
|
42
|
+
|
|
43
|
+
### Sign in with NEAR wallet
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
await authClient.signIn.near({
|
|
47
|
+
onSuccess: () => {
|
|
48
|
+
console.log("Signed in!");
|
|
49
|
+
},
|
|
50
|
+
onError: (error) => {
|
|
51
|
+
console.error("Sign in failed:", error.message);
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`signIn.near()` handles the full flow: wallet connection → NEP-413 message signing → server verification → session creation. It automatically detects wallet capabilities and uses single-step or two-step flow.
|
|
57
|
+
|
|
58
|
+
### Build and relay a delegate action
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
import { Gas } from "near-kit";
|
|
62
|
+
|
|
63
|
+
const payload = await authClient.near.buildSignedDelegateAction(
|
|
64
|
+
"myapp.near",
|
|
65
|
+
(builder, receiverId) => builder.functionCall(receiverId, "some_method", { key: "value" }, {
|
|
66
|
+
gas: Gas.Tgas(30),
|
|
67
|
+
attachedDeposit: BigInt(0),
|
|
68
|
+
})
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
const result = await authClient.near.relayTransaction({ payload });
|
|
72
|
+
console.log("Tx hash:", result.data.txHash);
|
|
73
|
+
|
|
74
|
+
const status = await authClient.near.getRelayStatus(result.data.txHash);
|
|
75
|
+
console.log("Status:", status.data.status);
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
The `buildSignedDelegateAction` callback receives a `TransactionBuilder` from near-kit and the `receiverId`. Use `builder.functionCall()` to construct actions. The builder calls `.delegate()` internally and returns a base64 payload string.
|
|
79
|
+
|
|
80
|
+
### Wallet state and profile management
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
// Get current account
|
|
84
|
+
const accountId = authClient.near.getAccountId(); // string | null
|
|
85
|
+
|
|
86
|
+
// Get full wallet state
|
|
87
|
+
const state = authClient.near.getState(); // { accountId, publicKey, networkId } | null
|
|
88
|
+
|
|
89
|
+
// Get profile
|
|
90
|
+
const profile = await authClient.near.getProfile();
|
|
91
|
+
const aliceProfile = await authClient.near.getProfile("alice.near");
|
|
92
|
+
|
|
93
|
+
// Disconnect wallet
|
|
94
|
+
await authClient.near.disconnect();
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Account linking and contract view calls
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
// Link another NEAR account to current session
|
|
101
|
+
await authClient.near.link({
|
|
102
|
+
onSuccess: () => console.log("Linked"),
|
|
103
|
+
onError: (err) => console.error(err),
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
// Unlink
|
|
107
|
+
await authClient.near.unlink({ accountId: "alice.near" });
|
|
108
|
+
|
|
109
|
+
// List linked accounts
|
|
110
|
+
const { data } = await authClient.near.listAccounts();
|
|
111
|
+
|
|
112
|
+
// Server-side read-only contract call
|
|
113
|
+
const result = await authClient.near.view({
|
|
114
|
+
contractId: "myapp.near",
|
|
115
|
+
methodName: "get_value",
|
|
116
|
+
args: { account_id: "alice.near" },
|
|
117
|
+
});
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Client Actions Reference
|
|
121
|
+
|
|
122
|
+
### authClient.near
|
|
123
|
+
|
|
124
|
+
| Method | Returns | Description |
|
|
125
|
+
| ------ | ------- | ----------- |
|
|
126
|
+
| `nonce(params)` | `Promise<Response<NonceResponse>>` | Request nonce from server |
|
|
127
|
+
| `verify(params)` | `Promise<Response<VerifyResponse>>` | Verify NEP-413 signature |
|
|
128
|
+
| `getProfile(accountId?)` | `Promise<Response<Profile>>` | Get NEAR profile |
|
|
129
|
+
| `view(params)` | `Promise<Response<ViewResponse>>` | Server-side contract view call |
|
|
130
|
+
| `getAccountId()` | `string \| null` | Currently connected account ID |
|
|
131
|
+
| `getState()` | `{ accountId, publicKey, networkId } \| null` | Wallet state |
|
|
132
|
+
| `disconnect()` | `Promise<void>` | Disconnect wallet |
|
|
133
|
+
| `link(callbacks?)` | `Promise<void>` | Link NEAR account to session |
|
|
134
|
+
| `unlink(params)` | `Promise<Response>` | Unlink NEAR account |
|
|
135
|
+
| `listAccounts()` | `Promise<Response>` | List linked NEAR accounts |
|
|
136
|
+
| `buildSignedDelegateAction(receiverId, buildActions)` | `Promise<string>` | Build + sign delegate action, returns base64 payload |
|
|
137
|
+
| `relayTransaction({ payload })` | `Promise<Response<RelayResponse>>` | Submit delegate action to relayer |
|
|
138
|
+
| `getRelayStatus(txHash)` | `Promise<Response<RelayStatusResponse>>` | Check relayed tx status |
|
|
139
|
+
| `getRelayerInfo()` | `Promise<Response<RelayerInfo>>` | Get relayer info and balance |
|
|
140
|
+
| `relayHistory()` | `Promise<Response<RelayHistoryResponse>>` | List relayed transactions |
|
|
141
|
+
| `client` | `Near` | Access near-kit Near instance directly |
|
|
142
|
+
|
|
143
|
+
### authClient.signIn
|
|
144
|
+
|
|
145
|
+
| Method | Description |
|
|
146
|
+
| ------ | ----------- |
|
|
147
|
+
| `near(callbacks?)` | Connect wallet, sign message, verify — single popup |
|
|
148
|
+
|
|
149
|
+
### Callback Interface
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
interface AuthCallbacks {
|
|
153
|
+
onSuccess?: () => void;
|
|
154
|
+
onError?: (error: Error & { status?: number; code?: string }) => void;
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Common Mistakes
|
|
159
|
+
|
|
160
|
+
### CRITICAL Recipient mismatch between server and client
|
|
161
|
+
|
|
162
|
+
Wrong:
|
|
163
|
+
|
|
164
|
+
```typescript
|
|
165
|
+
// Server
|
|
166
|
+
siwn({ recipient: "myapp.near" });
|
|
167
|
+
|
|
168
|
+
// Client
|
|
169
|
+
siwnClient({ recipient: "myapp.com" });
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Correct:
|
|
173
|
+
|
|
174
|
+
```typescript
|
|
175
|
+
// Server
|
|
176
|
+
siwn({ recipient: "myapp.com" });
|
|
177
|
+
|
|
178
|
+
// Client
|
|
179
|
+
siwnClient({ recipient: "myapp.com" });
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
The client embeds the recipient in the signed message. The server verifies against its own recipient. A mismatch causes the verify endpoint to reject the signature with "Unauthorized: Invalid signature" — which is confusing because the signature is valid, just for a different recipient.
|
|
183
|
+
|
|
184
|
+
Source: src/client.ts:17, src/index.ts:225
|
|
185
|
+
|
|
186
|
+
See also: siwn/SKILL.md — server plugin recipient configuration
|
|
187
|
+
|
|
188
|
+
### HIGH Calling buildSignedDelegateAction without connected wallet
|
|
189
|
+
|
|
190
|
+
Wrong:
|
|
191
|
+
|
|
192
|
+
```typescript
|
|
193
|
+
// No wallet connected yet
|
|
194
|
+
const payload = await authClient.near.buildSignedDelegateAction(
|
|
195
|
+
"myapp.near",
|
|
196
|
+
(builder, receiverId) => builder.functionCall(receiverId, "method", {})
|
|
197
|
+
);
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Correct:
|
|
201
|
+
|
|
202
|
+
```typescript
|
|
203
|
+
// Check wallet state before building delegate action
|
|
204
|
+
const accountId = authClient.near.getAccountId();
|
|
205
|
+
if (!accountId) {
|
|
206
|
+
await authClient.signIn.near();
|
|
207
|
+
}
|
|
208
|
+
const payload = await authClient.near.buildSignedDelegateAction(
|
|
209
|
+
"myapp.near",
|
|
210
|
+
(builder, receiverId) => builder.functionCall(receiverId, "method", {})
|
|
211
|
+
);
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
`buildSignedDelegateAction` reads `accountId` from the `nearState` atom. If the wallet is not connected, nearState is null and the function throws "No wallet connected — cannot sign delegate action" with no user-facing prompt to connect.
|
|
215
|
+
|
|
216
|
+
Source: src/client.ts:176-179
|
|
217
|
+
|
|
218
|
+
### HIGH Constructing transactions with wrong builder pattern
|
|
219
|
+
|
|
220
|
+
Wrong:
|
|
221
|
+
|
|
222
|
+
```typescript
|
|
223
|
+
// Wrong: trying to use .send() directly instead of delegate flow
|
|
224
|
+
const result = await near.transaction(accountId)
|
|
225
|
+
.functionCall(receiverId, "method", args, { gas: Gas.Tgas(30) })
|
|
226
|
+
.send({ waitUntil: "EXECUTED" });
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Correct:
|
|
230
|
+
|
|
231
|
+
```typescript
|
|
232
|
+
// Correct: use buildSignedDelegateAction + relayTransaction
|
|
233
|
+
const payload = await authClient.near.buildSignedDelegateAction(
|
|
234
|
+
"myapp.near",
|
|
235
|
+
(builder, receiverId) => builder.functionCall(receiverId, "method", args, {
|
|
236
|
+
gas: Gas.Tgas(30),
|
|
237
|
+
attachedDeposit: BigInt(0),
|
|
238
|
+
})
|
|
239
|
+
);
|
|
240
|
+
const result = await authClient.near.relayTransaction({ payload });
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Delegate actions must be built through `buildSignedDelegateAction`, which uses near-kit's `TransactionBuilder.delegate()` method. Direct `.send()` broadcasts from the client account and requires the user to pay gas — defeating the gasless relay purpose.
|
|
244
|
+
|
|
245
|
+
Source: src/client.ts:172-185, maintainer interview
|
|
246
|
+
|
|
247
|
+
See also: relay/SKILL.md — relay endpoint validation and whitelisting
|
|
248
|
+
|
|
249
|
+
### MEDIUM Using authClient.near.verify directly instead of signIn.near
|
|
250
|
+
|
|
251
|
+
Wrong:
|
|
252
|
+
|
|
253
|
+
```typescript
|
|
254
|
+
// Manually calling verify without proper wallet signing flow
|
|
255
|
+
await authClient.near.verify({
|
|
256
|
+
signedMessage: someMessage,
|
|
257
|
+
message: "Sign in to myapp.com",
|
|
258
|
+
recipient: "myapp.com",
|
|
259
|
+
nonce: someNonce,
|
|
260
|
+
accountId: "alice.near",
|
|
261
|
+
});
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Correct:
|
|
265
|
+
|
|
266
|
+
```typescript
|
|
267
|
+
// Use the single-step sign-in method that handles the full flow
|
|
268
|
+
await authClient.signIn.near({
|
|
269
|
+
onSuccess: () => { /* signed in */ },
|
|
270
|
+
onError: (error) => { console.error(error); },
|
|
271
|
+
});
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
`signIn.near()` handles wallet connection, NEP-413 message signing, nonce management, and server verification in a single call. Calling `verify` directly requires manually constructing all parameters and does not handle wallet connection.
|
|
275
|
+
|
|
276
|
+
Source: src/client.ts:314-348
|
|
277
|
+
|
|
278
|
+
### MEDIUM Not subscribing to wallet disconnect events
|
|
279
|
+
|
|
280
|
+
Wrong:
|
|
281
|
+
|
|
282
|
+
```typescript
|
|
283
|
+
// Read account ID once — never updates
|
|
284
|
+
const accountId = authClient.near.getAccountId();
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Correct:
|
|
288
|
+
|
|
289
|
+
```typescript
|
|
290
|
+
// Subscribe to nearState for reactive updates
|
|
291
|
+
import { useStore } from "nanostores/react";
|
|
292
|
+
const { nearState } = authClient.$store;
|
|
293
|
+
const state = useStore(nearState);
|
|
294
|
+
// state is null when wallet disconnects externally
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
When the wallet disconnects externally (user signs out from wallet UI), the `nearState` atom is set to null. UI components that only read `getAccountId()` once will show stale account info.
|
|
298
|
+
|
|
299
|
+
Source: src/client.ts:62,82-92
|
|
300
|
+
|
|
301
|
+
See also: siwn/SKILL.md — server-side nonce and verify endpoints
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: relay
|
|
3
|
+
description: >
|
|
4
|
+
Configure the gasless NEP-366 delegate action relayer in ephemeral or explicit
|
|
5
|
+
mode, relay signed delegate actions on-chain, enforce contract whitelisting and
|
|
6
|
+
gas/deposit limits, check relay status and history, and use the contract view
|
|
7
|
+
endpoint. Load when setting up relayer config, debugging relay failures, or
|
|
8
|
+
configuring RotatingKeyStore for high-throughput relay.
|
|
9
|
+
type: core
|
|
10
|
+
library: better-near-auth
|
|
11
|
+
library_version: "1.1.0"
|
|
12
|
+
sources:
|
|
13
|
+
- "elliotBraem/better-near-auth:src/index.ts"
|
|
14
|
+
- "elliotBraem/better-near-auth:src/utils.ts"
|
|
15
|
+
- "elliotBraem/better-near-auth:src/types.ts"
|
|
16
|
+
- "elliotBraem/better-near-auth:src/schema.ts"
|
|
17
|
+
- "elliotBraem/better-near-auth:README.md"
|
|
18
|
+
- "elliotBraem/better-near-auth:LLM.txt"
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Better-Near-Auth — Gasless Relay
|
|
22
|
+
|
|
23
|
+
Built-in NEP-366 delegate action relayer that broadcasts signed transactions on behalf of authenticated users, paying gas from a relayer account. Supports ephemeral mode (auto-generated keypair) and explicit mode (named account with provided keys).
|
|
24
|
+
|
|
25
|
+
## Setup
|
|
26
|
+
|
|
27
|
+
### Ephemeral mode (zero-config)
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { siwn } from "better-near-auth";
|
|
31
|
+
|
|
32
|
+
export const auth = betterAuth({
|
|
33
|
+
plugins: [
|
|
34
|
+
siwn({
|
|
35
|
+
recipient: "myapp.com",
|
|
36
|
+
relayer: {}, // auto-generates keypair on first startup
|
|
37
|
+
}),
|
|
38
|
+
],
|
|
39
|
+
});
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
On first startup, the server logs the ephemeral account ID. **Fund this account with NEAR** to enable relay:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
[siwn] Relayer created in EPHEMERAL mode: 7a3c4b5c... (mainnet)
|
|
46
|
+
[siwn] Fund this account with NEAR to enable gasless relay
|
|
47
|
+
[siwn] Private key is encrypted in DB — persists across restarts
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The private key is encrypted with AES-256-GCM using `BETTER_AUTH_SECRET` as the KEK and stored in the `relayerKey` database table.
|
|
51
|
+
|
|
52
|
+
### Explicit mode (production)
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
siwn({
|
|
56
|
+
recipient: "myapp.com",
|
|
57
|
+
relayer: {
|
|
58
|
+
accountId: "relayer.myapp.near",
|
|
59
|
+
privateKey: process.env.RELAYER_PRIVATE_KEY, // base64 ed25519:...
|
|
60
|
+
whitelistedContracts: ["myapp.near"],
|
|
61
|
+
maxGasPerTransaction: "300000000000000", // 300 Tgas
|
|
62
|
+
maxDepositPerTransaction: "0",
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Rotating keys (high-throughput)
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
siwn({
|
|
71
|
+
recipient: "myapp.com",
|
|
72
|
+
relayer: {
|
|
73
|
+
accountId: "relayer.myapp.near",
|
|
74
|
+
privateKeys: [
|
|
75
|
+
process.env.RELAYER_KEY_1,
|
|
76
|
+
process.env.RELAYER_KEY_2,
|
|
77
|
+
process.env.RELAYER_KEY_3,
|
|
78
|
+
],
|
|
79
|
+
whitelistedContracts: ["myapp.near"],
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Multiple keys cycle round-robin via `RotatingKeyStore`, eliminating nonce collisions for high-throughput relayers.
|
|
85
|
+
|
|
86
|
+
## Core Patterns
|
|
87
|
+
|
|
88
|
+
### Relay a delegate action from client to on-chain
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
import { Gas } from "near-kit";
|
|
92
|
+
|
|
93
|
+
// 1. Build signed delegate action using wallet's function-call access key
|
|
94
|
+
const payload = await authClient.near.buildSignedDelegateAction(
|
|
95
|
+
"myapp.near",
|
|
96
|
+
(builder, receiverId) => builder.functionCall(receiverId, "some_method", { key: "value" }, {
|
|
97
|
+
gas: Gas.Tgas(30),
|
|
98
|
+
attachedDeposit: BigInt(0),
|
|
99
|
+
})
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
// 2. Relay it — the server pays gas
|
|
103
|
+
const result = await authClient.near.relayTransaction({ payload });
|
|
104
|
+
console.log("Tx hash:", result.data.txHash);
|
|
105
|
+
|
|
106
|
+
// 3. Check status
|
|
107
|
+
const status = await authClient.near.getRelayStatus(result.data.txHash);
|
|
108
|
+
console.log("Status:", status.data.status); // "pending" | "completed" | "failed"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
The `buildSignedDelegateAction` callback receives a `TransactionBuilder` and the `receiverId`. The builder must use `.functionCall()` — external code constructs the transaction object using near-kit's builder API. Do not use `.send()` directly.
|
|
112
|
+
|
|
113
|
+
### Check relayer info and balance
|
|
114
|
+
|
|
115
|
+
```typescript
|
|
116
|
+
const info = await authClient.near.getRelayerInfo();
|
|
117
|
+
console.log("Relayer:", info.data.accountId);
|
|
118
|
+
console.log("Mode:", info.data.mode); // "ephemeral" | "explicit"
|
|
119
|
+
console.log("Balance:", info.data.balance);
|
|
120
|
+
console.log("Enabled:", info.data.enabled);
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Server-side contract view call
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
const result = await authClient.near.view({
|
|
127
|
+
contractId: "myapp.near",
|
|
128
|
+
methodName: "get_value",
|
|
129
|
+
args: { account_id: "alice.near" },
|
|
130
|
+
});
|
|
131
|
+
console.log("Result:", result.data.result);
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
View calls are read-only, authenticated, and executed server-side.
|
|
135
|
+
|
|
136
|
+
## Relay Endpoints
|
|
137
|
+
|
|
138
|
+
| Method | Path | Description |
|
|
139
|
+
| ------ | ---- | ----------- |
|
|
140
|
+
| POST | `/near/relay` | Relay a signed delegate action on-chain |
|
|
141
|
+
| GET | `/near/relay-status/:txHash` | Check relayed transaction status |
|
|
142
|
+
| GET | `/near/relayer-info` | Get relayer accountId, mode, balance |
|
|
143
|
+
| GET | `/near/relay-history` | List relayed transactions for current user |
|
|
144
|
+
| POST | `/near/view` | Server-side read-only contract call |
|
|
145
|
+
|
|
146
|
+
## Relayer Configuration
|
|
147
|
+
|
|
148
|
+
| Option | Type | Default | Description |
|
|
149
|
+
| ------ | ---- | ------- | ----------- |
|
|
150
|
+
| `accountId` | `string` | — | Named relayer account (explicit mode) |
|
|
151
|
+
| `privateKey` | `string` | — | Single private key, base64 ed25519:... (explicit mode) |
|
|
152
|
+
| `privateKeys` | `string[]` | — | Multiple keys for RotatingKeyStore |
|
|
153
|
+
| `whitelistedContracts` | `string[]` | — | Restrict relay to these contract IDs |
|
|
154
|
+
| `maxGasPerTransaction` | `string` | — | Max gas per relayed transaction (yoctoNEAR) |
|
|
155
|
+
| `maxDepositPerTransaction` | `string` | — | Max deposit per relayed transaction (yoctoNEAR) |
|
|
156
|
+
|
|
157
|
+
When `accountId` + `privateKey`/`privateKeys` are omitted → ephemeral mode (auto-generated keypair, encrypted in DB).
|
|
158
|
+
|
|
159
|
+
## Encryption Details
|
|
160
|
+
|
|
161
|
+
- **KEK derivation**: HKDF-SHA256 with `BETTER_AUTH_SECRET`, salt `better-near-auth-relayer`, info empty
|
|
162
|
+
- **Encryption**: AES-256-GCM with 12-byte random IV
|
|
163
|
+
- **Storage**: `encryptedPrivateKey` (base64) + `iv` (base64) in `relayerKey` table
|
|
164
|
+
- **Trust model**: Same as Better Auth session tokens — DB access + `BETTER_AUTH_SECRET` = full access
|
|
165
|
+
|
|
166
|
+
## Common Mistakes
|
|
167
|
+
|
|
168
|
+
### CRITICAL Not funding the ephemeral relayer account
|
|
169
|
+
|
|
170
|
+
Wrong:
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
siwn({
|
|
174
|
+
recipient: "myapp.com",
|
|
175
|
+
relayer: {}, // ephemeral — but account has zero balance
|
|
176
|
+
});
|
|
177
|
+
// Server starts, relayer created, but every relay attempt fails
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Correct:
|
|
181
|
+
|
|
182
|
+
```typescript
|
|
183
|
+
siwn({
|
|
184
|
+
recipient: "myapp.com",
|
|
185
|
+
relayer: {}, // ephemeral
|
|
186
|
+
});
|
|
187
|
+
// After startup, check logs for the accountId:
|
|
188
|
+
// [siwn] Relayer created in EPHEMERAL mode: 7a3c4b5c...
|
|
189
|
+
// Send NEAR to that account ID to fund the relayer
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
The ephemeral mode generates an implicit account (hex of public key) with zero balance. Without funding, every relay attempt fails with an insufficient balance error from the NEAR RPC. Alternatively, use explicit mode with a pre-funded named account.
|
|
193
|
+
|
|
194
|
+
Source: src/index.ts:179-181, maintainer interview
|
|
195
|
+
|
|
196
|
+
### CRITICAL Omitting whitelistedContracts in production
|
|
197
|
+
|
|
198
|
+
Wrong:
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
siwn({
|
|
202
|
+
recipient: "myapp.com",
|
|
203
|
+
relayer: {
|
|
204
|
+
accountId: "relayer.myapp.near",
|
|
205
|
+
privateKey: process.env.RELAYER_PRIVATE_KEY,
|
|
206
|
+
// No whitelistedContracts — any contract can be called at relayer's expense
|
|
207
|
+
},
|
|
208
|
+
});
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Correct:
|
|
212
|
+
|
|
213
|
+
```typescript
|
|
214
|
+
siwn({
|
|
215
|
+
recipient: "myapp.com",
|
|
216
|
+
relayer: {
|
|
217
|
+
accountId: "relayer.myapp.near",
|
|
218
|
+
privateKey: process.env.RELAYER_PRIVATE_KEY,
|
|
219
|
+
whitelistedContracts: ["myapp.near"],
|
|
220
|
+
},
|
|
221
|
+
});
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Without whitelistedContracts, any authenticated user can relay transactions to arbitrary contracts, spending the relayer's NEAR. Always restrict in production.
|
|
225
|
+
|
|
226
|
+
Source: src/index.ts:891-898, maintainer interview
|
|
227
|
+
|
|
228
|
+
### HIGH Constructing transactions with wrong builder pattern
|
|
229
|
+
|
|
230
|
+
Wrong:
|
|
231
|
+
|
|
232
|
+
```typescript
|
|
233
|
+
// Wrong: trying to send directly instead of delegate
|
|
234
|
+
const result = await near.transaction(accountId)
|
|
235
|
+
.functionCall(receiverId, "method", args, { gas: Gas.Tgas(30) })
|
|
236
|
+
.send({ waitUntil: "EXECUTED" });
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Correct:
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
// Correct: build signed delegate action, then relay via server
|
|
243
|
+
const payload = await authClient.near.buildSignedDelegateAction(
|
|
244
|
+
"myapp.near",
|
|
245
|
+
(builder, receiverId) => builder.functionCall(receiverId, "method", args, {
|
|
246
|
+
gas: Gas.Tgas(30),
|
|
247
|
+
attachedDeposit: BigInt(0),
|
|
248
|
+
})
|
|
249
|
+
);
|
|
250
|
+
const result = await authClient.near.relayTransaction({ payload });
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Delegate actions must be built using the near-kit `TransactionBuilder` with `.delegate()`, not `.send()` directly. The wallet signs a delegate action; the relayer submits it on-chain. External code should construct the transaction object using the builder API, not attempt to broadcast directly.
|
|
254
|
+
|
|
255
|
+
Source: src/client.ts:172-185, maintainer interview
|
|
256
|
+
|
|
257
|
+
See also: client/SKILL.md — client buildSignedDelegateAction API
|
|
258
|
+
|
|
259
|
+
### HIGH Missing BETTER_AUTH_SECRET for ephemeral key encryption
|
|
260
|
+
|
|
261
|
+
Wrong:
|
|
262
|
+
|
|
263
|
+
```typescript
|
|
264
|
+
// No BETTER_AUTH_SECRET set — ephemeral key encryption uses empty string
|
|
265
|
+
siwn({
|
|
266
|
+
recipient: "myapp.com",
|
|
267
|
+
relayer: {},
|
|
268
|
+
});
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Correct:
|
|
272
|
+
|
|
273
|
+
```typescript
|
|
274
|
+
// BETTER_AUTH_SECRET is required by Better Auth and used by the relayer
|
|
275
|
+
// Set it in your environment or Better Auth config
|
|
276
|
+
process.env.BETTER_AUTH_SECRET = "your-secure-secret";
|
|
277
|
+
siwn({
|
|
278
|
+
recipient: "myapp.com",
|
|
279
|
+
relayer: {},
|
|
280
|
+
});
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
The ephemeral relayer encrypts its private key using HKDF-SHA256 derived from `BETTER_AUTH_SECRET`. If missing, key derivation falls back to an empty string, which is insecure and may cause decryption failures on server restart.
|
|
284
|
+
|
|
285
|
+
Source: src/utils.ts:21-41, src/index.ts:134
|
|
286
|
+
|
|
287
|
+
### HIGH Tension: Ephemeral simplicity vs production reliability
|
|
288
|
+
|
|
289
|
+
Ephemeral mode is zero-config but requires funding an implicit account with no human-readable name. Explicit mode uses a named, pre-funded account but requires managing private keys securely. Agents optimizing for setup simplicity may default to ephemeral without warning about the funding requirement, or use explicit mode with the private key hardcoded instead of using environment variables.
|
|
290
|
+
|
|
291
|
+
See also: client/SKILL.md — delegate action building pattern
|
|
292
|
+
|
|
293
|
+
### HIGH Tension: Whitelist security vs development flexibility
|
|
294
|
+
|
|
295
|
+
Strict `whitelistedContracts` prevents relay abuse but blocks calls to new contracts during development. Omitting the whitelist enables any contract call at the relayer's expense. Agents may copy quickstart examples without `whitelistedContracts` into production code, or add overly permissive whitelists that defeat the security purpose.
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: siwn
|
|
3
|
+
description: >
|
|
4
|
+
Set up the SIWN server plugin for Better Auth, configure NEP-413 authentication
|
|
5
|
+
with recipient and API key, handle nonce generation, signature verification,
|
|
6
|
+
account linking and unlinking, and NEAR profile lookup. Load when adding
|
|
7
|
+
NEAR wallet sign-in to a Better Auth server, configuring siwn() plugin options,
|
|
8
|
+
or debugging NEP-413 verify or nonce issues.
|
|
9
|
+
type: core
|
|
10
|
+
library: better-near-auth
|
|
11
|
+
library_version: "1.1.0"
|
|
12
|
+
sources:
|
|
13
|
+
- "elliotBraem/better-near-auth:src/index.ts"
|
|
14
|
+
- "elliotBraem/better-near-auth:src/profile.ts"
|
|
15
|
+
- "elliotBraem/better-near-auth:src/types.ts"
|
|
16
|
+
- "elliotBraem/better-near-auth:src/schema.ts"
|
|
17
|
+
- "elliotBraem/better-near-auth:README.md"
|
|
18
|
+
- "elliotBraem/better-near-auth:LLM.txt"
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Better-Near-Auth — SIWN Authentication
|
|
22
|
+
|
|
23
|
+
Better Auth plugin for NEAR wallet authentication following NEP-413. Provides server-side nonce generation, signature verification, account linking, and profile lookup.
|
|
24
|
+
|
|
25
|
+
## Setup
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
import { betterAuth } from "better-auth";
|
|
29
|
+
import { siwn } from "better-near-auth";
|
|
30
|
+
|
|
31
|
+
export const auth = betterAuth({
|
|
32
|
+
database: drizzleAdapter(db, {
|
|
33
|
+
// your DB adapter config
|
|
34
|
+
}),
|
|
35
|
+
plugins: [
|
|
36
|
+
siwn({
|
|
37
|
+
recipient: "myapp.com",
|
|
38
|
+
apiKey: process.env.FASTNEAR_API_KEY,
|
|
39
|
+
}),
|
|
40
|
+
],
|
|
41
|
+
});
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
After adding the plugin, generate the database schema:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npx @better-auth/cli generate
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
This creates three tables: `nearAccount`, `relayedTransaction`, and `relayerKey`.
|
|
51
|
+
|
|
52
|
+
## Core Patterns
|
|
53
|
+
|
|
54
|
+
### Configure with custom RPC URL
|
|
55
|
+
|
|
56
|
+
For sandbox or private nodes, override the default RPC endpoint:
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
siwn({
|
|
60
|
+
recipient: "myapp.com",
|
|
61
|
+
rpcUrl: "http://localhost:3030",
|
|
62
|
+
apiKey: process.env.FASTNEAR_API_KEY,
|
|
63
|
+
});
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Custom profile lookup
|
|
67
|
+
|
|
68
|
+
Override the default FastNear KV → NEAR Social fallback chain:
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
siwn({
|
|
72
|
+
recipient: "myapp.com",
|
|
73
|
+
getProfile: async (accountId) => {
|
|
74
|
+
const res = await fetch(`https://api.myapp.com/profiles/${accountId}`);
|
|
75
|
+
if (res.ok) {
|
|
76
|
+
const p = await res.json();
|
|
77
|
+
return { name: p.displayName, description: p.bio, image: { url: p.avatar } };
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Validate function-call access keys
|
|
85
|
+
|
|
86
|
+
By default the plugin validates that the signing key is either a full-access key or a function-call key scoped to the recipient. Override with `validateLimitedAccessKey`:
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
siwn({
|
|
90
|
+
recipient: "myapp.com",
|
|
91
|
+
validateLimitedAccessKey: async ({ accountId, publicKey, recipient }) => {
|
|
92
|
+
const allowed = ["myapp.near", "social.near"];
|
|
93
|
+
return recipient ? allowed.includes(recipient) : true;
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Link and unlink NEAR accounts
|
|
99
|
+
|
|
100
|
+
After authentication, link additional NEAR accounts to the same session:
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
// Client: link another NEAR account
|
|
104
|
+
await authClient.near.link({
|
|
105
|
+
onSuccess: () => console.log("linked"),
|
|
106
|
+
onError: (err) => console.error(err),
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
// Client: unlink an account
|
|
110
|
+
await authClient.near.unlink({ accountId: "alice.near" });
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
You cannot unlink the last authentication method — link another account first.
|
|
114
|
+
|
|
115
|
+
## Server Endpoints
|
|
116
|
+
|
|
117
|
+
| Method | Path | Description |
|
|
118
|
+
| ------ | ---- | ----------- |
|
|
119
|
+
| POST | `/near/nonce` | Generate hex-encoded nonce for signing |
|
|
120
|
+
| POST | `/near/verify` | Verify NEP-413 signature, create session |
|
|
121
|
+
| POST | `/near/profile` | Get NEAR profile (requires session) |
|
|
122
|
+
| POST | `/near/link-account` | Link NEAR account to session |
|
|
123
|
+
| POST | `/near/unlink-account` | Unlink NEAR account |
|
|
124
|
+
| GET | `/near/list-accounts` | List linked NEAR accounts |
|
|
125
|
+
|
|
126
|
+
## Plugin Options
|
|
127
|
+
|
|
128
|
+
| Option | Type | Default | Description |
|
|
129
|
+
| ------ | ---- | ------- | ----------- |
|
|
130
|
+
| `recipient` | `string` | — | NEP-413 recipient identifier (required) |
|
|
131
|
+
| `requireFullAccessKey` | `boolean` | `false` | Require full access keys |
|
|
132
|
+
| `getNonce` | `() => Promise<Uint8Array>` | `generateNonce()` | Custom nonce generation |
|
|
133
|
+
| `getProfile` | `(accountId) => Promise<Profile \| null>` | FastNear KV → NEAR Social | Custom profile lookup |
|
|
134
|
+
| `validateLimitedAccessKey` | `(args) => Promise<boolean>` | Default FAK validation | Validate limited access keys |
|
|
135
|
+
| `apiKey` | `string` | `process.env.FASTNEAR_API_KEY` | API key for RPC |
|
|
136
|
+
| `rpcUrl` | `string` | — | Custom RPC URL |
|
|
137
|
+
| `relayer` | `RelayerConfig` | — | See relay skill |
|
|
138
|
+
|
|
139
|
+
## Email Handling
|
|
140
|
+
|
|
141
|
+
- `.near` accounts: `efiz.near` → `efiz@near.email` (automatic)
|
|
142
|
+
- Non-`.near` accounts (e.g. implicit hex accounts): no email set; users add email via other Better Auth plugins
|
|
143
|
+
|
|
144
|
+
## Common Mistakes
|
|
145
|
+
|
|
146
|
+
### CRITICAL Recipient mismatch between server and client
|
|
147
|
+
|
|
148
|
+
Wrong:
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
// Server
|
|
152
|
+
siwn({ recipient: "myapp.near" });
|
|
153
|
+
|
|
154
|
+
// Client
|
|
155
|
+
siwnClient({ recipient: "myapp.com" });
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Correct:
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
// Server
|
|
162
|
+
siwn({ recipient: "myapp.com" });
|
|
163
|
+
|
|
164
|
+
// Client
|
|
165
|
+
siwnClient({ recipient: "myapp.com" });
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
The client signs a message with the recipient embedded. The server verifies against its own recipient. A mismatch causes verification to fail with no clear error.
|
|
169
|
+
|
|
170
|
+
Source: src/index.ts:225, src/client.ts:17
|
|
171
|
+
|
|
172
|
+
See also: client/SKILL.md — client recipient must match server recipient
|
|
173
|
+
|
|
174
|
+
### HIGH Sending raw nonce bytes instead of hex-encoded string
|
|
175
|
+
|
|
176
|
+
Wrong:
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
const nonce = new Uint8Array(32);
|
|
180
|
+
await authClient.near.verify({
|
|
181
|
+
signedMessage,
|
|
182
|
+
message,
|
|
183
|
+
recipient,
|
|
184
|
+
nonce: nonce, // raw bytes
|
|
185
|
+
accountId,
|
|
186
|
+
});
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Correct:
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
const nonceBytes = generateNonce();
|
|
193
|
+
const nonceHex = hex.encode(nonceBytes);
|
|
194
|
+
// ...sign with nonceBytes via wallet...
|
|
195
|
+
await authClient.near.verify({
|
|
196
|
+
signedMessage,
|
|
197
|
+
message,
|
|
198
|
+
recipient,
|
|
199
|
+
nonce: nonceHex, // hex-encoded string
|
|
200
|
+
accountId,
|
|
201
|
+
});
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
The verify endpoint hex-decodes the nonce string. Sending raw bytes or a non-hex string causes decode failure or nonce replay detection failure.
|
|
205
|
+
|
|
206
|
+
Source: src/types.ts:53-58, src/client.ts:106-109
|
|
207
|
+
|
|
208
|
+
### HIGH Forgetting to generate DB schema after adding plugin
|
|
209
|
+
|
|
210
|
+
Wrong:
|
|
211
|
+
|
|
212
|
+
```typescript
|
|
213
|
+
// Add siwn() to plugins, then start the server immediately
|
|
214
|
+
export const auth = betterAuth({
|
|
215
|
+
plugins: [siwn({ recipient: "myapp.com" })],
|
|
216
|
+
});
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Correct:
|
|
220
|
+
|
|
221
|
+
```typescript
|
|
222
|
+
// Add siwn() to plugins, THEN generate schema before starting
|
|
223
|
+
export const auth = betterAuth({
|
|
224
|
+
plugins: [siwn({ recipient: "myapp.com" })],
|
|
225
|
+
});
|
|
226
|
+
// Run: npx @better-auth/cli generate
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
The plugin adds nearAccount, relayedTransaction, and relayerKey tables. Without running the CLI, the database will be missing these tables and all endpoints will fail at runtime with adapter errors.
|
|
230
|
+
|
|
231
|
+
Source: README.md:56-60
|
|
232
|
+
|
|
233
|
+
### MEDIUM Network mismatch from account ID suffix
|
|
234
|
+
|
|
235
|
+
Wrong:
|
|
236
|
+
|
|
237
|
+
```typescript
|
|
238
|
+
await authClient.near.nonce({
|
|
239
|
+
accountId: "alice.near",
|
|
240
|
+
networkId: "testnet", // .near is mainnet
|
|
241
|
+
});
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Correct:
|
|
245
|
+
|
|
246
|
+
```typescript
|
|
247
|
+
await authClient.near.nonce({
|
|
248
|
+
accountId: "alice.near",
|
|
249
|
+
networkId: "mainnet", // matches .near suffix
|
|
250
|
+
});
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Network is auto-detected from the accountId: `.testnet` → testnet, otherwise → mainnet. The nonce endpoint validates that networkId matches the account's detected network and rejects mismatches.
|
|
254
|
+
|
|
255
|
+
Source: src/profile.ts:6-8, src/index.ts:546-552
|
|
256
|
+
|
|
257
|
+
See also: client/SKILL.md — client siwnClient networkId should match the account's network
|