phygital-token-mcp 0.3.0 → 0.4.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/README.md +1 -2
- package/dist/index.js +5 -37
- package/dist/index.js.map +1 -1
- package/dist/lib/docs.d.ts +1 -1
- package/dist/lib/docs.js +1 -8
- package/dist/lib/docs.js.map +1 -1
- package/dist/lib/instructions.js +2 -2
- package/dist/lib/instructions.js.map +1 -1
- package/dist/lib/paths.d.ts +1 -2
- package/dist/lib/paths.js +1 -15
- package/dist/lib/paths.js.map +1 -1
- package/dist/lib/sdk-surface.d.ts +2 -4
- package/dist/lib/sdk-surface.js +4 -21
- package/dist/lib/sdk-surface.js.map +1 -1
- package/dist/lib/verification.d.ts +1 -1
- package/dist/lib/verification.js +13 -40
- package/dist/lib/verification.js.map +1 -1
- package/docs/building-on-phygital/overview.md +4 -4
- package/docs/sdk/surface-area.md +6 -13
- package/docs/verification/methods.md +16 -10
- package/docs/verification/overview.md +4 -4
- package/docs/verification/verify-asset-composable.md +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[Model Context Protocol](https://modelcontextprotocol.io) server for the phygital-token Solana program, TypeScript SDK, and Rust client.
|
|
4
4
|
|
|
5
|
-
**Docs, schema reference, and offline planning only** — no live RPC or on-chain calls. Use [`phygital-token-sdk`](https://www.npmjs.com/package/phygital-token-sdk) in your app for
|
|
5
|
+
**Docs, schema reference, and offline planning only** — no live RPC or on-chain calls. Use [`phygital-token-sdk`](https://www.npmjs.com/package/phygital-token-sdk) in your app for verification, asset fetch, and transaction building.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
@@ -28,7 +28,6 @@ Requires **Node.js 20+**. See [`cursor-mcp.example.json`](./cursor-mcp.example.j
|
|
|
28
28
|
| **Docs** | `search_docs` (omit query to list all), `read_doc` |
|
|
29
29
|
| **Verification** | `recommend_verification` (omit useCase for the decision tree), `plan_verify_asset` |
|
|
30
30
|
| **Planning** | `plan_create_mint`, `plan_mint_token`, `plan_transfer`, `plan_remove_ownership`, `find_asset_pda` |
|
|
31
|
-
| **Gating** | `explain_gating`, `gating_recipe` (omit id to list) |
|
|
32
31
|
| **SDK** | `list_sdk_exports` |
|
|
33
32
|
|
|
34
33
|
All tools are offline and read-only.
|
package/dist/index.js
CHANGED
|
@@ -5,11 +5,10 @@ import { findAssetPda, parseSecp256r1Pubkey } from "phygital-token-sdk";
|
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { listDocs, readDocById, searchDocs } from "./lib/docs.js";
|
|
7
7
|
import { jsonResult, textResult } from "./lib/format.js";
|
|
8
|
-
import { GATING_FILTER_SCHEMA, GATING_OVERVIEW, GATING_RECIPES, GATING_TIER_EXAMPLE, getGatingRecipe, } from "./lib/gating-json.js";
|
|
9
8
|
import { parseAssetType, planCreateMint, planMintToken, planRemoveOwnership, planTransfer, planVerifyAsset, } from "./lib/instructions.js";
|
|
10
9
|
import { SDK_SURFACE } from "./lib/sdk-surface.js";
|
|
11
10
|
import { VERIFICATION_DECISION_TREE, listVerificationUseCases, recommendVerification, } from "./lib/verification.js";
|
|
12
|
-
const VERSION = "0.
|
|
11
|
+
const VERSION = "0.4.0";
|
|
13
12
|
const SERVER_INSTRUCTIONS = [
|
|
14
13
|
"MCP server for the phygital-token Solana program, TypeScript SDK, and Rust client.",
|
|
15
14
|
"Docs, schema reference, and offline planning only — no live on-chain RPC calls.",
|
|
@@ -17,13 +16,12 @@ const SERVER_INSTRUCTIONS = [
|
|
|
17
16
|
"Routing:",
|
|
18
17
|
"- Which verification method to use → recommend_verification",
|
|
19
18
|
"- On-chain verify_asset (standalone, sysvar inspect, or CPI) → plan_verify_asset",
|
|
20
|
-
"- Gating rules → explain_gating, then gating_recipe",
|
|
21
19
|
"- Mint / transfer / forfeiture flows → plan_create_mint, plan_mint_token, plan_transfer, plan_remove_ownership",
|
|
22
20
|
"- SDK export map → list_sdk_exports",
|
|
23
21
|
"- Anything else → search_docs, then read_doc",
|
|
24
22
|
"",
|
|
25
|
-
"Live
|
|
26
|
-
"(
|
|
23
|
+
"Live asset fetch and auth: call phygital-token-sdk directly in your app",
|
|
24
|
+
"(verifyResponse, fetchAssetDisplayInfo, etc.).",
|
|
27
25
|
].join("\n");
|
|
28
26
|
/** Every tool here is offline and side-effect free. */
|
|
29
27
|
const READ_ONLY = {
|
|
@@ -34,7 +32,7 @@ const READ_ONLY = {
|
|
|
34
32
|
};
|
|
35
33
|
function registerTools(server) {
|
|
36
34
|
server.registerTool("search_docs", {
|
|
37
|
-
description: "Search phygital-token docs (
|
|
35
|
+
description: "Search phygital-token docs (verification, building-on-phygital, SDK surface, glossary). Omit query to list every doc id.",
|
|
38
36
|
inputSchema: {
|
|
39
37
|
query: z
|
|
40
38
|
.string()
|
|
@@ -57,7 +55,7 @@ function registerTools(server) {
|
|
|
57
55
|
inputSchema: {
|
|
58
56
|
docId: z
|
|
59
57
|
.string()
|
|
60
|
-
.describe('Document id, e.g. "
|
|
58
|
+
.describe('Document id, e.g. "verification:methods" or "sdk:surface-area"'),
|
|
61
59
|
},
|
|
62
60
|
annotations: { title: "Read doc", ...READ_ONLY },
|
|
63
61
|
}, async ({ docId }) => textResult(await readDocById(docId)));
|
|
@@ -70,12 +68,10 @@ function registerTools(server) {
|
|
|
70
68
|
"deep_link_from_prior_scan",
|
|
71
69
|
"offline_identification",
|
|
72
70
|
"login_ui_only",
|
|
73
|
-
"vault_gated_experience",
|
|
74
71
|
"onchain_standalone_verify",
|
|
75
72
|
"onchain_inspect_verify_asset",
|
|
76
73
|
"onchain_cpi_verify_asset",
|
|
77
74
|
"transfer_ownership",
|
|
78
|
-
"wallet_holdings_gate",
|
|
79
75
|
"native_mobile_app",
|
|
80
76
|
])
|
|
81
77
|
.optional()
|
|
@@ -179,34 +175,6 @@ function registerTools(server) {
|
|
|
179
175
|
const assetPda = await findAssetPda(parseSecp256r1Pubkey(assetPublicKey));
|
|
180
176
|
return jsonResult({ assetPublicKey, assetPda });
|
|
181
177
|
});
|
|
182
|
-
server.registerTool("explain_gating", {
|
|
183
|
-
description: "Gating mental model plus the GatingFilter JSON schema and a tier example: dimensions, evaluation flow, aggregations, same-asset vs wallet-wide pitfalls.",
|
|
184
|
-
inputSchema: {},
|
|
185
|
-
annotations: { title: "Explain gating", ...READ_ONLY },
|
|
186
|
-
}, async () => jsonResult({
|
|
187
|
-
...GATING_OVERVIEW,
|
|
188
|
-
filterSchema: GATING_FILTER_SCHEMA,
|
|
189
|
-
tierExample: GATING_TIER_EXAMPLE,
|
|
190
|
-
}));
|
|
191
|
-
server.registerTool("gating_recipe", {
|
|
192
|
-
description: "Copy-paste gating recipes (filter trees, tiers, footguns) for evaluateAssetGating. Omit recipeId to list them.",
|
|
193
|
-
inputSchema: {
|
|
194
|
-
recipeId: z.string().optional().describe("Recipe id. Omit to list all recipes."),
|
|
195
|
-
},
|
|
196
|
-
annotations: { title: "Gating recipe", ...READ_ONLY },
|
|
197
|
-
}, async ({ recipeId }) => {
|
|
198
|
-
if (!recipeId) {
|
|
199
|
-
return jsonResult({
|
|
200
|
-
recipes: GATING_RECIPES.map(({ id, title, description, footgun }) => ({
|
|
201
|
-
id,
|
|
202
|
-
title,
|
|
203
|
-
description,
|
|
204
|
-
footgun: footgun ?? false,
|
|
205
|
-
})),
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
return jsonResult(getGatingRecipe(recipeId));
|
|
209
|
-
});
|
|
210
178
|
server.registerTool("list_sdk_exports", {
|
|
211
179
|
description: "Map of the phygital-token TypeScript SDK exports and Rust client CPI types, grouped by flow.",
|
|
212
180
|
inputSchema: {},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/docs.d.ts
CHANGED
package/dist/lib/docs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readdir, readFile } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { GLOSSARY_PATH, MCP_DOCS_DIR, pathExists,
|
|
3
|
+
import { GLOSSARY_PATH, MCP_DOCS_DIR, pathExists, resolveSdkReadmePath, } from "./paths.js";
|
|
4
4
|
async function collectMarkdownFiles(dir, category, prefix = "") {
|
|
5
5
|
const entries = [];
|
|
6
6
|
const items = await readdir(dir, { withFileTypes: true });
|
|
@@ -26,13 +26,6 @@ async function collectMarkdownFiles(dir, category, prefix = "") {
|
|
|
26
26
|
}
|
|
27
27
|
export async function listDocs() {
|
|
28
28
|
const docs = [];
|
|
29
|
-
const sdkDocsDir = await resolveSdkDocsDir();
|
|
30
|
-
if (sdkDocsDir) {
|
|
31
|
-
const gatingDir = path.join(sdkDocsDir, "gating");
|
|
32
|
-
if (await pathExists(gatingDir)) {
|
|
33
|
-
docs.push(...(await collectMarkdownFiles(gatingDir, "gating")));
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
29
|
if (await pathExists(MCP_DOCS_DIR)) {
|
|
37
30
|
const verificationDir = path.join(MCP_DOCS_DIR, "verification");
|
|
38
31
|
const buildingDir = path.join(MCP_DOCS_DIR, "building-on-phygital");
|
package/dist/lib/docs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/lib/docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/lib/docs.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/instructions.js
CHANGED
|
@@ -182,7 +182,7 @@ export async function planVerifyAsset(input) {
|
|
|
182
182
|
buildArgs: "buildVerifyAssetArgs",
|
|
183
183
|
complete: "completeVerifyAsset",
|
|
184
184
|
instruction: "getVerifyAssetInstruction",
|
|
185
|
-
offChainAuthOnly: "
|
|
185
|
+
offChainAuthOnly: "startAuthentication (client) + verifyResponse (server); does NOT submit verify_asset",
|
|
186
186
|
},
|
|
187
187
|
message: {
|
|
188
188
|
utf8: input.message,
|
|
@@ -216,7 +216,7 @@ export async function planVerifyAsset(input) {
|
|
|
216
216
|
clientDataJson: "Uint8Array",
|
|
217
217
|
},
|
|
218
218
|
notes: [
|
|
219
|
-
"
|
|
219
|
+
"startAuthentication + verifyResponse is off-chain only — it does not submit verify_asset. Verify on your server.",
|
|
220
220
|
"Pattern A: client includes verify_asset; your program inspects instructions sysvar.",
|
|
221
221
|
"Pattern B: client uses buildVerifyAssetArgs; your program CPIs verify_asset.",
|
|
222
222
|
"verify_asset updates asset.last_transfer_slot; slot must be strictly increasing.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/lib/instructions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/lib/instructions.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/paths.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ export declare const MCP_DOCS_DIR: string;
|
|
|
2
2
|
export declare const GLOSSARY_PATH: string;
|
|
3
3
|
/** Monorepo root when developing in-tree; override with PHYGITAL_TOKEN_REPO_ROOT. */
|
|
4
4
|
export declare function resolveRepoRoot(): string;
|
|
5
|
-
/** SDK
|
|
6
|
-
export declare function resolveSdkDocsDir(): Promise<string | undefined>;
|
|
5
|
+
/** SDK README from the installed npm package, or monorepo fallback. */
|
|
7
6
|
export declare function resolveSdkReadmePath(): Promise<string | undefined>;
|
|
8
7
|
export declare function pathExists(filePath: string): Promise<boolean>;
|
package/dist/lib/paths.js
CHANGED
|
@@ -22,21 +22,7 @@ function resolveSdkPackageRoot() {
|
|
|
22
22
|
return undefined;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
/** SDK
|
|
26
|
-
export async function resolveSdkDocsDir() {
|
|
27
|
-
const sdkRoot = resolveSdkPackageRoot();
|
|
28
|
-
if (sdkRoot) {
|
|
29
|
-
const docsDir = path.join(sdkRoot, "docs");
|
|
30
|
-
if (await pathExists(docsDir)) {
|
|
31
|
-
return docsDir;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
const monorepoDocs = path.join(resolveRepoRoot(), "clients/js/phygital-token/docs");
|
|
35
|
-
if (await pathExists(monorepoDocs)) {
|
|
36
|
-
return monorepoDocs;
|
|
37
|
-
}
|
|
38
|
-
return undefined;
|
|
39
|
-
}
|
|
25
|
+
/** SDK README from the installed npm package, or monorepo fallback. */
|
|
40
26
|
export async function resolveSdkReadmePath() {
|
|
41
27
|
const sdkRoot = resolveSdkPackageRoot();
|
|
42
28
|
if (sdkRoot) {
|
package/dist/lib/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAC/B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,OAAO,CACR,CAAC;AAEF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AAEpE,qFAAqF;AACrF,MAAM,UAAU,eAAe;IAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC;IAC9D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,qBAAqB;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAC/B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,OAAO,CACR,CAAC;AAEF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AAEpE,qFAAqF;AACrF,MAAM,UAAU,eAAe;IAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC;IAC9D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,qBAAqB;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAC9B,eAAe,EAAE,EACjB,qCAAqC,CACtC,CAAC;IACF,IAAI,MAAM,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -3,7 +3,7 @@ export declare const SDK_SURFACE: {
|
|
|
3
3
|
readonly transfer: readonly ["beginTransfer", "authenticatePasskeyForTransfer", "completeTransfer"];
|
|
4
4
|
readonly removeOwnership: readonly ["getRemoveOwnershipInstructionAsync"];
|
|
5
5
|
readonly verifyAssetComposable: readonly ["beginVerifyAsset", "authenticatePasskeyForVerifyAsset", "buildVerifyAssetArgs", "completeVerifyAsset"];
|
|
6
|
-
readonly verification: readonly ["verifyDynamicUrl", "verifyDynamicUrlWithoutCounterCheck", "
|
|
6
|
+
readonly verification: readonly ["verifyDynamicUrl", "verifyDynamicUrlWithoutCounterCheck", "startAuthentication", "verifyResponse"];
|
|
7
7
|
readonly onChainComposition: {
|
|
8
8
|
readonly patternA_inspect: {
|
|
9
9
|
readonly client: readonly ["beginVerifyAsset", "completeVerifyAsset"];
|
|
@@ -16,9 +16,7 @@ export declare const SDK_SURFACE: {
|
|
|
16
16
|
readonly program: "CPI verify_asset via VerifyAssetCpiBuilder";
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
|
-
readonly assetLookup: readonly ["findAssetPda", "fetchAssetFromCredentialId", "fetchAllAssetsFromOwner", "fetchAssetDisplayInfo", "resolveMedia"];
|
|
20
|
-
readonly gating: readonly ["Gating", "GatingTraitValue", "formatGatingPredicate", "summarizeGatingEvaluationFailure", "summarizeGatingFailure", "summarizeGatingTierFailure", "evaluateAssetGating"];
|
|
21
|
-
readonly gatingTypes: readonly ["EvaluateAssetGatingOptions", "GatingFilter", "GatingAssetPredicate", "GatingTier", "GatingEvaluationResult", "GatingFilterResult", "GatingTierEvaluationResult", "GatingTiersEvaluationResult"];
|
|
19
|
+
readonly assetLookup: readonly ["findAssetPda", "fetchAssetFromCredentialId", "fetchAllAssetsFromOwner", "fetchAssetDisplayInfoFromPublicKey", "fetchAssetDisplayInfo", "fetchShortcutsFromExternalUrl", "resolveMedia"];
|
|
22
20
|
readonly generated: readonly ["getCreateMintInstructionAsync", "getMintTokenInstructionAsync", "getExecuteTransferInstructionAsync", "getVerifyAssetInstruction", "getSetLockStateInstruction", "getRemoveOwnershipInstructionAsync", "fetchAsset", "findProgramAuthorityPda", "PHYGITAL_TOKEN_PROGRAM_ADDRESS"];
|
|
23
21
|
readonly rustClient: {
|
|
24
22
|
readonly crate: "phygital-token-client";
|
package/dist/lib/sdk-surface.js
CHANGED
|
@@ -21,8 +21,8 @@ export const SDK_SURFACE = {
|
|
|
21
21
|
verification: [
|
|
22
22
|
"verifyDynamicUrl",
|
|
23
23
|
"verifyDynamicUrlWithoutCounterCheck",
|
|
24
|
-
"
|
|
25
|
-
"
|
|
24
|
+
"startAuthentication",
|
|
25
|
+
"verifyResponse",
|
|
26
26
|
],
|
|
27
27
|
onChainComposition: {
|
|
28
28
|
patternA_inspect: {
|
|
@@ -40,28 +40,11 @@ export const SDK_SURFACE = {
|
|
|
40
40
|
"findAssetPda",
|
|
41
41
|
"fetchAssetFromCredentialId",
|
|
42
42
|
"fetchAllAssetsFromOwner",
|
|
43
|
+
"fetchAssetDisplayInfoFromPublicKey",
|
|
43
44
|
"fetchAssetDisplayInfo",
|
|
45
|
+
"fetchShortcutsFromExternalUrl",
|
|
44
46
|
"resolveMedia",
|
|
45
47
|
],
|
|
46
|
-
gating: [
|
|
47
|
-
"Gating",
|
|
48
|
-
"GatingTraitValue",
|
|
49
|
-
"formatGatingPredicate",
|
|
50
|
-
"summarizeGatingEvaluationFailure",
|
|
51
|
-
"summarizeGatingFailure",
|
|
52
|
-
"summarizeGatingTierFailure",
|
|
53
|
-
"evaluateAssetGating",
|
|
54
|
-
],
|
|
55
|
-
gatingTypes: [
|
|
56
|
-
"EvaluateAssetGatingOptions",
|
|
57
|
-
"GatingFilter",
|
|
58
|
-
"GatingAssetPredicate",
|
|
59
|
-
"GatingTier",
|
|
60
|
-
"GatingEvaluationResult",
|
|
61
|
-
"GatingFilterResult",
|
|
62
|
-
"GatingTierEvaluationResult",
|
|
63
|
-
"GatingTiersEvaluationResult",
|
|
64
|
-
],
|
|
65
48
|
generated: [
|
|
66
49
|
"getCreateMintInstructionAsync",
|
|
67
50
|
"getMintTokenInstructionAsync",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-surface.js","sourceRoot":"","sources":["../../src/lib/sdk-surface.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE;QACJ,6BAA6B;QAC7B,4BAA4B;QAC5B,sBAAsB;QACtB,mBAAmB;QACnB,wBAAwB;KACzB;IACD,QAAQ,EAAE;QACR,eAAe;QACf,gCAAgC;QAChC,kBAAkB;KACnB;IACD,eAAe,EAAE,CAAC,oCAAoC,CAAC;IACvD,qBAAqB,EAAE;QACrB,kBAAkB;QAClB,mCAAmC;QACnC,sBAAsB;QACtB,qBAAqB;KACtB;IACD,YAAY,EAAE;QACZ,kBAAkB;QAClB,qCAAqC;QACrC,
|
|
1
|
+
{"version":3,"file":"sdk-surface.js","sourceRoot":"","sources":["../../src/lib/sdk-surface.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE;QACJ,6BAA6B;QAC7B,4BAA4B;QAC5B,sBAAsB;QACtB,mBAAmB;QACnB,wBAAwB;KACzB;IACD,QAAQ,EAAE;QACR,eAAe;QACf,gCAAgC;QAChC,kBAAkB;KACnB;IACD,eAAe,EAAE,CAAC,oCAAoC,CAAC;IACvD,qBAAqB,EAAE;QACrB,kBAAkB;QAClB,mCAAmC;QACnC,sBAAsB;QACtB,qBAAqB;KACtB;IACD,YAAY,EAAE;QACZ,kBAAkB;QAClB,qCAAqC;QACrC,qBAAqB;QACrB,gBAAgB;KACjB;IACD,kBAAkB,EAAE;QAClB,gBAAgB,EAAE;YAChB,MAAM,EAAE,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;YACnD,WAAW,EAAE,CAAC,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,CAAC;YACpE,OAAO,EAAE,sDAAsD;SAChE;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;YACpD,WAAW,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACpD,OAAO,EAAE,4CAA4C;SACtD;KACF;IACD,WAAW,EAAE;QACX,cAAc;QACd,4BAA4B;QAC5B,yBAAyB;QACzB,oCAAoC;QACpC,uBAAuB;QACvB,+BAA+B;QAC/B,cAAc;KACf;IACD,SAAS,EAAE;QACT,+BAA+B;QAC/B,8BAA8B;QAC9B,oCAAoC;QACpC,2BAA2B;QAC3B,4BAA4B;QAC5B,oCAAoC;QACpC,YAAY;QACZ,yBAAyB;QACzB,gCAAgC;KACjC;IACD,UAAU,EAAE;QACV,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC7B,GAAG,EAAE;YACH,gBAAgB;YAChB,uBAAuB;YACvB,4BAA4B;YAC5B,oBAAoB;YACpB,2BAA2B;SAC5B;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,WAAW,CAAC;KACrD;CACO,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type VerificationUseCase = "product_page_lookup" | "deep_link_from_prior_scan" | "offline_identification" | "login_ui_only" | "
|
|
1
|
+
export type VerificationUseCase = "product_page_lookup" | "deep_link_from_prior_scan" | "offline_identification" | "login_ui_only" | "onchain_standalone_verify" | "onchain_inspect_verify_asset" | "onchain_cpi_verify_asset" | "transfer_ownership" | "native_mobile_app";
|
|
2
2
|
export type OnChainCompositionPattern = "inspect" | "cpi" | "standalone";
|
|
3
3
|
export type VerificationRecommendation = {
|
|
4
4
|
method: string;
|
package/dist/lib/verification.js
CHANGED
|
@@ -25,30 +25,16 @@ const RECOMMENDATIONS = {
|
|
|
25
25
|
cautions: ["Copied links can be replayed."],
|
|
26
26
|
},
|
|
27
27
|
login_ui_only: {
|
|
28
|
-
method: "authentication off-chain — startAuthentication +
|
|
28
|
+
method: "authentication off-chain — startAuthentication + verifyResponse",
|
|
29
29
|
sdkExports: [
|
|
30
|
-
"
|
|
31
|
-
"
|
|
30
|
+
"startAuthentication",
|
|
31
|
+
"verifyResponse",
|
|
32
32
|
],
|
|
33
33
|
requiresTap: true,
|
|
34
34
|
onChain: false,
|
|
35
|
-
rationale: "Server issues challenge; client taps NFC via
|
|
35
|
+
rationale: "Server issues challenge; client taps NFC via startAuthentication; server verifies with verifyResponse. No on-chain transaction.",
|
|
36
36
|
docIds: ["verification:methods", "verification:overview"],
|
|
37
|
-
cautions: ["Run
|
|
38
|
-
},
|
|
39
|
-
vault_gated_experience: {
|
|
40
|
-
method: "vault gate — server-verified tap + evaluateAssetGating",
|
|
41
|
-
sdkExports: [
|
|
42
|
-
"startAuthenticationWithChallengeResponse",
|
|
43
|
-
"verifyWithChallengeResponse",
|
|
44
|
-
"evaluateAssetGating",
|
|
45
|
-
"Gating",
|
|
46
|
-
"GatingTraitValue",
|
|
47
|
-
],
|
|
48
|
-
requiresTap: true,
|
|
49
|
-
onChain: false,
|
|
50
|
-
rationale: "Prove vault holder is present (server-verified tap), then check owner wallet holdings for tiered unlock.",
|
|
51
|
-
docIds: ["verification:methods", "verification:overview", "gating:overview"],
|
|
37
|
+
cautions: ["Run verifyResponse on your server, not in the browser."],
|
|
52
38
|
},
|
|
53
39
|
onchain_standalone_verify: {
|
|
54
40
|
method: "on-chain verify_asset only",
|
|
@@ -103,28 +89,17 @@ const RECOMMENDATIONS = {
|
|
|
103
89
|
docIds: ["verification:overview"],
|
|
104
90
|
cautions: ["Do not use verifyDynamicUrl for transfers."],
|
|
105
91
|
},
|
|
106
|
-
wallet_holdings_gate: {
|
|
107
|
-
method: "gating — evaluateAssetGating",
|
|
108
|
-
sdkExports: ["evaluateAssetGating", "Gating", "GatingTraitValue"],
|
|
109
|
-
requiresTap: false,
|
|
110
|
-
onChain: false,
|
|
111
|
-
rationale: "Wallet holdings via DAS given an asset publicKey. Pair with off-chain tap auth when you need live presence.",
|
|
112
|
-
docIds: ["gating:overview"],
|
|
113
|
-
cautions: [
|
|
114
|
-
"startAuthenticationWithChallengeResponse + verifyWithChallengeResponse first, then evaluateAssetGating.",
|
|
115
|
-
],
|
|
116
|
-
},
|
|
117
92
|
native_mobile_app: {
|
|
118
|
-
method: "authentication off-chain — startAuthentication (transceive) +
|
|
93
|
+
method: "authentication off-chain — startAuthentication (transceive) + verifyResponse",
|
|
119
94
|
sdkExports: [
|
|
120
|
-
"
|
|
121
|
-
"
|
|
95
|
+
"startAuthentication",
|
|
96
|
+
"verifyResponse",
|
|
122
97
|
],
|
|
123
98
|
requiresTap: true,
|
|
124
99
|
onChain: false,
|
|
125
|
-
rationale: "Pass transceive to
|
|
100
|
+
rationale: "Pass transceive to startAuthentication for native NFC readers; verify on server. Use beginVerifyAsset for on-chain proof.",
|
|
126
101
|
docIds: ["verification:methods"],
|
|
127
|
-
cautions: ["Run
|
|
102
|
+
cautions: ["Run verifyResponse on your server, not in the native client."],
|
|
128
103
|
},
|
|
129
104
|
};
|
|
130
105
|
export function recommendVerification(useCase) {
|
|
@@ -136,7 +111,6 @@ export function listVerificationUseCases() {
|
|
|
136
111
|
{ id: "deep_link_from_prior_scan", summary: "App opens from signed deep link" },
|
|
137
112
|
{ id: "offline_identification", summary: "Identify asset offline (weak replay)" },
|
|
138
113
|
{ id: "login_ui_only", summary: "Off-chain tap-to-login (no chain tx)" },
|
|
139
|
-
{ id: "vault_gated_experience", summary: "tap + wallet holdings check" },
|
|
140
114
|
{ id: "onchain_standalone_verify", summary: "On-chain verify_asset only" },
|
|
141
115
|
{
|
|
142
116
|
id: "onchain_inspect_verify_asset",
|
|
@@ -147,7 +121,6 @@ export function listVerificationUseCases() {
|
|
|
147
121
|
summary: "Pattern B: buildVerifyAssetArgs, your program CPIs verify_asset",
|
|
148
122
|
},
|
|
149
123
|
{ id: "transfer_ownership", summary: "Claim/transfer token to new owner" },
|
|
150
|
-
{ id: "wallet_holdings_gate", summary: "Gate by wallet NFTs/tokens" },
|
|
151
124
|
{ id: "native_mobile_app", summary: "Native app off-chain authentication" },
|
|
152
125
|
];
|
|
153
126
|
}
|
|
@@ -156,13 +129,13 @@ Identification vs Authentication
|
|
|
156
129
|
├── Need holder present NOW?
|
|
157
130
|
│ NO → verifyDynamicUrl / verifyDynamicUrlWithoutCounterCheck
|
|
158
131
|
│ YES → Need on-chain proof?
|
|
159
|
-
│ NO →
|
|
160
|
-
│ →
|
|
132
|
+
│ NO → startAuthentication (client tap)
|
|
133
|
+
│ → verifyResponse (server verify) — off-chain only
|
|
161
134
|
│ YES → beginVerifyAsset composable flow:
|
|
162
135
|
│ Pattern A: [secp256r1_verify, verify_asset, your_ix] — program inspects sysvar
|
|
163
136
|
│ Pattern B: [secp256r1_verify, your_ix] — program CPIs verify_asset
|
|
164
137
|
└── Transfer ownership? → beginTransfer → completeTransfer
|
|
165
138
|
|
|
166
|
-
|
|
139
|
+
verifyResponse never submits verify_asset. Returns { isVerified, asset } (owner is asset.owner). Run it on your server. On-chain proof always uses beginVerifyAsset.
|
|
167
140
|
`.trim();
|
|
168
141
|
//# sourceMappingURL=verification.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/lib/verification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/lib/verification.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Third-party developers can:
|
|
4
4
|
|
|
5
|
-
- **
|
|
5
|
+
- **Authenticate off-chain** with a live NFC tap → `startAuthentication` + `verifyResponse`
|
|
6
6
|
- **Require live passkey presence on-chain** → composable `verify_asset` (two patterns below)
|
|
7
7
|
|
|
8
8
|
## Two on-chain composition patterns
|
|
@@ -31,10 +31,10 @@ Best when your program orchestrates verification as part of its own instruction.
|
|
|
31
31
|
|
|
32
32
|
Off-chain tap auth is split:
|
|
33
33
|
|
|
34
|
-
1. **Client:** `
|
|
35
|
-
2. **Server:** `
|
|
34
|
+
1. **Client:** `startAuthentication(expectedMessage)` — NFC tap.
|
|
35
|
+
2. **Server:** `verifyResponse({ expectedMessage, response, rpc })` — signature check → `{ isVerified, asset }` (`asset.owner` is the wallet).
|
|
36
36
|
|
|
37
|
-
Does **not** write to chain. Use for UI login
|
|
37
|
+
Does **not** write to chain. Use for UI login and vault presence checks when no program needs to inspect `verify_asset`.
|
|
38
38
|
|
|
39
39
|
## Message design checklist
|
|
40
40
|
|
package/docs/sdk/surface-area.md
CHANGED
|
@@ -41,10 +41,10 @@ TypeScript package: `phygital-token-sdk` (`clients/js/phygital-token`).
|
|
|
41
41
|
|--------|---------|
|
|
42
42
|
| `verifyDynamicUrl` | Identification via signed URL (server) |
|
|
43
43
|
| `verifyDynamicUrlWithoutCounterCheck` | Identification offline |
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
44
|
+
| `startAuthentication` | Client: NFC tap trigger; returns WebAuthn response |
|
|
45
|
+
| `verifyResponse` | Server: verify tap signature; returns `{ isVerified, asset }` |
|
|
46
46
|
|
|
47
|
-
Pair `
|
|
47
|
+
Pair `startAuthentication` (client) with `verifyResponse` (server). Pass optional `transceive` for kiosk / native NFC readers. Optional `fetchAssetFromCredentialIdCallback` must return an `Asset`. Owner wallet is `asset.owner`.
|
|
48
48
|
|
|
49
49
|
On-chain proof always uses `beginVerifyAsset` / `buildVerifyAssetArgs` / `completeVerifyAsset`.
|
|
50
50
|
|
|
@@ -55,18 +55,11 @@ On-chain proof always uses `beginVerifyAsset` / `buildVerifyAssetArgs` / `comple
|
|
|
55
55
|
| `findAssetPda` | Derive asset PDA from secp256r1 pubkey |
|
|
56
56
|
| `fetchAssetFromCredentialId` | Resolve asset + pubkey from credential |
|
|
57
57
|
| `fetchAllAssetsFromOwner` | List assets by wallet owner |
|
|
58
|
-
| `
|
|
58
|
+
| `fetchAssetDisplayInfoFromPublicKey` | Rich display metadata from base64url pubkey |
|
|
59
|
+
| `fetchAssetDisplayInfo` | Rich display metadata from a decoded `Asset` account |
|
|
60
|
+
| `fetchShortcutsFromExternalUrl` | Load Phantom Shortcuts schema v2 from `{external_url}/shortcuts.json` |
|
|
59
61
|
| `resolveMedia` | Resolve media URLs from token metadata |
|
|
60
62
|
|
|
61
|
-
## Gating
|
|
62
|
-
|
|
63
|
-
| Export | Purpose |
|
|
64
|
-
|--------|---------|
|
|
65
|
-
| `evaluateAssetGating` | Full tier evaluation for asset owner wallet |
|
|
66
|
-
| `evaluateGatingTiers` / `evaluateGatingFilter` | Lower-level evaluators |
|
|
67
|
-
| `Gating` / `GatingTraitValue` | Filter builders |
|
|
68
|
-
| `summarizeGatingEvaluationFailure` | Human-readable failure reasons |
|
|
69
|
-
|
|
70
63
|
## Generated (Codama)
|
|
71
64
|
|
|
72
65
|
Re-exported from `./generated/index.js`:
|
|
@@ -16,7 +16,7 @@ All exports from `clients/js/phygital-token/src/utils/verify.ts`.
|
|
|
16
16
|
|
|
17
17
|
Off-chain authentication is **split**: NFC tap on the client, signature verification on your server.
|
|
18
18
|
|
|
19
|
-
### `
|
|
19
|
+
### `startAuthentication(message, transceive?)`
|
|
20
20
|
|
|
21
21
|
**Client — trigger the tap.**
|
|
22
22
|
|
|
@@ -24,35 +24,41 @@ Opens the system NFC modal (browser) or talks to an NFC reader via `transceive`
|
|
|
24
24
|
|
|
25
25
|
```ts
|
|
26
26
|
// Browser
|
|
27
|
-
const response = await
|
|
27
|
+
const response = await startAuthentication(message);
|
|
28
28
|
|
|
29
29
|
// Kiosk / native reader
|
|
30
|
-
const response = await
|
|
30
|
+
const response = await startAuthentication(message, transceive);
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
`message` must be the same string your server issued as the challenge (store server-side with a short TTL).
|
|
34
34
|
|
|
35
|
-
### `
|
|
35
|
+
### `verifyResponse({ rpc, expectedMessage, response, ... })`
|
|
36
36
|
|
|
37
37
|
**Server — verify the tap.**
|
|
38
38
|
|
|
39
|
-
Checks the WebAuthn signature against `expectedMessage`, resolves the vault
|
|
39
|
+
Checks the WebAuthn signature against `expectedMessage`, resolves the vault via RPC (or `fetchAssetFromCredentialIdCallback`). Returns `{ isVerified, asset }`. Owner wallet is `asset.owner`. Challenge mismatch throws (`Message mismatch.`); a bad signature returns `isVerified: false`. Does **not** submit `verify_asset`.
|
|
40
|
+
|
|
41
|
+
`fetchAssetFromCredentialIdCallback` must return a decoded on-chain `Asset`.
|
|
40
42
|
|
|
41
43
|
```ts
|
|
42
44
|
// API route after client POSTs { message, response }
|
|
43
|
-
const {
|
|
45
|
+
const { isVerified, asset } = await verifyResponse({
|
|
44
46
|
rpc,
|
|
45
47
|
expectedMessage: message,
|
|
46
48
|
response,
|
|
47
49
|
});
|
|
50
|
+
|
|
51
|
+
if (isVerified) {
|
|
52
|
+
// use asset.owner / asset fields
|
|
53
|
+
}
|
|
48
54
|
```
|
|
49
55
|
|
|
50
56
|
Typical flow:
|
|
51
57
|
|
|
52
58
|
1. Server issues `message` (e.g. `randomUUID()`), stores it for the session.
|
|
53
|
-
2. Client calls `
|
|
59
|
+
2. Client calls `startAuthentication(message)` → user taps vault.
|
|
54
60
|
3. Client POSTs `{ message, response }` to your verify API.
|
|
55
|
-
4. Server calls `
|
|
61
|
+
4. Server calls `verifyResponse`, then runs your business logic.
|
|
56
62
|
|
|
57
63
|
For on-chain proof with a bound message, use `beginVerifyAsset({ message: Uint8Array })` instead.
|
|
58
64
|
|
|
@@ -60,7 +66,7 @@ For on-chain proof with a bound message, use `beginVerifyAsset({ message: Uint8A
|
|
|
60
66
|
|
|
61
67
|
| Need | Use |
|
|
62
68
|
|------|-----|
|
|
63
|
-
| UI login / vault gate, no tx | `
|
|
69
|
+
| UI login / vault gate, no tx | `startAuthentication` + `verifyResponse` |
|
|
64
70
|
| On-chain proof — Pattern A | `completeVerifyAsset` + your ix |
|
|
65
71
|
| On-chain proof — Pattern B | `buildVerifyAssetArgs` + your ix |
|
|
66
72
|
| Transfer ownership | `beginTransfer` → `completeTransfer` |
|
|
@@ -69,7 +75,7 @@ For on-chain proof with a bound message, use `beginVerifyAsset({ message: Uint8A
|
|
|
69
75
|
|
|
70
76
|
| Context | `message` type | Effect |
|
|
71
77
|
|---------|----------------|--------|
|
|
72
|
-
| `
|
|
78
|
+
| `startAuthentication` / `verifyResponse` | `string` (`expectedMessage`) | WebAuthn challenge bytes (UTF-8); must match on client and server |
|
|
73
79
|
| `beginVerifyAsset` | `Uint8Array` | Hashed into slot-bound on-chain challenge |
|
|
74
80
|
|
|
75
81
|
An off-chain `expectedMessage` does **not** produce an on-chain `verify_asset` record. Use the composable flow when your program must inspect or CPI `verify_asset`.
|
|
@@ -20,8 +20,8 @@ Do you need the holder physically present right now?
|
|
|
20
20
|
│ └─ Offline / no backend → verifyDynamicUrlWithoutCounterCheck (weaker)
|
|
21
21
|
└─ YES → Authentication
|
|
22
22
|
├─ Off-chain only (UI login, vault gate, no chain tx)
|
|
23
|
-
│ Server issues challenge →
|
|
24
|
-
│ →
|
|
23
|
+
│ Server issues challenge → startAuthentication (client tap)
|
|
24
|
+
│ → verifyResponse (server verify) → your logic
|
|
25
25
|
├─ On-chain proof for your program → beginVerifyAsset composable flow (see below)
|
|
26
26
|
└─ Transfer ownership → beginTransfer → completeTransfer (NOT verify_asset)
|
|
27
27
|
```
|
|
@@ -30,8 +30,8 @@ Do you need the holder physically present right now?
|
|
|
30
30
|
|
|
31
31
|
Off-chain authentication uses two SDK functions:
|
|
32
32
|
|
|
33
|
-
- **`
|
|
34
|
-
- **`
|
|
33
|
+
- **`startAuthentication`** — client only; opens NFC and returns a WebAuthn response.
|
|
34
|
+
- **`verifyResponse`** — server only; checks the signature and returns `{ isVerified, asset }` (`asset.owner` is the wallet).
|
|
35
35
|
|
|
36
36
|
Neither submits a transaction. Verification should run on your backend so the client cannot fake a successful tap.
|
|
37
37
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Composable `verify_asset` (TypeScript)
|
|
2
2
|
|
|
3
|
-
On-chain passkey authentication for custom programs. **Not** the same as off-chain `
|
|
3
|
+
On-chain passkey authentication for custom programs. **Not** the same as off-chain `startAuthentication` + `verifyResponse`.
|
|
4
4
|
|
|
5
5
|
## Session flow
|
|
6
6
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "phygital-token-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "MCP server for the phygital-token Solana program, TypeScript SDK, and Rust client",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"repository": {
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
35
35
|
"@noble/hashes": "^2.0.1",
|
|
36
|
-
"@solana/kit": "^
|
|
36
|
+
"@solana/kit": "^7.0.0",
|
|
37
37
|
"zod": "^3.25.76",
|
|
38
|
-
"phygital-token-sdk": "0.
|
|
38
|
+
"phygital-token-sdk": "0.11.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/node": "^22.15.21",
|