@1claw/sdk 0.61.15 → 0.61.17

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.
@@ -3659,6 +3659,10 @@ export interface paths {
3659
3659
  * is the SafeTx hash. The address is counterfactual (CREATE2) until the
3660
3660
  * first `execute` deploys it. Chains: base, optimism, arbitrum, polygon
3661
3661
  * (RIP-7212 precompile + fallback verifier), ethereum, sepolia, base-sepolia.
3662
+ * The passkey must have been registered on the domain making this
3663
+ * request (its rpId): a credential from `1claw.xyz` cannot sign on
3664
+ * `1claw.co`, so such a passkey is refused here (400) rather than
3665
+ * producing a Safe no browser here can sign for.
3662
3666
  */
3663
3667
  post: operations["createPasskeySafe"];
3664
3668
  delete?: never;
@@ -3740,6 +3744,90 @@ export interface paths {
3740
3744
  patch?: never;
3741
3745
  trace?: never;
3742
3746
  };
3747
+ "/v1/treasury/passkey-safes/{id}/grants": {
3748
+ parameters: {
3749
+ query?: never;
3750
+ header?: never;
3751
+ path: {
3752
+ id: string;
3753
+ };
3754
+ cookie?: never;
3755
+ };
3756
+ /** List agent spending grants on a passkey Safe */
3757
+ get: operations["listPasskeySafeGrants"];
3758
+ put?: never;
3759
+ /**
3760
+ * Prepare an agent spending grant (Allowance Module)
3761
+ * @description Gives one agent's server-custody Ethereum signing key a bounded, on-chain
3762
+ * allowance from this Safe through Safe's Allowance Module v1.0.0: one Safe
3763
+ * transaction (delegatecall into MultiSendCallOnly) that enables the module if
3764
+ * needed, adds the agent's key as a delegate and sets the allowance per reset
3765
+ * period. Returns the grant (`pending`) and the SafeTx for the owner's passkey
3766
+ * to sign; pass `operation` and `grant_id` from `prepare` to `execute`. The cap
3767
+ * is enforced by the module on-chain — 1claw holding the delegate key gives it
3768
+ * exactly the allowance and nothing more. Audited as `passkey_safe.grant_activated`.
3769
+ */
3770
+ post: operations["createPasskeySafeGrant"];
3771
+ delete?: never;
3772
+ options?: never;
3773
+ head?: never;
3774
+ patch?: never;
3775
+ trace?: never;
3776
+ };
3777
+ "/v1/treasury/passkey-safes/{id}/grants/{grant_id}/revoke": {
3778
+ parameters: {
3779
+ query?: never;
3780
+ header?: never;
3781
+ path: {
3782
+ id: string;
3783
+ grant_id: string;
3784
+ };
3785
+ cookie?: never;
3786
+ };
3787
+ get?: never;
3788
+ put?: never;
3789
+ /**
3790
+ * Prepare a grant revocation
3791
+ * @description Prepares `AllowanceModule.removeDelegate(delegate, true)` for the owner's
3792
+ * passkey to sign; `execute` with `grant_id` relays it and marks the grant
3793
+ * `revoked`. Audited as `passkey_safe.grant_revoked`.
3794
+ */
3795
+ post: operations["revokePasskeySafeGrant"];
3796
+ delete?: never;
3797
+ options?: never;
3798
+ head?: never;
3799
+ patch?: never;
3800
+ trace?: never;
3801
+ };
3802
+ "/v1/agents/{agent_id}/passkey-safes/{safe_id}/spend": {
3803
+ parameters: {
3804
+ query?: never;
3805
+ header?: never;
3806
+ path: {
3807
+ agent_id: string;
3808
+ safe_id: string;
3809
+ };
3810
+ cookie?: never;
3811
+ };
3812
+ get?: never;
3813
+ put?: never;
3814
+ /**
3815
+ * Spend from a passkey-owned Safe under an active grant
3816
+ * @description Agent credential only. Runs the agent's guardrails (chains, allowlists, caps,
3817
+ * daily limits, approval policy) and the sanctions screen, reads the module's
3818
+ * current allowance and nonce, signs the Allowance Module transfer hash with the
3819
+ * agent's Ethereum signing key, and relays `executeAllowanceTransfer` from the
3820
+ * Safe owner's Ethereum treasury wallet. Above the on-chain remaining allowance
3821
+ * the request is refused before any gas is spent; the module would refuse it
3822
+ * anyway. Counts as one signature. Audited as `passkey_safe.allowance_spent`.
3823
+ */
3824
+ post: operations["spendFromPasskeySafeGrant"];
3825
+ delete?: never;
3826
+ options?: never;
3827
+ head?: never;
3828
+ patch?: never;
3829
+ trace?: never;
3830
+ };
3743
3831
  "/v1/treasury/wallets/generate": {
3744
3832
  parameters: {
3745
3833
  query?: never;
@@ -14591,6 +14679,13 @@ export interface components {
14591
14679
  * @enum {string}
14592
14680
  */
14593
14681
  custody?: "server" | "client_tss";
14682
+ /**
14683
+ * @description `client_tss` only (list responses). Wraps of the customer's share under
14684
+ * their own credentials — passkey PRF or recovery code; runtime holder
14685
+ * wraps are not counted. Below 2 the wallet should not be funded: one
14686
+ * lost credential would lose the share.
14687
+ */
14688
+ owner_wraps?: number;
14594
14689
  };
14595
14690
  TreasuryWalletListResponse: {
14596
14691
  wallets?: components["schemas"]["TreasuryWalletResponse"][];
@@ -15989,6 +16084,10 @@ export interface components {
15989
16084
  safe_address?: string;
15990
16085
  /** Format: uuid */
15991
16086
  passkey_id?: string;
16087
+ /** @description The owning passkey's name — only that credential can sign for the Safe. */
16088
+ passkey_name?: string | null;
16089
+ /** @description The domain the owning passkey was registered under (WebAuthn rpId); a browser on another domain cannot use it. */
16090
+ passkey_rp_id?: string | null;
15992
16091
  /** @enum {string} */
15993
16092
  custody?: "passkey_owner";
15994
16093
  /** @enum {string} */
@@ -15999,6 +16098,58 @@ export interface components {
15999
16098
  /** Format: date-time */
16000
16099
  created_at?: string;
16001
16100
  };
16101
+ PasskeySafePrepare: {
16102
+ /** Format: uuid */
16103
+ safe_id?: string;
16104
+ safe_address?: string;
16105
+ chain?: string;
16106
+ chain_id?: number;
16107
+ to?: string;
16108
+ value_wei?: string;
16109
+ data?: string;
16110
+ nonce?: number;
16111
+ /** @description Pass back to `execute` unchanged. */
16112
+ operation?: number;
16113
+ /**
16114
+ * Format: uuid
16115
+ * @description Present for grant setup / revoke; pass back to `execute`.
16116
+ */
16117
+ grant_id?: string;
16118
+ deploy_required?: boolean;
16119
+ /** @description Hex SafeTx hash — the WebAuthn challenge (raw 32 bytes). */
16120
+ safe_tx_hash?: string;
16121
+ credential_id?: string;
16122
+ /** @description The passkey's registered transports (`internal`, `hybrid`, `usb`…) — pass as the `allowCredentials` hint so the browser asks the right authenticator. */
16123
+ transports?: string[] | null;
16124
+ passkey_name?: string | null;
16125
+ rp_id?: string;
16126
+ };
16127
+ PasskeySafeGrant: {
16128
+ /** Format: uuid */
16129
+ id?: string;
16130
+ /** Format: uuid */
16131
+ safe_id?: string;
16132
+ /** Format: uuid */
16133
+ agent_id?: string;
16134
+ chain?: string;
16135
+ /** @description The agent's Ethereum signing key at grant time. */
16136
+ delegate_address?: string;
16137
+ /** @description 0x000…0 for the native token. */
16138
+ token_address?: string;
16139
+ /** @description Base units per reset period. */
16140
+ allowance_amount?: string;
16141
+ reset_time_min?: number;
16142
+ /** @enum {string} */
16143
+ status?: "pending" | "active" | "revoking" | "revoked";
16144
+ setup_tx_hash?: string | null;
16145
+ revoke_tx_hash?: string | null;
16146
+ /** Format: date-time */
16147
+ created_at?: string;
16148
+ };
16149
+ PasskeySafeGrantPrepare: {
16150
+ grant?: components["schemas"]["PasskeySafeGrant"];
16151
+ prepare?: components["schemas"]["PasskeySafePrepare"];
16152
+ };
16002
16153
  ClientShareListResponse: {
16003
16154
  /** Format: uuid */
16004
16155
  key_id?: string;
@@ -24456,21 +24607,7 @@ export interface operations {
24456
24607
  [name: string]: unknown;
24457
24608
  };
24458
24609
  content: {
24459
- "application/json": {
24460
- /** Format: uuid */
24461
- safe_id?: string;
24462
- safe_address?: string;
24463
- chain?: string;
24464
- chain_id?: number;
24465
- to?: string;
24466
- value_wei?: string;
24467
- data?: string;
24468
- nonce?: number;
24469
- deploy_required?: boolean;
24470
- safe_tx_hash?: string;
24471
- credential_id?: string;
24472
- rp_id?: string;
24473
- };
24610
+ "application/json": components["schemas"]["PasskeySafePrepare"];
24474
24611
  };
24475
24612
  };
24476
24613
  400: components["responses"]["BadRequest"];
@@ -24495,6 +24632,18 @@ export interface operations {
24495
24632
  value_wei: string;
24496
24633
  data?: string;
24497
24634
  nonce: number;
24635
+ /**
24636
+ * @description 0 = call. 1 = delegatecall, accepted only with a `grant_id` whose
24637
+ * prepared setup calldata this is, and only to the pinned
24638
+ * MultiSendCallOnly — the API cannot delegatecall arbitrary code.
24639
+ * @default 0
24640
+ */
24641
+ operation?: number;
24642
+ /**
24643
+ * Format: uuid
24644
+ * @description Pass back from a grant or revoke prepare; activates / revokes the grant on success.
24645
+ */
24646
+ grant_id?: string;
24498
24647
  /** @description Base64url. */
24499
24648
  authenticator_data: string;
24500
24649
  /** @description Base64url. */
@@ -24530,6 +24679,153 @@ export interface operations {
24530
24679
  409: components["responses"]["Conflict"];
24531
24680
  };
24532
24681
  };
24682
+ listPasskeySafeGrants: {
24683
+ parameters: {
24684
+ query?: never;
24685
+ header?: never;
24686
+ path: {
24687
+ id: string;
24688
+ };
24689
+ cookie?: never;
24690
+ };
24691
+ requestBody?: never;
24692
+ responses: {
24693
+ /** @description Grants */
24694
+ 200: {
24695
+ headers: {
24696
+ [name: string]: unknown;
24697
+ };
24698
+ content: {
24699
+ "application/json": {
24700
+ grants?: components["schemas"]["PasskeySafeGrant"][];
24701
+ };
24702
+ };
24703
+ };
24704
+ 401: components["responses"]["Unauthorized"];
24705
+ 404: components["responses"]["NotFound"];
24706
+ };
24707
+ };
24708
+ createPasskeySafeGrant: {
24709
+ parameters: {
24710
+ query?: never;
24711
+ header?: never;
24712
+ path: {
24713
+ id: string;
24714
+ };
24715
+ cookie?: never;
24716
+ };
24717
+ requestBody: {
24718
+ content: {
24719
+ "application/json": {
24720
+ /** Format: uuid */
24721
+ agent_id: string;
24722
+ /** @description ERC-20 contract; omit for the native token. */
24723
+ token?: string;
24724
+ /** @description Base units */
24725
+ allowance_amount: string;
24726
+ /**
24727
+ * @description Reset period in minutes.
24728
+ * @default 1440
24729
+ */
24730
+ reset_time_min?: number;
24731
+ };
24732
+ };
24733
+ };
24734
+ responses: {
24735
+ /** @description Grant and what to sign */
24736
+ 200: {
24737
+ headers: {
24738
+ [name: string]: unknown;
24739
+ };
24740
+ content: {
24741
+ "application/json": components["schemas"]["PasskeySafeGrantPrepare"];
24742
+ };
24743
+ };
24744
+ 400: components["responses"]["BadRequest"];
24745
+ 401: components["responses"]["Unauthorized"];
24746
+ 404: components["responses"]["NotFound"];
24747
+ 409: components["responses"]["Conflict"];
24748
+ };
24749
+ };
24750
+ revokePasskeySafeGrant: {
24751
+ parameters: {
24752
+ query?: never;
24753
+ header?: never;
24754
+ path: {
24755
+ id: string;
24756
+ grant_id: string;
24757
+ };
24758
+ cookie?: never;
24759
+ };
24760
+ requestBody?: never;
24761
+ responses: {
24762
+ /** @description Grant and what to sign */
24763
+ 200: {
24764
+ headers: {
24765
+ [name: string]: unknown;
24766
+ };
24767
+ content: {
24768
+ "application/json": components["schemas"]["PasskeySafeGrantPrepare"];
24769
+ };
24770
+ };
24771
+ 401: components["responses"]["Unauthorized"];
24772
+ 404: components["responses"]["NotFound"];
24773
+ 409: components["responses"]["Conflict"];
24774
+ };
24775
+ };
24776
+ spendFromPasskeySafeGrant: {
24777
+ parameters: {
24778
+ query?: never;
24779
+ header?: never;
24780
+ path: {
24781
+ agent_id: string;
24782
+ safe_id: string;
24783
+ };
24784
+ cookie?: never;
24785
+ };
24786
+ requestBody: {
24787
+ content: {
24788
+ "application/json": {
24789
+ to: string;
24790
+ /** @description Base units */
24791
+ amount: string;
24792
+ /** @description ERC-20 contract; omit for the native token. */
24793
+ token?: string;
24794
+ };
24795
+ };
24796
+ };
24797
+ responses: {
24798
+ /** @description Broadcast */
24799
+ 200: {
24800
+ headers: {
24801
+ [name: string]: unknown;
24802
+ };
24803
+ content: {
24804
+ "application/json": {
24805
+ /** Format: uuid */
24806
+ grant_id?: string;
24807
+ safe_address?: string;
24808
+ chain?: string;
24809
+ to?: string;
24810
+ amount?: string;
24811
+ token_address?: string;
24812
+ /** @description Allowance left in this period after this transfer. */
24813
+ remaining_after?: string;
24814
+ /** @description The module's delegate nonce used. */
24815
+ nonce?: number;
24816
+ tx_hash?: string;
24817
+ status?: string;
24818
+ };
24819
+ };
24820
+ };
24821
+ 400: components["responses"]["BadRequest"];
24822
+ 401: components["responses"]["Unauthorized"];
24823
+ 402: components["responses"]["PaymentRequired"];
24824
+ 403: components["responses"]["Forbidden"];
24825
+ 404: components["responses"]["NotFound"];
24826
+ 409: components["responses"]["Conflict"];
24827
+ };
24828
+ };
24533
24829
  generateTreasuryWallets: {
24534
24830
  parameters: {
24535
24831
  query?: never;