@perkos/agent-sdk 0.3.1 → 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/CHANGELOG.md +26 -1
- package/README.md +49 -6
- package/SECURITY.md +11 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/partner.d.ts +79 -0
- package/dist/partner.d.ts.map +1 -0
- package/dist/partner.js +195 -0
- package/dist/partner.js.map +1 -0
- package/dist/x402-paying.d.ts +2 -1
- package/dist/x402-paying.d.ts.map +1 -1
- package/dist/x402-paying.js +20 -7
- package/dist/x402-paying.js.map +1 -1
- package/docs/PARTNER_PILOT.md +95 -0
- package/docs/X402_PAYMENTS.md +7 -4
- package/docs/plans/2026-08-27-leather-lower-fee-hotfix-design.md +53 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,32 @@ All notable changes to `@perkos/agent-sdk` are documented here.
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `NayoriPartnerClient` for invitation-bound wallet challenges, one-time OAuth client enrollment,
|
|
10
|
+
minimum-scope client-credentials tokens and authenticated MCP JSON-RPC calls.
|
|
11
|
+
- `createStacksConnectPartnerSigner` adapter for Leather-compatible `stx_signMessage` responses
|
|
12
|
+
without giving the SDK wallet key material.
|
|
13
|
+
- Partner-pilot documentation covering exact-message review, one-time secret handling, scopes,
|
|
14
|
+
MCP tools and the separate wallet payment-signing boundary.
|
|
15
|
+
|
|
16
|
+
### Security
|
|
17
|
+
|
|
18
|
+
- Normalize and validate recoverable signatures and compressed public keys before registration.
|
|
19
|
+
- Keep OAuth credentials caller-owned: the SDK does not persist, log, refresh or treat them as
|
|
20
|
+
payment authorization.
|
|
21
|
+
|
|
22
|
+
## 0.3.2 - 2026-08-27
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- Treat the payment intent fee as a strict upper bound when an interactive wallet returns a lower
|
|
27
|
+
positive origin fee. Fees above the authorized value and zero fees continue to fail closed;
|
|
28
|
+
payer, nonce, amount, recipient, memo and non-sponsored authorization remain exact.
|
|
29
|
+
- Commit the independently verified origin fee to session usage while reserving the full authorized
|
|
30
|
+
fee during asynchronous signing. This preserves concurrent fee caps and reports actual spend.
|
|
31
|
+
- Cover Leather-compatible lower-fee signing, out-of-bounds rejection, reservation release and
|
|
32
|
+
actual-fee policy accounting.
|
|
8
33
|
|
|
9
34
|
## 0.3.1 - 2026-08-27
|
|
10
35
|
|
package/README.md
CHANGED
|
@@ -9,14 +9,15 @@ This repository is the continuation of `PerkOS-xyz/PerkOS-Agent-SDK`, renamed to
|
|
|
9
9
|
public SDK with the Nayori product identity. The npm package remains `@perkos/agent-sdk` and the
|
|
10
10
|
complete Git history, releases, issues, and pull requests are preserved.
|
|
11
11
|
|
|
12
|
-
> Status: 0.
|
|
12
|
+
> Status: 0.4.0 developer release. Read clients, transaction builders, browser and headless signer
|
|
13
13
|
> adapters, confirmation receipts, safety policies, and a transactional testnet quickstart are
|
|
14
|
-
> implemented. The x402 v2 client and Stacks facilitator foundations are implemented;
|
|
15
|
-
>
|
|
16
|
-
> external review
|
|
14
|
+
> implemented. The x402 v2 client and Stacks facilitator foundations are implemented; this release
|
|
15
|
+
> adds wallet-linked OAuth and MCP support for the planned invite-only testnet pilot. Hosted rollout,
|
|
16
|
+
> external review and adoption evidence remain before Milestone 2 completion. The direct x402
|
|
17
17
|
> profile includes request-bound pure verification
|
|
18
18
|
> and payer-side intent, policy, Leather, and remote-signer foundations for STX, sBTC, and USDCx.
|
|
19
|
-
>
|
|
19
|
+
> Every payment signature remains delegated to the configured wallet or custody boundary. Mainnet
|
|
20
|
+
> facilitator settlement remains disabled.
|
|
20
21
|
|
|
21
22
|
## Requirements
|
|
22
23
|
|
|
@@ -148,6 +149,43 @@ const perkos = new PerkOSClient({ network: "mainnet", signer });
|
|
|
148
149
|
Install `@stacks/connect` in the browser application. Wallet discovery and account selection stay
|
|
149
150
|
at the application boundary so the SDK cannot silently choose an account.
|
|
150
151
|
|
|
152
|
+
## Invite-only partner OAuth and MCP
|
|
153
|
+
|
|
154
|
+
`NayoriPartnerClient` enrolls an invited partner without taking custody of a wallet. It requests a
|
|
155
|
+
single-use challenge, delegates the exact plaintext to Leather through `stx_signMessage`, submits
|
|
156
|
+
the signature and returns the generated OAuth client secret once. OAuth authorizes API/MCP access
|
|
157
|
+
only; every payment remains a separate wallet-signed transaction.
|
|
158
|
+
|
|
159
|
+
```ts
|
|
160
|
+
import { request } from "@stacks/connect";
|
|
161
|
+
import {
|
|
162
|
+
NayoriPartnerClient,
|
|
163
|
+
createStacksConnectPartnerSigner,
|
|
164
|
+
} from "@perkos/agent-sdk";
|
|
165
|
+
|
|
166
|
+
const partners = new NayoriPartnerClient();
|
|
167
|
+
const credentials = await partners.enroll({
|
|
168
|
+
invitationToken,
|
|
169
|
+
walletAddress: connectedTestnetAddress,
|
|
170
|
+
signMessage: createStacksConnectPartnerSigner(request),
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
// Move the one-time secret directly into the application's secret manager.
|
|
174
|
+
const token = await partners.requestToken({
|
|
175
|
+
clientId: credentials.clientId,
|
|
176
|
+
clientSecret: credentials.clientSecret,
|
|
177
|
+
scopes: ["mcp:invoke"],
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
const tools = await partners.callMcp({
|
|
181
|
+
accessToken: token.accessToken,
|
|
182
|
+
method: "tools/list",
|
|
183
|
+
});
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
See [Partner pilot](docs/PARTNER_PILOT.md) for the complete enrollment, scope and secret-handling
|
|
187
|
+
boundary.
|
|
188
|
+
|
|
151
189
|
## Headless signer
|
|
152
190
|
|
|
153
191
|
`HeadlessSigner` requests key material only when deriving the public address or signing. It caches
|
|
@@ -391,11 +429,16 @@ or facilitator-submitted signed transaction.
|
|
|
391
429
|
- Automated workflows can wait for an explicit terminal confirmation before their next action.
|
|
392
430
|
- x402 quotes are bound to the configured network, escrow contract, asset, job, and exact budget.
|
|
393
431
|
- x402 settlement verifies current chain evidence and atomically consumes each funding txid once.
|
|
432
|
+
- Partner OAuth enrollment signs an exact, short-lived, invitation-bound message in the wallet;
|
|
433
|
+
the SDK normalizes the public signature but never receives a private key.
|
|
434
|
+
- OAuth client secrets and access tokens are application secrets. The SDK returns them to the
|
|
435
|
+
caller but does not persist, log or refresh them automatically.
|
|
394
436
|
|
|
395
437
|
This package has not yet completed the external security review required for PerkOS Milestone 2.
|
|
396
438
|
Do not treat the developer release as audited software.
|
|
397
439
|
|
|
398
|
-
See [Architecture](docs/ARCHITECTURE.md)
|
|
440
|
+
See [Architecture](docs/ARCHITECTURE.md), [Partner pilot](docs/PARTNER_PILOT.md) and
|
|
441
|
+
[Security](SECURITY.md) for the trust boundaries and
|
|
399
442
|
responsible disclosure process.
|
|
400
443
|
|
|
401
444
|
## Development
|
package/SECURITY.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Release status
|
|
4
4
|
|
|
5
|
-
`@perkos/agent-sdk` 0.
|
|
5
|
+
`@perkos/agent-sdk` 0.4.0 is an M2 developer release and has not completed the external security
|
|
6
6
|
review required for the PerkOS Stacks Endowment milestone.
|
|
7
7
|
|
|
8
8
|
Do not use this developer release to control material funds without your own review. Inspect every
|
|
@@ -40,6 +40,10 @@ disclosure.
|
|
|
40
40
|
- Explicit direct-payment recipient, HTTPS origin, merchant, amount, fee, and session limits.
|
|
41
41
|
- Concurrent payment reservations that prevent asynchronous agents from oversubscribing a budget.
|
|
42
42
|
- Independent verification of every signed direct-payment transaction before facilitator submission.
|
|
43
|
+
- Invitation-bound partner enrollment through exact Stacks message signing, with compressed public
|
|
44
|
+
key and recoverable-signature validation before API submission.
|
|
45
|
+
- OAuth client secrets and tokens remain caller-owned and are never persisted or automatically
|
|
46
|
+
refreshed by the SDK.
|
|
43
47
|
|
|
44
48
|
## Key handling
|
|
45
49
|
|
|
@@ -62,6 +66,12 @@ in-process policy is defense in depth and can be bypassed by a malicious host ap
|
|
|
62
66
|
custody service must independently authenticate callers, revalidate intent, enforce durable limits,
|
|
63
67
|
and keep keys outside the agent/LLM process.
|
|
64
68
|
|
|
69
|
+
`createStacksConnectPartnerSigner` uses `stx_signMessage` only for the exact partner-enrollment
|
|
70
|
+
challenge. This signature authorizes OAuth client creation, not a payment. The host must show the
|
|
71
|
+
message, network and selected address to the user, move the returned one-time client secret into a
|
|
72
|
+
secret manager and keep invitations, signatures, secrets and access tokens out of telemetry and
|
|
73
|
+
prompts.
|
|
74
|
+
|
|
65
75
|
## Confirmation handling
|
|
66
76
|
|
|
67
77
|
A broadcast receipt means a node accepted the transaction, not that the contract call succeeded.
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { SpendingPolicy } from "./policy.js";
|
|
|
4
4
|
export { HeadlessSigner, StacksConnectSigner } from "./signers.js";
|
|
5
5
|
export { TransactionTracker } from "./tracker.js";
|
|
6
6
|
export { PerkOSError } from "./errors.js";
|
|
7
|
+
export { NAYORI_PARTNER_SCOPES, NayoriPartnerApiError, NayoriPartnerClient, createStacksConnectPartnerSigner, } from "./partner.js";
|
|
7
8
|
export { DEFAULT_DEPLOYMENTS, JOB_STATUS, CLARITY_ERROR_MESSAGES } from "./constants.js";
|
|
8
9
|
export { resolveConfig, toUint } from "./validation.js";
|
|
9
10
|
export { normalizeTxid } from "./txid.js";
|
|
@@ -15,6 +16,7 @@ export type { HeadlessSignerOptions, HeadlessTransactionExecutor, HeadlessTransa
|
|
|
15
16
|
export type { TrackerFetch, TransactionTrackerOptions, } from "./tracker.js";
|
|
16
17
|
export type { AgentEndpoint, AgentRecord, Amount, AmountLike, AssignProviderInput, ConfirmationOptions, ConfirmedTransactionReceipt, ContractCallPlan, ContractId, CreateJobInput, FundJobInput, JobAmountInput, JobRecord, JobStatus, PaymentAsset, PerkOSConfig, PerkOSContracts, PerkOSNetwork, PerkOSOperation, PerkOSSigner, RateProviderInput, ReadOnlyCall, ReadOnlyTransport, RegisterAgentInput, ReputationRecord, ResolvedPerkOSConfig, SettleJobInput, SignerResult, SpendingApproval, SpendingPolicyInput, SubmitWorkInput, TransactionIntent, TransactionConfirmation, TransactionConfirmationStatus, TransactionReceipt, TransactionResultValue, TransactionTrackerLike, UpdateAgentInput, } from "./types.js";
|
|
17
18
|
export type { PerkOSErrorCode, PerkOSErrorDetails } from "./errors.js";
|
|
19
|
+
export type { NayoriPartnerAccessToken, NayoriPartnerChallenge, NayoriPartnerCredentials, NayoriPartnerFetch, NayoriPartnerMessageSignature, NayoriPartnerMessageSigner, NayoriPartnerNetwork, NayoriPartnerScope, StacksConnectMessageRequest, } from "./partner.js";
|
|
18
20
|
export type { ParsedPerkOSX402Requirement, PaymentPayload, PaymentRequired, PaymentRequirements, PerkOSX402ClientLike, PerkOSX402PaymentProof, PerkOSX402PaymentRequiredInput, PerkOSX402SchemeClientOptions, ResourceInfo, SettleResponse, } from "./x402.js";
|
|
19
21
|
export type { HiroX402TransactionSourceOptions, PerkOSX402FacilitatorOptions, PerkOSX402ReplayRecord, PerkOSX402ReplayStore, PerkOSX402TransactionSource, PerkOSX402VerifiedPayment, X402VerifierFetch, } from "./x402-facilitator.js";
|
|
20
22
|
export type { NayoriStacksX402Network, NayoriX402AssetDefinition, NayoriX402DirectPaymentPayloadInput, NayoriX402PaymentAsset, NayoriX402ProtectedRequest, NayoriX402Quote, NayoriX402QuoteInput, NayoriX402VerifiedDirectPayment, NayoriX402ValidatedPaymentContext, ValidateNayoriX402PaymentContextInput, VerifyNayoriX402DirectPaymentInput, } from "./x402-direct.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export { SpendingPolicy } from "./policy.js";
|
|
|
4
4
|
export { HeadlessSigner, StacksConnectSigner } from "./signers.js";
|
|
5
5
|
export { TransactionTracker } from "./tracker.js";
|
|
6
6
|
export { PerkOSError } from "./errors.js";
|
|
7
|
+
export { NAYORI_PARTNER_SCOPES, NayoriPartnerApiError, NayoriPartnerClient, createStacksConnectPartnerSigner, } from "./partner.js";
|
|
7
8
|
export { DEFAULT_DEPLOYMENTS, JOB_STATUS, CLARITY_ERROR_MESSAGES } from "./constants.js";
|
|
8
9
|
export { resolveConfig, toUint } from "./validation.js";
|
|
9
10
|
export { normalizeTxid } from "./txid.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,iCAAiC,EACjC,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,EACzB,wCAAwC,EACxC,+BAA+B,EAC/B,oCAAoC,EACpC,yBAAyB,EACzB,iCAAiC,EACjC,2BAA2B,EAC3B,iCAAiC,EACjC,oCAAoC,EACpC,mCAAmC,EACnC,qBAAqB,EACrB,gCAAgC,EAChC,kBAAkB,EAClB,yBAAyB,EACzB,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,iCAAiC,EACjC,kCAAkC,EAClC,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,EACZ,yCAAyC,EACzC,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,gCAAgC,GACjC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,iCAAiC,EACjC,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,EACzB,wCAAwC,EACxC,+BAA+B,EAC/B,oCAAoC,EACpC,yBAAyB,EACzB,iCAAiC,EACjC,2BAA2B,EAC3B,iCAAiC,EACjC,oCAAoC,EACpC,mCAAmC,EACnC,qBAAqB,EACrB,gCAAgC,EAChC,kBAAkB,EAClB,yBAAyB,EACzB,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,iCAAiC,EACjC,kCAAkC,EAClC,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,EACZ,yCAAyC,EACzC,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export declare const NAYORI_PARTNER_SCOPES: readonly ["catalog:read", "quotes:create", "payments:verify", "payments:settle", "payments:read", "mcp:invoke"];
|
|
2
|
+
export type NayoriPartnerScope = (typeof NAYORI_PARTNER_SCOPES)[number];
|
|
3
|
+
export type NayoriPartnerNetwork = "testnet" | "mainnet";
|
|
4
|
+
export type NayoriPartnerFetch = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
|
|
5
|
+
export type NayoriPartnerChallenge = {
|
|
6
|
+
readonly challengeId: string;
|
|
7
|
+
readonly message: string;
|
|
8
|
+
readonly expiresAt: string;
|
|
9
|
+
readonly walletAddress: string;
|
|
10
|
+
readonly network: NayoriPartnerNetwork;
|
|
11
|
+
};
|
|
12
|
+
export type NayoriPartnerCredentials = {
|
|
13
|
+
readonly clientId: string;
|
|
14
|
+
readonly clientSecret: string;
|
|
15
|
+
readonly tokenEndpoint: string;
|
|
16
|
+
readonly scopes: readonly NayoriPartnerScope[];
|
|
17
|
+
readonly walletAddress: string;
|
|
18
|
+
};
|
|
19
|
+
export type NayoriPartnerAccessToken = {
|
|
20
|
+
readonly accessToken: string;
|
|
21
|
+
readonly tokenType: "Bearer";
|
|
22
|
+
readonly expiresIn: number;
|
|
23
|
+
readonly scopes: readonly NayoriPartnerScope[];
|
|
24
|
+
};
|
|
25
|
+
export type NayoriPartnerMessageSignature = {
|
|
26
|
+
readonly signature: string;
|
|
27
|
+
readonly publicKey: string;
|
|
28
|
+
};
|
|
29
|
+
export type NayoriPartnerMessageSigner = (input: {
|
|
30
|
+
readonly message: string;
|
|
31
|
+
readonly walletAddress: string;
|
|
32
|
+
readonly network: NayoriPartnerNetwork;
|
|
33
|
+
}) => Promise<NayoriPartnerMessageSignature>;
|
|
34
|
+
export type StacksConnectMessageRequest = (method: "stx_signMessage", params: {
|
|
35
|
+
readonly message: string;
|
|
36
|
+
}) => Promise<{
|
|
37
|
+
readonly signature: string;
|
|
38
|
+
readonly publicKey: string;
|
|
39
|
+
}>;
|
|
40
|
+
export declare class NayoriPartnerApiError extends Error {
|
|
41
|
+
readonly status: number;
|
|
42
|
+
readonly code: string;
|
|
43
|
+
constructor(status: number, code: string, message: string);
|
|
44
|
+
}
|
|
45
|
+
export declare function createStacksConnectPartnerSigner(request: StacksConnectMessageRequest): NayoriPartnerMessageSigner;
|
|
46
|
+
export declare class NayoriPartnerClient {
|
|
47
|
+
readonly origin: string;
|
|
48
|
+
private readonly fetchImpl;
|
|
49
|
+
constructor(options?: {
|
|
50
|
+
readonly origin?: string;
|
|
51
|
+
readonly fetch?: NayoriPartnerFetch;
|
|
52
|
+
});
|
|
53
|
+
requestChallenge(input: {
|
|
54
|
+
readonly invitationToken: string;
|
|
55
|
+
readonly walletAddress: string;
|
|
56
|
+
}): Promise<NayoriPartnerChallenge>;
|
|
57
|
+
register(input: {
|
|
58
|
+
readonly challengeId: string;
|
|
59
|
+
readonly signature: string;
|
|
60
|
+
readonly publicKey: string;
|
|
61
|
+
}): Promise<NayoriPartnerCredentials>;
|
|
62
|
+
enroll(input: {
|
|
63
|
+
readonly invitationToken: string;
|
|
64
|
+
readonly walletAddress: string;
|
|
65
|
+
readonly signMessage: NayoriPartnerMessageSigner;
|
|
66
|
+
}): Promise<NayoriPartnerCredentials>;
|
|
67
|
+
requestToken(input: {
|
|
68
|
+
readonly clientId: string;
|
|
69
|
+
readonly clientSecret: string;
|
|
70
|
+
readonly scopes?: readonly NayoriPartnerScope[];
|
|
71
|
+
}): Promise<NayoriPartnerAccessToken>;
|
|
72
|
+
callMcp(input: {
|
|
73
|
+
readonly accessToken: string;
|
|
74
|
+
readonly id?: string | number;
|
|
75
|
+
readonly method: "initialize" | "ping" | "tools/list" | "tools/call";
|
|
76
|
+
readonly params?: unknown;
|
|
77
|
+
}): Promise<Record<string, unknown>>;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=partner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner.d.ts","sourceRoot":"","sources":["../src/partner.ts"],"names":[],"mappings":"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"}
|
package/dist/partner.js
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
export const NAYORI_PARTNER_SCOPES = [
|
|
2
|
+
"catalog:read",
|
|
3
|
+
"quotes:create",
|
|
4
|
+
"payments:verify",
|
|
5
|
+
"payments:settle",
|
|
6
|
+
"payments:read",
|
|
7
|
+
"mcp:invoke",
|
|
8
|
+
];
|
|
9
|
+
export class NayoriPartnerApiError extends Error {
|
|
10
|
+
status;
|
|
11
|
+
code;
|
|
12
|
+
constructor(status, code, message) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.status = status;
|
|
15
|
+
this.code = code;
|
|
16
|
+
this.name = "NayoriPartnerApiError";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function apiOrigin(value) {
|
|
20
|
+
const url = new URL(value ?? "https://api.nayori.ai");
|
|
21
|
+
const local = url.hostname === "localhost" || url.hostname === "127.0.0.1";
|
|
22
|
+
if (url.protocol !== "https:" && !local) {
|
|
23
|
+
throw new Error("Nayori partner API origin must use HTTPS outside local development.");
|
|
24
|
+
}
|
|
25
|
+
return url.origin;
|
|
26
|
+
}
|
|
27
|
+
function object(value, label) {
|
|
28
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
29
|
+
throw new Error(`${label} is invalid.`);
|
|
30
|
+
}
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
function string(value, label) {
|
|
34
|
+
if (typeof value !== "string" || value.length === 0)
|
|
35
|
+
throw new Error(`${label} is invalid.`);
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
function normalizedHex(value, pattern, label) {
|
|
39
|
+
const normalized = value.startsWith("0x") ? value.slice(2) : value;
|
|
40
|
+
if (!pattern.test(normalized))
|
|
41
|
+
throw new Error(`${label} is invalid.`);
|
|
42
|
+
return normalized;
|
|
43
|
+
}
|
|
44
|
+
function scopes(value) {
|
|
45
|
+
if (!Array.isArray(value) ||
|
|
46
|
+
value.length === 0 ||
|
|
47
|
+
value.some((scope) => typeof scope !== "string" ||
|
|
48
|
+
!NAYORI_PARTNER_SCOPES.includes(scope))) {
|
|
49
|
+
throw new Error("Nayori partner scopes are invalid.");
|
|
50
|
+
}
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
async function responseJson(response) {
|
|
54
|
+
let payload = {};
|
|
55
|
+
try {
|
|
56
|
+
payload = object(await response.json(), "Nayori API response");
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
if (response.ok)
|
|
60
|
+
throw new Error("Nayori API returned invalid JSON.");
|
|
61
|
+
}
|
|
62
|
+
if (!response.ok) {
|
|
63
|
+
const nested = payload.error && typeof payload.error === "object"
|
|
64
|
+
? payload.error
|
|
65
|
+
: null;
|
|
66
|
+
const code = (typeof payload.error === "string" && payload.error) ||
|
|
67
|
+
(nested && typeof nested.code === "string" && nested.code) ||
|
|
68
|
+
"nayori_api_error";
|
|
69
|
+
const message = (typeof payload.error_description === "string" && payload.error_description) ||
|
|
70
|
+
(nested && typeof nested.message === "string" && nested.message) ||
|
|
71
|
+
`Nayori API returned HTTP ${response.status}.`;
|
|
72
|
+
throw new NayoriPartnerApiError(response.status, code, message);
|
|
73
|
+
}
|
|
74
|
+
return payload;
|
|
75
|
+
}
|
|
76
|
+
export function createStacksConnectPartnerSigner(request) {
|
|
77
|
+
return async ({ message }) => {
|
|
78
|
+
const result = await request("stx_signMessage", { message });
|
|
79
|
+
return {
|
|
80
|
+
signature: normalizedHex(result.signature, /^[0-9a-f]{130}$/i, "Leather signature"),
|
|
81
|
+
publicKey: normalizedHex(result.publicKey, /^(02|03)[0-9a-f]{64}$/i, "Leather public key"),
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
export class NayoriPartnerClient {
|
|
86
|
+
origin;
|
|
87
|
+
fetchImpl;
|
|
88
|
+
constructor(options = {}) {
|
|
89
|
+
this.origin = apiOrigin(options.origin);
|
|
90
|
+
this.fetchImpl = options.fetch ?? globalThis.fetch.bind(globalThis);
|
|
91
|
+
}
|
|
92
|
+
async requestChallenge(input) {
|
|
93
|
+
const response = await this.fetchImpl(`${this.origin}/v1/partners/challenges`, {
|
|
94
|
+
method: "POST",
|
|
95
|
+
headers: { Accept: "application/json", "Content-Type": "application/json" },
|
|
96
|
+
body: JSON.stringify(input),
|
|
97
|
+
});
|
|
98
|
+
const payload = await responseJson(response);
|
|
99
|
+
const challenge = object(payload.challenge, "Nayori partner challenge");
|
|
100
|
+
const network = string(challenge.network, "challenge.network");
|
|
101
|
+
if (network !== "testnet" && network !== "mainnet") {
|
|
102
|
+
throw new Error("challenge.network is invalid.");
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
challengeId: string(challenge.challengeId, "challenge.challengeId"),
|
|
106
|
+
message: string(challenge.message, "challenge.message"),
|
|
107
|
+
expiresAt: string(challenge.expiresAt, "challenge.expiresAt"),
|
|
108
|
+
walletAddress: string(challenge.walletAddress, "challenge.walletAddress"),
|
|
109
|
+
network,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
async register(input) {
|
|
113
|
+
const response = await this.fetchImpl(`${this.origin}/v1/partners/register`, {
|
|
114
|
+
method: "POST",
|
|
115
|
+
headers: { Accept: "application/json", "Content-Type": "application/json" },
|
|
116
|
+
body: JSON.stringify({
|
|
117
|
+
challengeId: input.challengeId,
|
|
118
|
+
signature: normalizedHex(input.signature, /^[0-9a-f]{130}$/i, "wallet signature"),
|
|
119
|
+
publicKey: normalizedHex(input.publicKey, /^(02|03)[0-9a-f]{64}$/i, "wallet public key"),
|
|
120
|
+
}),
|
|
121
|
+
});
|
|
122
|
+
const payload = await responseJson(response);
|
|
123
|
+
const client = object(payload.client, "Nayori OAuth client");
|
|
124
|
+
return {
|
|
125
|
+
clientId: string(client.clientId, "client.clientId"),
|
|
126
|
+
clientSecret: string(client.clientSecret, "client.clientSecret"),
|
|
127
|
+
tokenEndpoint: string(client.tokenEndpoint, "client.tokenEndpoint"),
|
|
128
|
+
scopes: scopes(client.scopes),
|
|
129
|
+
walletAddress: string(client.walletAddress, "client.walletAddress"),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
async enroll(input) {
|
|
133
|
+
const challenge = await this.requestChallenge(input);
|
|
134
|
+
if (challenge.walletAddress !== input.walletAddress) {
|
|
135
|
+
throw new Error("Nayori challenge wallet does not match the requested wallet.");
|
|
136
|
+
}
|
|
137
|
+
const signed = await input.signMessage({
|
|
138
|
+
message: challenge.message,
|
|
139
|
+
walletAddress: challenge.walletAddress,
|
|
140
|
+
network: challenge.network,
|
|
141
|
+
});
|
|
142
|
+
const credentials = await this.register({
|
|
143
|
+
challengeId: challenge.challengeId,
|
|
144
|
+
...signed,
|
|
145
|
+
});
|
|
146
|
+
if (credentials.walletAddress !== input.walletAddress) {
|
|
147
|
+
throw new Error("Nayori OAuth client wallet does not match the enrolled wallet.");
|
|
148
|
+
}
|
|
149
|
+
return credentials;
|
|
150
|
+
}
|
|
151
|
+
async requestToken(input) {
|
|
152
|
+
const body = new URLSearchParams({ grant_type: "client_credentials" });
|
|
153
|
+
if (input.scopes?.length)
|
|
154
|
+
body.set("scope", scopes([...input.scopes]).join(" "));
|
|
155
|
+
const response = await this.fetchImpl(`${this.origin}/oauth/token`, {
|
|
156
|
+
method: "POST",
|
|
157
|
+
headers: {
|
|
158
|
+
Accept: "application/json",
|
|
159
|
+
Authorization: `Basic ${btoa(`${input.clientId}:${input.clientSecret}`)}`,
|
|
160
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
161
|
+
},
|
|
162
|
+
body: body.toString(),
|
|
163
|
+
});
|
|
164
|
+
const payload = await responseJson(response);
|
|
165
|
+
if (payload.token_type !== "Bearer")
|
|
166
|
+
throw new Error("Nayori token type is invalid.");
|
|
167
|
+
if (typeof payload.expires_in !== "number" || !Number.isSafeInteger(payload.expires_in)) {
|
|
168
|
+
throw new Error("Nayori token expiry is invalid.");
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
accessToken: string(payload.access_token, "access_token"),
|
|
172
|
+
tokenType: "Bearer",
|
|
173
|
+
expiresIn: payload.expires_in,
|
|
174
|
+
scopes: scopes(string(payload.scope, "scope").split(" ")),
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
async callMcp(input) {
|
|
178
|
+
const response = await this.fetchImpl(`${this.origin}/mcp`, {
|
|
179
|
+
method: "POST",
|
|
180
|
+
headers: {
|
|
181
|
+
Accept: "application/json",
|
|
182
|
+
Authorization: `Bearer ${input.accessToken}`,
|
|
183
|
+
"Content-Type": "application/json",
|
|
184
|
+
},
|
|
185
|
+
body: JSON.stringify({
|
|
186
|
+
jsonrpc: "2.0",
|
|
187
|
+
id: input.id ?? 1,
|
|
188
|
+
method: input.method,
|
|
189
|
+
...(input.params === undefined ? {} : { params: input.params }),
|
|
190
|
+
}),
|
|
191
|
+
});
|
|
192
|
+
return responseJson(response);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=partner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner.js","sourceRoot":"","sources":["../src/partner.ts"],"names":[],"mappings":"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"}
|
package/dist/x402-paying.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export interface NayoriX402PaymentIntent {
|
|
|
26
26
|
readonly payTo: string;
|
|
27
27
|
readonly payer: string;
|
|
28
28
|
readonly publicKey: string;
|
|
29
|
+
/** Construction fee and maximum origin fee the signer may return, in micro-STX. */
|
|
29
30
|
readonly fee: string;
|
|
30
31
|
readonly nonce: string;
|
|
31
32
|
readonly method: string;
|
|
@@ -55,7 +56,7 @@ export interface NayoriX402PaymentAuthorization {
|
|
|
55
56
|
readonly spentThisSession: bigint;
|
|
56
57
|
readonly reservedThisSession: bigint;
|
|
57
58
|
readonly remainingThisSession: bigint;
|
|
58
|
-
commit(): void;
|
|
59
|
+
commit(actualFee?: AmountLike): void;
|
|
59
60
|
release(): void;
|
|
60
61
|
}
|
|
61
62
|
export interface NayoriX402PaymentSessionUsage {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402-paying.d.ts","sourceRoot":"","sources":["../src/x402-paying.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"x402-paying.d.ts","sourceRoot":"","sources":["../src/x402-paying.ts"],"names":[],"mappings":"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"}
|
package/dist/x402-paying.js
CHANGED
|
@@ -312,11 +312,21 @@ export class NayoriX402PaymentPolicy {
|
|
|
312
312
|
this.active.set(intent.intentId, { intent, amount, fee });
|
|
313
313
|
this.activeQuotes.add(intent.quoteFingerprint);
|
|
314
314
|
let finished = false;
|
|
315
|
-
const finish = (commit) => {
|
|
315
|
+
const finish = (commit, actualFee) => {
|
|
316
316
|
if (finished)
|
|
317
317
|
return;
|
|
318
|
+
let committedFee;
|
|
319
|
+
if (commit) {
|
|
320
|
+
committedFee = actualFee === undefined ? fee : toUint(actualFee, "actualFee");
|
|
321
|
+
if (committedFee === 0n) {
|
|
322
|
+
throw new PerkOSError("INPUT_INVALID", "actualFee must be greater than zero.");
|
|
323
|
+
}
|
|
324
|
+
if (committedFee > fee) {
|
|
325
|
+
throw new PerkOSError("POLICY_DENIED", "actualFee cannot exceed the authorized transaction fee.");
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
this.finish(intent.intentId, commit, committedFee);
|
|
318
329
|
finished = true;
|
|
319
|
-
this.finish(intent.intentId, commit);
|
|
320
330
|
};
|
|
321
331
|
return Object.freeze({
|
|
322
332
|
intentId: intent.intentId,
|
|
@@ -326,7 +336,7 @@ export class NayoriX402PaymentPolicy {
|
|
|
326
336
|
spentThisSession,
|
|
327
337
|
reservedThisSession,
|
|
328
338
|
remainingThisSession: sessionLimit - nextAmount,
|
|
329
|
-
commit: () => finish(true),
|
|
339
|
+
commit: (actualFee) => finish(true, actualFee),
|
|
330
340
|
release: () => finish(false),
|
|
331
341
|
});
|
|
332
342
|
}
|
|
@@ -342,7 +352,7 @@ export class NayoriX402PaymentPolicy {
|
|
|
342
352
|
feeRemaining: this.maxFeePerSession - this.feeSpent - this.feeReserved,
|
|
343
353
|
});
|
|
344
354
|
}
|
|
345
|
-
finish(intentId, commit) {
|
|
355
|
+
finish(intentId, commit, actualFee) {
|
|
346
356
|
const record = this.active.get(intentId);
|
|
347
357
|
if (!record)
|
|
348
358
|
return;
|
|
@@ -352,7 +362,7 @@ export class NayoriX402PaymentPolicy {
|
|
|
352
362
|
this.feeReserved -= record.fee;
|
|
353
363
|
if (commit) {
|
|
354
364
|
this.spent[record.intent.asset] += record.amount;
|
|
355
|
-
this.feeSpent += record.fee;
|
|
365
|
+
this.feeSpent += actualFee ?? record.fee;
|
|
356
366
|
this.committed.add(intentId);
|
|
357
367
|
this.committedQuotes.add(record.intent.quoteFingerprint);
|
|
358
368
|
}
|
|
@@ -565,11 +575,14 @@ export class NayoriX402PaymentClient {
|
|
|
565
575
|
}
|
|
566
576
|
if (verifiedPayment.payer !== intent.payer ||
|
|
567
577
|
verifiedPayment.originNonce !== BigInt(intent.nonce) ||
|
|
568
|
-
verifiedPayment.originFee !== BigInt(intent.fee) ||
|
|
569
578
|
verifiedPayment.sponsored) {
|
|
570
579
|
throw new PerkOSError("SIGNING_FAILED", "The signed transaction does not match the authorized payment intent.", { intentId: intent.intentId });
|
|
571
580
|
}
|
|
572
|
-
|
|
581
|
+
if (verifiedPayment.originFee === 0n ||
|
|
582
|
+
verifiedPayment.originFee > BigInt(intent.fee)) {
|
|
583
|
+
throw new PerkOSError("SIGNING_FAILED", "The signed transaction fee is outside the authorized payment intent.", { intentId: intent.intentId, reason: "origin_fee_out_of_bounds" });
|
|
584
|
+
}
|
|
585
|
+
authorization.commit(verifiedPayment.originFee);
|
|
573
586
|
const settlementRequest = Object.freeze({
|
|
574
587
|
signedQuote: input.signedQuote,
|
|
575
588
|
paymentRequirements,
|
package/dist/x402-paying.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402-paying.js","sourceRoot":"","sources":["../src/x402-paying.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"x402-paying.js","sourceRoot":"","sources":["../src/x402-paying.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Nayori invite-only partner pilot
|
|
2
|
+
|
|
3
|
+
The partner pilot exposes the Nayori x402 Platform on Stacks testnet without giving the API or SDK
|
|
4
|
+
custody of a wallet. An operator privately creates a single-use invitation for an existing merchant.
|
|
5
|
+
The partner binds that invitation to a Stacks address by signing the exact server challenge in
|
|
6
|
+
Leather. The server derives the address from the returned public key and atomically consumes both
|
|
7
|
+
the invitation and challenge before creating the OAuth client.
|
|
8
|
+
|
|
9
|
+
## Browser enrollment
|
|
10
|
+
|
|
11
|
+
Install the SDK and the official Stacks Connect package:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @perkos/agent-sdk @stacks/connect
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Use the account already selected by the application. The SDK never selects an account and never
|
|
18
|
+
receives a private key:
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
import { request } from "@stacks/connect";
|
|
22
|
+
import {
|
|
23
|
+
NayoriPartnerClient,
|
|
24
|
+
createStacksConnectPartnerSigner,
|
|
25
|
+
} from "@perkos/agent-sdk";
|
|
26
|
+
|
|
27
|
+
const nayori = new NayoriPartnerClient({ origin: "https://api.nayori.ai" });
|
|
28
|
+
const credentials = await nayori.enroll({
|
|
29
|
+
invitationToken,
|
|
30
|
+
walletAddress: selectedTestnetAddress,
|
|
31
|
+
signMessage: createStacksConnectPartnerSigner(request),
|
|
32
|
+
});
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Leather displays the exact challenge. Verify the origin, `testnet` network, merchant, wallet,
|
|
36
|
+
challenge identifier and expiration before approving. The client rejects a response bound to a
|
|
37
|
+
different wallet. The API independently verifies the recoverable signature and derived address.
|
|
38
|
+
|
|
39
|
+
`clientSecret` is returned once. Send it directly to an application-owned secret manager. Do not
|
|
40
|
+
put the invitation, client secret, access token or wallet signature in source, screenshots, logs,
|
|
41
|
+
analytics, issue trackers or prompts.
|
|
42
|
+
|
|
43
|
+
## Scoped access token
|
|
44
|
+
|
|
45
|
+
Request only the scopes needed by the current process:
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
const token = await nayori.requestToken({
|
|
49
|
+
clientId: credentials.clientId,
|
|
50
|
+
clientSecret: credentials.clientSecret,
|
|
51
|
+
scopes: ["quotes:create", "mcp:invoke"],
|
|
52
|
+
});
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Supported scopes are:
|
|
56
|
+
|
|
57
|
+
- `catalog:read`
|
|
58
|
+
- `quotes:create`
|
|
59
|
+
- `payments:verify`
|
|
60
|
+
- `payments:settle`
|
|
61
|
+
- `payments:read`
|
|
62
|
+
- `mcp:invoke`
|
|
63
|
+
|
|
64
|
+
The API uses `client_credentials` plus `client_secret_basic` and returns a short-lived EdDSA JWT.
|
|
65
|
+
The SDK deliberately does not persist or automatically refresh it.
|
|
66
|
+
|
|
67
|
+
## MCP
|
|
68
|
+
|
|
69
|
+
The authenticated Streamable HTTP endpoint implements JSON-RPC `initialize`, `ping`, `tools/list`
|
|
70
|
+
and `tools/call`. Current tools are `nayori_supported`, `nayori_request_quote` and
|
|
71
|
+
`nayori_get_settlement`.
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
const response = await nayori.callMcp({
|
|
75
|
+
accessToken: token.accessToken,
|
|
76
|
+
method: "tools/call",
|
|
77
|
+
params: {
|
|
78
|
+
name: "nayori_supported",
|
|
79
|
+
arguments: {},
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
`mcp:invoke` opens the MCP endpoint, while a quote or settlement tool also enforces its own
|
|
85
|
+
downstream scope and merchant isolation.
|
|
86
|
+
|
|
87
|
+
## Payment boundary
|
|
88
|
+
|
|
89
|
+
OAuth and the enrollment signature cannot authorize a payment. For each STX, sBTC or USDCx
|
|
90
|
+
payment, create a request-bound quote and let the payer separately inspect and sign the exact Stacks
|
|
91
|
+
transaction. Quote issuance, verification, broadcast or `pending` state is not confirmed
|
|
92
|
+
settlement. Require the confirmed settlement state and signed receipt before delivery.
|
|
93
|
+
|
|
94
|
+
The hosted pilot remains Stacks-testnet-only. Mainnet facilitator settlement, sponsorship and
|
|
95
|
+
arbitrary resource proxying remain disabled while the external review gate is open.
|
package/docs/X402_PAYMENTS.md
CHANGED
|
@@ -41,9 +41,11 @@ const policy = new NayoriX402PaymentPolicy({
|
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
All values are atomic units: micro-STX, satoshis, or 10^-6 USDCx. Fee limits are micro-STX.
|
|
44
|
-
Authorization reserves amount and fee before asynchronous signing. A
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
Authorization reserves the amount and full construction fee before asynchronous signing. A wallet
|
|
45
|
+
may return a lower positive origin fee, which is accepted and committed as the actual fee spent;
|
|
46
|
+
zero or any fee above the intent is rejected. A valid signature commits usage even if settlement
|
|
47
|
+
later becomes ambiguous. Failed or cancelled signing releases it. Active reservations count toward
|
|
48
|
+
session limits, so concurrent agents cannot oversubscribe the budget.
|
|
47
49
|
|
|
48
50
|
## Interactive Leather signing
|
|
49
51
|
|
|
@@ -83,7 +85,8 @@ const prepared = await payer.preparePayment({
|
|
|
83
85
|
|
|
84
86
|
`LeatherSigner` calls only `stx_signTransaction` with `broadcast: false`. It rejects a wallet result
|
|
85
87
|
that contains only a txid because the Nayori facilitator must receive, reserve, and broadcast the
|
|
86
|
-
signed bytes exactly once.
|
|
88
|
+
signed bytes exactly once. The client independently verifies the returned origin fee: Leather may
|
|
89
|
+
lower it, but cannot increase it above the fee authorized in the payment intent.
|
|
87
90
|
|
|
88
91
|
## Automated agent signing
|
|
89
92
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Leather lower-fee x402 hotfix design
|
|
2
|
+
|
|
3
|
+
## Problem, evidence and selected boundary
|
|
4
|
+
|
|
5
|
+
The controlled Nayori testnet E2E built an unsigned STX transfer with origin nonce `0` and an
|
|
6
|
+
authorized fee of `3000` micro-STX. Leather preserved nonce `0`, the standard non-sponsored
|
|
7
|
+
authorization, payer, amount, recipient and request-bound memo, but signed the transaction with a
|
|
8
|
+
lower fee of `300` micro-STX. Local direct-payment verification passed every canonical payment
|
|
9
|
+
check. `NayoriX402PaymentClient` then rejected the result because it required the signed fee to be
|
|
10
|
+
exactly equal to the construction-time fee. The failure happened before settlement: the isolated
|
|
11
|
+
database contained quotes but zero settlements or broadcasts.
|
|
12
|
+
|
|
13
|
+
Requiring exact equality is incompatible with a wallet that safely reduces a proposed network
|
|
14
|
+
fee. Predicting Leather's final fee is brittle because wallet estimation can change with software
|
|
15
|
+
and network conditions. Accepting an arbitrary wallet-selected fee would weaken the agent policy.
|
|
16
|
+
The selected rule therefore treats `intent.fee` as the maximum fee authorized for this transaction:
|
|
17
|
+
the signed origin fee must be positive and less than or equal to that value. A wallet fee above the
|
|
18
|
+
intent remains a hard failure. Payer, nonce, amount, recipient, asset, memo, post-conditions and
|
|
19
|
+
non-sponsored authorization remain exact.
|
|
20
|
+
|
|
21
|
+
This is a patch-level compatibility fix. It does not change contracts, assets, settlement routes,
|
|
22
|
+
broadcast behavior, quote validation or production flags. `LeatherSigner` still requests
|
|
23
|
+
`broadcast: false`; the SDK still returns a settlement request only after independent local
|
|
24
|
+
verification. The public intent field stays named `fee` for API compatibility, while documentation
|
|
25
|
+
clarifies that it is the construction fee and upper bound when a signer returns a lower positive
|
|
26
|
+
fee.
|
|
27
|
+
|
|
28
|
+
## Accounting, errors, tests and release
|
|
29
|
+
|
|
30
|
+
The payment policy initially reserves the full authorized fee so concurrent signing requests
|
|
31
|
+
cannot exceed the per-transaction or per-session fee caps. After a signed transaction passes local
|
|
32
|
+
verification, the client commits the verified origin fee rather than the reservation amount. The
|
|
33
|
+
policy releases the full reservation and adds only the actual fee to `feeSpent`. This preserves
|
|
34
|
+
conservative concurrency control while reporting exact session usage. The authorization's
|
|
35
|
+
`commit` method gains an optional actual-fee argument; calling it without an argument preserves
|
|
36
|
+
the existing exact-fee behavior. An actual fee of zero or above the reservation is rejected and
|
|
37
|
+
the reservation remains releasable.
|
|
38
|
+
|
|
39
|
+
Client error handling distinguishes a fee-limit violation from other intent mismatches without
|
|
40
|
+
including transaction bytes. A signed fee above the authorized value produces `SIGNING_FAILED`
|
|
41
|
+
and safe details identifying `origin_fee_above_authorized`; nonce, payer or sponsored mismatches
|
|
42
|
+
continue to produce the generic intent-mismatch failure. No private key, raw unsigned/signed
|
|
43
|
+
transaction or reusable credential is added to errors, logs or documentation.
|
|
44
|
+
|
|
45
|
+
Regression coverage must prove: exact fees still work; a lower positive Leather/PolicySigner fee
|
|
46
|
+
is accepted; `verifiedPayment.originFee` and policy `feeSpent` equal the lower fee; a higher fee is
|
|
47
|
+
rejected and releases all reservations; zero actual fee is rejected; direct policy commits without
|
|
48
|
+
an override remain backward compatible; and an invalid actual-fee override cannot corrupt usage.
|
|
49
|
+
The complete typecheck, test suite, build, audit, package inspection and clean-consumer checks must
|
|
50
|
+
pass. Release as SDK `0.3.2`, publish only after owner review and merge, then pin the exact public
|
|
51
|
+
artifact in a separate Platform patch. Production remains quote-only throughout. The isolated E2E
|
|
52
|
+
is recreated or reset before the next controlled signature so final evidence starts with no stale
|
|
53
|
+
settlement state.
|