@1claw/openapi-spec 0.34.4 → 0.36.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 CHANGED
@@ -40,13 +40,16 @@ openapi-generator generate \
40
40
  import spec from "@1claw/openapi-spec/openapi.json";
41
41
  ```
42
42
 
43
- ## What's in the spec (v0.34.1 — API `info.version` 2.19.0)
43
+ ## What's in the spec (v0.36.0 — API `info.version` 2.23.0)
44
+
45
+ ### Non-EVM transaction signing (2.23)
46
+ - **Intents API** — `SubmitTransactionRequest` / `SignTransactionRequest` extended with non-EVM fields: `destination_tag` (XRP), `memo`, `fee_rate_sat_per_vbyte` (Bitcoin), `fee_limit_sun` (Tron), `token_mint` / `token_decimals` (Solana SPL + Tron TRC-20), `ttl` (Cardano). Native sign + broadcast for Bitcoin, Solana, XRP, Cardano, Tron.
44
47
 
45
48
  ### Risk Engine & DPoP (2.19)
46
49
  - **Risk events** — `GET /v1/risk/events` (list, filterable by severity/principal_type)
47
50
  - **Risk verdicts** — `GET /v1/risk/verdicts` (active verdicts), `GET /v1/risk/verdicts/{type}/{id}` (single principal verdict)
48
51
  - **Honeytokens** — `GET/POST/DELETE /v1/risk/honeytokens` (canary secret CRUD with trigger counts)
49
- - **DPoP** — RFC 9449 Demonstration of Proof-of-Possession token binding (planned spec addition)
52
+ - **DPoP** — RFC 9449 Demonstration of Proof-of-Possession token binding (shipped)
50
53
 
51
54
  ### Webhooks (2.19)
52
55
  - **Webhook CRUD** — `POST/GET /v1/webhooks`, `GET/PATCH/DELETE /v1/webhooks/{id}`. Events: `wallet.transfer.*`, `proposal.*`, `agent.transaction.*`, `signing_key.rotated`, `policy.*`
package/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "1Claw API",
5
- "version": "2.21.0",
5
+ "version": "2.23.0",
6
6
  "description": "Secure secret management for AI agents. Provides vaults, secrets,\npolicy-based access control, agent identity, Intents API,\nsharing, billing, and audit logging.\n\nAll endpoints require JWT Bearer authentication unless marked with\n`security: []`.\n",
7
7
  "contact": {
8
8
  "email": "ops@1claw.xyz"
@@ -7674,6 +7674,144 @@
7674
7674
  }
7675
7675
  }
7676
7676
  },
7677
+ "/v1/platform/connections/{connectionId}/grant": {
7678
+ "post": {
7679
+ "tags": [
7680
+ "Platform"
7681
+ ],
7682
+ "summary": "Grant platform app access to vaults/agents",
7683
+ "description": "User-authenticated. Grant the platform app access to selected vaults and agents.\nValidates user ownership of all requested resources. Creates platform_user_grants\nentries and merges resource IDs into the connection record.\n",
7684
+ "security": [
7685
+ {
7686
+ "BearerAuth": []
7687
+ }
7688
+ ],
7689
+ "parameters": [
7690
+ {
7691
+ "in": "path",
7692
+ "name": "connectionId",
7693
+ "required": true,
7694
+ "schema": {
7695
+ "type": "string",
7696
+ "format": "uuid"
7697
+ }
7698
+ }
7699
+ ],
7700
+ "requestBody": {
7701
+ "required": true,
7702
+ "content": {
7703
+ "application/json": {
7704
+ "schema": {
7705
+ "$ref": "#/components/schemas/GrantResourcesRequest"
7706
+ }
7707
+ }
7708
+ }
7709
+ },
7710
+ "responses": {
7711
+ "201": {
7712
+ "description": "Grants created",
7713
+ "content": {
7714
+ "application/json": {
7715
+ "schema": {
7716
+ "$ref": "#/components/schemas/GrantResourcesResponse"
7717
+ }
7718
+ }
7719
+ }
7720
+ },
7721
+ "400": {
7722
+ "description": "No vault_ids or agent_ids provided"
7723
+ },
7724
+ "403": {
7725
+ "description": "Resource not owned by caller"
7726
+ },
7727
+ "404": {
7728
+ "description": "Connection not found"
7729
+ }
7730
+ }
7731
+ }
7732
+ },
7733
+ "/v1/platform/connections/{connectionId}/grants": {
7734
+ "get": {
7735
+ "tags": [
7736
+ "Platform"
7737
+ ],
7738
+ "summary": "List active resource grants for a connection",
7739
+ "description": "User-authenticated. Returns active (non-revoked) grants for the connection.",
7740
+ "security": [
7741
+ {
7742
+ "BearerAuth": []
7743
+ }
7744
+ ],
7745
+ "parameters": [
7746
+ {
7747
+ "in": "path",
7748
+ "name": "connectionId",
7749
+ "required": true,
7750
+ "schema": {
7751
+ "type": "string",
7752
+ "format": "uuid"
7753
+ }
7754
+ }
7755
+ ],
7756
+ "responses": {
7757
+ "200": {
7758
+ "description": "Grant list",
7759
+ "content": {
7760
+ "application/json": {
7761
+ "schema": {
7762
+ "$ref": "#/components/schemas/GrantListResponse"
7763
+ }
7764
+ }
7765
+ }
7766
+ },
7767
+ "404": {
7768
+ "description": "Connection not found"
7769
+ }
7770
+ }
7771
+ }
7772
+ },
7773
+ "/v1/platform/connections/{connectionId}/grants/{grantId}": {
7774
+ "delete": {
7775
+ "tags": [
7776
+ "Platform"
7777
+ ],
7778
+ "summary": "Revoke a resource grant",
7779
+ "description": "User-authenticated. Revoke a specific resource grant by ID.",
7780
+ "security": [
7781
+ {
7782
+ "BearerAuth": []
7783
+ }
7784
+ ],
7785
+ "parameters": [
7786
+ {
7787
+ "in": "path",
7788
+ "name": "connectionId",
7789
+ "required": true,
7790
+ "schema": {
7791
+ "type": "string",
7792
+ "format": "uuid"
7793
+ }
7794
+ },
7795
+ {
7796
+ "in": "path",
7797
+ "name": "grantId",
7798
+ "required": true,
7799
+ "schema": {
7800
+ "type": "string",
7801
+ "format": "uuid"
7802
+ }
7803
+ }
7804
+ ],
7805
+ "responses": {
7806
+ "204": {
7807
+ "description": "Grant revoked"
7808
+ },
7809
+ "404": {
7810
+ "description": "Grant not found or already revoked"
7811
+ }
7812
+ }
7813
+ }
7814
+ },
7677
7815
  "/v1/platform/claim/{token}": {
7678
7816
  "get": {
7679
7817
  "tags": [
@@ -11675,6 +11813,34 @@
11675
11813
  "type": "boolean",
11676
11814
  "description": "Whether to submit as a gasless (sponsored) transaction",
11677
11815
  "default": false
11816
+ },
11817
+ "destination_tag": {
11818
+ "type": "integer",
11819
+ "description": "Non-EVM (XRP): destination tag for exchange deposits"
11820
+ },
11821
+ "memo": {
11822
+ "type": "string",
11823
+ "description": "Non-EVM (XRP, Solana): optional memo"
11824
+ },
11825
+ "fee_rate_sat_per_vbyte": {
11826
+ "type": "integer",
11827
+ "description": "Non-EVM (Bitcoin): override the fetched fee rate (sat/vByte)"
11828
+ },
11829
+ "fee_limit_sun": {
11830
+ "type": "integer",
11831
+ "description": "Non-EVM (Tron): TRC-20 energy fee limit in sun"
11832
+ },
11833
+ "token_mint": {
11834
+ "type": "string",
11835
+ "description": "Non-EVM (Solana SPL / Tron TRC-20): token mint or contract address; omit for native transfer"
11836
+ },
11837
+ "token_decimals": {
11838
+ "type": "integer",
11839
+ "description": "Non-EVM (Solana, Tron): token decimals (default 6)"
11840
+ },
11841
+ "ttl": {
11842
+ "type": "integer",
11843
+ "description": "Non-EVM (Cardano): transaction time-to-live (absolute slot)"
11678
11844
  }
11679
11845
  }
11680
11846
  },
@@ -11724,6 +11890,34 @@
11724
11890
  "simulate_first": {
11725
11891
  "type": "boolean",
11726
11892
  "default": false
11893
+ },
11894
+ "destination_tag": {
11895
+ "type": "integer",
11896
+ "description": "Non-EVM (XRP): destination tag for exchange deposits"
11897
+ },
11898
+ "memo": {
11899
+ "type": "string",
11900
+ "description": "Non-EVM (XRP, Solana): optional memo"
11901
+ },
11902
+ "fee_rate_sat_per_vbyte": {
11903
+ "type": "integer",
11904
+ "description": "Non-EVM (Bitcoin): override the fetched fee rate (sat/vByte)"
11905
+ },
11906
+ "fee_limit_sun": {
11907
+ "type": "integer",
11908
+ "description": "Non-EVM (Tron): TRC-20 energy fee limit in sun"
11909
+ },
11910
+ "token_mint": {
11911
+ "type": "string",
11912
+ "description": "Non-EVM (Solana SPL / Tron TRC-20): token mint or contract address; omit for native transfer"
11913
+ },
11914
+ "token_decimals": {
11915
+ "type": "integer",
11916
+ "description": "Non-EVM (Solana, Tron): token decimals (default 6)"
11917
+ },
11918
+ "ttl": {
11919
+ "type": "integer",
11920
+ "description": "Non-EVM (Cardano): transaction time-to-live (absolute slot)"
11727
11921
  }
11728
11922
  }
11729
11923
  },
@@ -14996,6 +15190,126 @@
14996
15190
  }
14997
15191
  }
14998
15192
  },
15193
+ "GrantResourcesRequest": {
15194
+ "type": "object",
15195
+ "properties": {
15196
+ "vault_ids": {
15197
+ "type": "array",
15198
+ "items": {
15199
+ "type": "string",
15200
+ "format": "uuid"
15201
+ },
15202
+ "description": "Vault IDs to grant access to"
15203
+ },
15204
+ "agent_ids": {
15205
+ "type": "array",
15206
+ "items": {
15207
+ "type": "string",
15208
+ "format": "uuid"
15209
+ },
15210
+ "description": "Agent IDs to grant access to"
15211
+ },
15212
+ "allowed_paths": {
15213
+ "type": "array",
15214
+ "items": {
15215
+ "type": "string"
15216
+ },
15217
+ "default": [
15218
+ "**"
15219
+ ],
15220
+ "description": "Secret path patterns the app can access"
15221
+ },
15222
+ "permissions": {
15223
+ "type": "array",
15224
+ "items": {
15225
+ "type": "string"
15226
+ },
15227
+ "default": [
15228
+ "read"
15229
+ ],
15230
+ "description": "Permissions granted (read, write, rotate)"
15231
+ },
15232
+ "expires_at": {
15233
+ "type": "string",
15234
+ "format": "date-time",
15235
+ "description": "Optional grant expiration"
15236
+ }
15237
+ }
15238
+ },
15239
+ "GrantResponse": {
15240
+ "type": "object",
15241
+ "properties": {
15242
+ "id": {
15243
+ "type": "string",
15244
+ "format": "uuid"
15245
+ },
15246
+ "vault_id": {
15247
+ "type": "string",
15248
+ "format": "uuid"
15249
+ },
15250
+ "allowed_paths": {
15251
+ "type": "array",
15252
+ "items": {
15253
+ "type": "string"
15254
+ }
15255
+ },
15256
+ "permissions": {
15257
+ "type": "array",
15258
+ "items": {
15259
+ "type": "string"
15260
+ }
15261
+ },
15262
+ "expires_at": {
15263
+ "type": "string",
15264
+ "format": "date-time",
15265
+ "nullable": true
15266
+ },
15267
+ "created_at": {
15268
+ "type": "string",
15269
+ "format": "date-time"
15270
+ }
15271
+ }
15272
+ },
15273
+ "GrantResourcesResponse": {
15274
+ "type": "object",
15275
+ "properties": {
15276
+ "connection_id": {
15277
+ "type": "string",
15278
+ "format": "uuid"
15279
+ },
15280
+ "grants": {
15281
+ "type": "array",
15282
+ "items": {
15283
+ "$ref": "#/components/schemas/GrantResponse"
15284
+ }
15285
+ },
15286
+ "vault_ids": {
15287
+ "type": "array",
15288
+ "items": {
15289
+ "type": "string",
15290
+ "format": "uuid"
15291
+ }
15292
+ },
15293
+ "agent_ids": {
15294
+ "type": "array",
15295
+ "items": {
15296
+ "type": "string",
15297
+ "format": "uuid"
15298
+ }
15299
+ }
15300
+ }
15301
+ },
15302
+ "GrantListResponse": {
15303
+ "type": "object",
15304
+ "properties": {
15305
+ "grants": {
15306
+ "type": "array",
15307
+ "items": {
15308
+ "$ref": "#/components/schemas/GrantResponse"
15309
+ }
15310
+ }
15311
+ }
15312
+ },
14999
15313
  "ClaimPreviewResponse": {
15000
15314
  "type": "object",
15001
15315
  "properties": {
package/openapi.yaml CHANGED
@@ -2,7 +2,7 @@ openapi: 3.1.0
2
2
 
3
3
  info:
4
4
  title: 1Claw API
5
- version: 2.21.0
5
+ version: 2.23.0
6
6
  description: |
7
7
  Secure secret management for AI agents. Provides vaults, secrets,
8
8
  policy-based access control, agent identity, Intents API,
@@ -4957,6 +4957,93 @@ paths:
4957
4957
  "404":
4958
4958
  description: Connection not found
4959
4959
 
4960
+ /v1/platform/connections/{connectionId}/grant:
4961
+ post:
4962
+ tags: [Platform]
4963
+ summary: Grant platform app access to vaults/agents
4964
+ description: |
4965
+ User-authenticated. Grant the platform app access to selected vaults and agents.
4966
+ Validates user ownership of all requested resources. Creates platform_user_grants
4967
+ entries and merges resource IDs into the connection record.
4968
+ security:
4969
+ - BearerAuth: []
4970
+ parameters:
4971
+ - in: path
4972
+ name: connectionId
4973
+ required: true
4974
+ schema:
4975
+ type: string
4976
+ format: uuid
4977
+ requestBody:
4978
+ required: true
4979
+ content:
4980
+ application/json:
4981
+ schema:
4982
+ $ref: "#/components/schemas/GrantResourcesRequest"
4983
+ responses:
4984
+ "201":
4985
+ description: Grants created
4986
+ content:
4987
+ application/json:
4988
+ schema:
4989
+ $ref: "#/components/schemas/GrantResourcesResponse"
4990
+ "400":
4991
+ description: No vault_ids or agent_ids provided
4992
+ "403":
4993
+ description: Resource not owned by caller
4994
+ "404":
4995
+ description: Connection not found
4996
+
4997
+ /v1/platform/connections/{connectionId}/grants:
4998
+ get:
4999
+ tags: [Platform]
5000
+ summary: List active resource grants for a connection
5001
+ description: User-authenticated. Returns active (non-revoked) grants for the connection.
5002
+ security:
5003
+ - BearerAuth: []
5004
+ parameters:
5005
+ - in: path
5006
+ name: connectionId
5007
+ required: true
5008
+ schema:
5009
+ type: string
5010
+ format: uuid
5011
+ responses:
5012
+ "200":
5013
+ description: Grant list
5014
+ content:
5015
+ application/json:
5016
+ schema:
5017
+ $ref: "#/components/schemas/GrantListResponse"
5018
+ "404":
5019
+ description: Connection not found
5020
+
5021
+ /v1/platform/connections/{connectionId}/grants/{grantId}:
5022
+ delete:
5023
+ tags: [Platform]
5024
+ summary: Revoke a resource grant
5025
+ description: User-authenticated. Revoke a specific resource grant by ID.
5026
+ security:
5027
+ - BearerAuth: []
5028
+ parameters:
5029
+ - in: path
5030
+ name: connectionId
5031
+ required: true
5032
+ schema:
5033
+ type: string
5034
+ format: uuid
5035
+ - in: path
5036
+ name: grantId
5037
+ required: true
5038
+ schema:
5039
+ type: string
5040
+ format: uuid
5041
+ responses:
5042
+ "204":
5043
+ description: Grant revoked
5044
+ "404":
5045
+ description: Grant not found or already revoked
5046
+
4960
5047
  /v1/platform/claim/{token}:
4961
5048
  get:
4962
5049
  tags: [Platform]
@@ -7614,6 +7701,27 @@ components:
7614
7701
  type: boolean
7615
7702
  description: Whether to submit as a gasless (sponsored) transaction
7616
7703
  default: false
7704
+ destination_tag:
7705
+ type: integer
7706
+ description: "Non-EVM (XRP): destination tag for exchange deposits"
7707
+ memo:
7708
+ type: string
7709
+ description: "Non-EVM (XRP, Solana): optional memo"
7710
+ fee_rate_sat_per_vbyte:
7711
+ type: integer
7712
+ description: "Non-EVM (Bitcoin): override the fetched fee rate (sat/vByte)"
7713
+ fee_limit_sun:
7714
+ type: integer
7715
+ description: "Non-EVM (Tron): TRC-20 energy fee limit in sun"
7716
+ token_mint:
7717
+ type: string
7718
+ description: "Non-EVM (Solana SPL / Tron TRC-20): token mint or contract address; omit for native transfer"
7719
+ token_decimals:
7720
+ type: integer
7721
+ description: "Non-EVM (Solana, Tron): token decimals (default 6)"
7722
+ ttl:
7723
+ type: integer
7724
+ description: "Non-EVM (Cardano): transaction time-to-live (absolute slot)"
7617
7725
 
7618
7726
  SignTransactionRequest:
7619
7727
  type: object
@@ -7647,6 +7755,27 @@ components:
7647
7755
  simulate_first:
7648
7756
  type: boolean
7649
7757
  default: false
7758
+ destination_tag:
7759
+ type: integer
7760
+ description: "Non-EVM (XRP): destination tag for exchange deposits"
7761
+ memo:
7762
+ type: string
7763
+ description: "Non-EVM (XRP, Solana): optional memo"
7764
+ fee_rate_sat_per_vbyte:
7765
+ type: integer
7766
+ description: "Non-EVM (Bitcoin): override the fetched fee rate (sat/vByte)"
7767
+ fee_limit_sun:
7768
+ type: integer
7769
+ description: "Non-EVM (Tron): TRC-20 energy fee limit in sun"
7770
+ token_mint:
7771
+ type: string
7772
+ description: "Non-EVM (Solana SPL / Tron TRC-20): token mint or contract address; omit for native transfer"
7773
+ token_decimals:
7774
+ type: integer
7775
+ description: "Non-EVM (Solana, Tron): token decimals (default 6)"
7776
+ ttl:
7777
+ type: integer
7778
+ description: "Non-EVM (Cardano): transaction time-to-live (absolute slot)"
7650
7779
 
7651
7780
  SignTransactionResponse:
7652
7781
  type: object
@@ -9906,6 +10035,92 @@ components:
9906
10035
  type: string
9907
10036
  format: date-time
9908
10037
 
10038
+ GrantResourcesRequest:
10039
+ type: object
10040
+ properties:
10041
+ vault_ids:
10042
+ type: array
10043
+ items:
10044
+ type: string
10045
+ format: uuid
10046
+ description: Vault IDs to grant access to
10047
+ agent_ids:
10048
+ type: array
10049
+ items:
10050
+ type: string
10051
+ format: uuid
10052
+ description: Agent IDs to grant access to
10053
+ allowed_paths:
10054
+ type: array
10055
+ items:
10056
+ type: string
10057
+ default: ["**"]
10058
+ description: Secret path patterns the app can access
10059
+ permissions:
10060
+ type: array
10061
+ items:
10062
+ type: string
10063
+ default: ["read"]
10064
+ description: Permissions granted (read, write, rotate)
10065
+ expires_at:
10066
+ type: string
10067
+ format: date-time
10068
+ description: Optional grant expiration
10069
+
10070
+ GrantResponse:
10071
+ type: object
10072
+ properties:
10073
+ id:
10074
+ type: string
10075
+ format: uuid
10076
+ vault_id:
10077
+ type: string
10078
+ format: uuid
10079
+ allowed_paths:
10080
+ type: array
10081
+ items:
10082
+ type: string
10083
+ permissions:
10084
+ type: array
10085
+ items:
10086
+ type: string
10087
+ expires_at:
10088
+ type: string
10089
+ format: date-time
10090
+ nullable: true
10091
+ created_at:
10092
+ type: string
10093
+ format: date-time
10094
+
10095
+ GrantResourcesResponse:
10096
+ type: object
10097
+ properties:
10098
+ connection_id:
10099
+ type: string
10100
+ format: uuid
10101
+ grants:
10102
+ type: array
10103
+ items:
10104
+ $ref: "#/components/schemas/GrantResponse"
10105
+ vault_ids:
10106
+ type: array
10107
+ items:
10108
+ type: string
10109
+ format: uuid
10110
+ agent_ids:
10111
+ type: array
10112
+ items:
10113
+ type: string
10114
+ format: uuid
10115
+
10116
+ GrantListResponse:
10117
+ type: object
10118
+ properties:
10119
+ grants:
10120
+ type: array
10121
+ items:
10122
+ $ref: "#/components/schemas/GrantResponse"
10123
+
9909
10124
  ClaimPreviewResponse:
9910
10125
  type: object
9911
10126
  properties:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.34.4",
3
+ "version": "0.36.0",
4
4
  "description": "OpenAPI 3.1.0 specification for the 1Claw Vault API — generate clients in any language",
5
5
  "license": "MIT",
6
6
  "repository": {