@1claw/openapi-spec 0.61.19 → 0.61.21
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/openapi.json +1156 -192
- package/openapi.yaml +514 -2
- package/package.json +1 -1
package/openapi.yaml
CHANGED
|
@@ -2,7 +2,7 @@ openapi: 3.1.0
|
|
|
2
2
|
|
|
3
3
|
info:
|
|
4
4
|
title: 1Claw API
|
|
5
|
-
version: "0.61.
|
|
5
|
+
version: "0.61.21"
|
|
6
6
|
description: |
|
|
7
7
|
Secure secret management for AI agents. Provides vaults, secrets,
|
|
8
8
|
policy-based access control, agent identity, Intents API,
|
|
@@ -5623,6 +5623,14 @@ paths:
|
|
|
5623
5623
|
chain:
|
|
5624
5624
|
type: string
|
|
5625
5625
|
enum: [solana]
|
|
5626
|
+
replace_existing:
|
|
5627
|
+
type: boolean
|
|
5628
|
+
default: false
|
|
5629
|
+
description: |
|
|
5630
|
+
Re-key ceremony: replace the active server-custody wallet on
|
|
5631
|
+
this chain. On `complete` its balance is swept to the new
|
|
5632
|
+
address by the old key's last signature and the old wallet is
|
|
5633
|
+
deactivated (audit `treasury_wallet.rekeyed`).
|
|
5626
5634
|
responses:
|
|
5627
5635
|
"201":
|
|
5628
5636
|
description: Session opened; the vault's round-1 package
|
|
@@ -5942,6 +5950,481 @@ paths:
|
|
|
5942
5950
|
"404":
|
|
5943
5951
|
$ref: "#/components/responses/NotFound"
|
|
5944
5952
|
|
|
5953
|
+
/v1/runtimes/{runtime_id}/tss/holder:
|
|
5954
|
+
parameters:
|
|
5955
|
+
- name: runtime_id
|
|
5956
|
+
in: path
|
|
5957
|
+
required: true
|
|
5958
|
+
schema: { type: string, format: uuid }
|
|
5959
|
+
post:
|
|
5960
|
+
tags: [Key Custody]
|
|
5961
|
+
summary: Register the runtime's sidecar as a share holder
|
|
5962
|
+
description: |
|
|
5963
|
+
Called by the runtime's agent (the Shroud sidecar, at boot) with the P-256
|
|
5964
|
+
public key it generated. The owner can then provision a threshold-key
|
|
5965
|
+
share to this runtime, letting the agent co-sign below-cap sends
|
|
5966
|
+
unattended. Re-registering replaces the key; deleting the runtime revokes
|
|
5967
|
+
every share held by it.
|
|
5968
|
+
operationId: registerTssHolder
|
|
5969
|
+
security:
|
|
5970
|
+
- BearerAuth: []
|
|
5971
|
+
requestBody:
|
|
5972
|
+
required: true
|
|
5973
|
+
content:
|
|
5974
|
+
application/json:
|
|
5975
|
+
schema:
|
|
5976
|
+
type: object
|
|
5977
|
+
required: [public_key]
|
|
5978
|
+
properties:
|
|
5979
|
+
public_key: { type: string, description: Base64 SEC1 uncompressed P-256 point (65 bytes). }
|
|
5980
|
+
responses:
|
|
5981
|
+
"201":
|
|
5982
|
+
description: Registered
|
|
5983
|
+
content:
|
|
5984
|
+
application/json:
|
|
5985
|
+
schema:
|
|
5986
|
+
$ref: "#/components/schemas/TssHolder"
|
|
5987
|
+
"400":
|
|
5988
|
+
$ref: "#/components/responses/BadRequest"
|
|
5989
|
+
"401":
|
|
5990
|
+
$ref: "#/components/responses/Unauthorized"
|
|
5991
|
+
"403":
|
|
5992
|
+
$ref: "#/components/responses/Forbidden"
|
|
5993
|
+
"404":
|
|
5994
|
+
$ref: "#/components/responses/NotFound"
|
|
5995
|
+
get:
|
|
5996
|
+
tags: [Key Custody]
|
|
5997
|
+
summary: The runtime's registered share holder
|
|
5998
|
+
operationId: getTssHolder
|
|
5999
|
+
security:
|
|
6000
|
+
- BearerAuth: []
|
|
6001
|
+
responses:
|
|
6002
|
+
"200":
|
|
6003
|
+
description: Holder
|
|
6004
|
+
content:
|
|
6005
|
+
application/json:
|
|
6006
|
+
schema:
|
|
6007
|
+
$ref: "#/components/schemas/TssHolder"
|
|
6008
|
+
"401":
|
|
6009
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6010
|
+
"404":
|
|
6011
|
+
$ref: "#/components/responses/NotFound"
|
|
6012
|
+
|
|
6013
|
+
/v1/keys/{key_id}/client-share/holder:
|
|
6014
|
+
parameters:
|
|
6015
|
+
- name: key_id
|
|
6016
|
+
in: path
|
|
6017
|
+
required: true
|
|
6018
|
+
schema: { type: string, format: uuid }
|
|
6019
|
+
put:
|
|
6020
|
+
tags: [Key Custody]
|
|
6021
|
+
summary: Provision a threshold-key share to a runtime holder
|
|
6022
|
+
description: |
|
|
6023
|
+
The owner's browser unlocks its share with the passkey PRF and re-wraps
|
|
6024
|
+
it to the holder's P-256 key (ECIES: ephemeral point ‖ iv ‖ AES-GCM). The
|
|
6025
|
+
vault stores the ciphertext unopened. The wallet must be delegated to the
|
|
6026
|
+
holder's agent. Audited as `client_share.provisioned_to_runtime`.
|
|
6027
|
+
operationId: provisionTssHolderShare
|
|
6028
|
+
security:
|
|
6029
|
+
- BearerAuth: []
|
|
6030
|
+
requestBody:
|
|
6031
|
+
required: true
|
|
6032
|
+
content:
|
|
6033
|
+
application/json:
|
|
6034
|
+
schema:
|
|
6035
|
+
type: object
|
|
6036
|
+
required: [holder_id, wrapped_share, salt]
|
|
6037
|
+
properties:
|
|
6038
|
+
holder_id: { type: string, format: uuid }
|
|
6039
|
+
wrapped_share: { type: string }
|
|
6040
|
+
salt: { type: string }
|
|
6041
|
+
responses:
|
|
6042
|
+
"201":
|
|
6043
|
+
description: Stored
|
|
6044
|
+
"400":
|
|
6045
|
+
$ref: "#/components/responses/BadRequest"
|
|
6046
|
+
"401":
|
|
6047
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6048
|
+
"403":
|
|
6049
|
+
$ref: "#/components/responses/Forbidden"
|
|
6050
|
+
"404":
|
|
6051
|
+
$ref: "#/components/responses/NotFound"
|
|
6052
|
+
get:
|
|
6053
|
+
tags: [Key Custody]
|
|
6054
|
+
summary: The sidecar fetches the wrap made for it
|
|
6055
|
+
description: Agent-only; returns the wrap whose holder was registered by the calling agent.
|
|
6056
|
+
operationId: getTssHolderShare
|
|
6057
|
+
security:
|
|
6058
|
+
- BearerAuth: []
|
|
6059
|
+
responses:
|
|
6060
|
+
"200":
|
|
6061
|
+
description: Wrapped share (opaque)
|
|
6062
|
+
content:
|
|
6063
|
+
application/json:
|
|
6064
|
+
schema:
|
|
6065
|
+
type: object
|
|
6066
|
+
properties:
|
|
6067
|
+
key_id: { type: string, format: uuid }
|
|
6068
|
+
holder_id: { type: string, format: uuid }
|
|
6069
|
+
wrap_kind: { type: string, enum: [sidecar] }
|
|
6070
|
+
wrapped_share: { type: string }
|
|
6071
|
+
salt: { type: string }
|
|
6072
|
+
"401":
|
|
6073
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6074
|
+
"403":
|
|
6075
|
+
$ref: "#/components/responses/Forbidden"
|
|
6076
|
+
"404":
|
|
6077
|
+
$ref: "#/components/responses/NotFound"
|
|
6078
|
+
|
|
6079
|
+
/v1/agents/{agent_id}/tss/prepare:
|
|
6080
|
+
parameters:
|
|
6081
|
+
- name: agent_id
|
|
6082
|
+
in: path
|
|
6083
|
+
required: true
|
|
6084
|
+
schema: { type: string, format: uuid }
|
|
6085
|
+
post:
|
|
6086
|
+
tags: [Key Custody]
|
|
6087
|
+
summary: Agent declares a send from a delegated client_tss wallet
|
|
6088
|
+
description: |
|
|
6089
|
+
Runs the agent's guardrails (chains, allowlists, caps, daily limits,
|
|
6090
|
+
approval policy) and the sanctions screen on the declared call, builds
|
|
6091
|
+
the unsigned message and records it as a prepared intent. Only a
|
|
6092
|
+
prepared message can enter `/tss/sign/begin`. Requires a treasury
|
|
6093
|
+
delegation and a share provisioned to the agent's runtime.
|
|
6094
|
+
operationId: agentTssPrepare
|
|
6095
|
+
security:
|
|
6096
|
+
- BearerAuth: []
|
|
6097
|
+
requestBody:
|
|
6098
|
+
required: true
|
|
6099
|
+
content:
|
|
6100
|
+
application/json:
|
|
6101
|
+
schema:
|
|
6102
|
+
type: object
|
|
6103
|
+
required: [key_id, to, value]
|
|
6104
|
+
properties:
|
|
6105
|
+
key_id: { type: string, format: uuid }
|
|
6106
|
+
to: { type: string }
|
|
6107
|
+
value: { type: string, description: Major units. }
|
|
6108
|
+
memo: { type: string }
|
|
6109
|
+
responses:
|
|
6110
|
+
"200":
|
|
6111
|
+
description: Unsigned message
|
|
6112
|
+
"400":
|
|
6113
|
+
$ref: "#/components/responses/BadRequest"
|
|
6114
|
+
"401":
|
|
6115
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6116
|
+
"403":
|
|
6117
|
+
$ref: "#/components/responses/Forbidden"
|
|
6118
|
+
"404":
|
|
6119
|
+
$ref: "#/components/responses/NotFound"
|
|
6120
|
+
|
|
6121
|
+
/v1/agents/{agent_id}/tss/sign/begin:
|
|
6122
|
+
parameters:
|
|
6123
|
+
- name: agent_id
|
|
6124
|
+
in: path
|
|
6125
|
+
required: true
|
|
6126
|
+
schema: { type: string, format: uuid }
|
|
6127
|
+
post:
|
|
6128
|
+
tags: [Key Custody]
|
|
6129
|
+
summary: Agent threshold signing, round 1
|
|
6130
|
+
description: The message must be a live prepared intent for this agent and key; its transfers are screened again.
|
|
6131
|
+
operationId: agentTssSignBegin
|
|
6132
|
+
security:
|
|
6133
|
+
- BearerAuth: []
|
|
6134
|
+
requestBody:
|
|
6135
|
+
required: true
|
|
6136
|
+
content:
|
|
6137
|
+
application/json:
|
|
6138
|
+
schema:
|
|
6139
|
+
type: object
|
|
6140
|
+
required: [key_id, message]
|
|
6141
|
+
properties:
|
|
6142
|
+
key_id: { type: string, format: uuid }
|
|
6143
|
+
message: { type: string }
|
|
6144
|
+
responses:
|
|
6145
|
+
"201":
|
|
6146
|
+
description: Session opened
|
|
6147
|
+
"401":
|
|
6148
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6149
|
+
"403":
|
|
6150
|
+
$ref: "#/components/responses/Forbidden"
|
|
6151
|
+
"404":
|
|
6152
|
+
$ref: "#/components/responses/NotFound"
|
|
6153
|
+
|
|
6154
|
+
/v1/agents/{agent_id}/tss/sign/complete:
|
|
6155
|
+
parameters:
|
|
6156
|
+
- name: agent_id
|
|
6157
|
+
in: path
|
|
6158
|
+
required: true
|
|
6159
|
+
schema: { type: string, format: uuid }
|
|
6160
|
+
post:
|
|
6161
|
+
tags: [Key Custody]
|
|
6162
|
+
summary: Agent threshold signing, round 2
|
|
6163
|
+
operationId: agentTssSignComplete
|
|
6164
|
+
security:
|
|
6165
|
+
- BearerAuth: []
|
|
6166
|
+
requestBody:
|
|
6167
|
+
required: true
|
|
6168
|
+
content:
|
|
6169
|
+
application/json:
|
|
6170
|
+
schema:
|
|
6171
|
+
type: object
|
|
6172
|
+
required: [session_id, client_commitments, client_signature_share]
|
|
6173
|
+
properties:
|
|
6174
|
+
session_id: { type: string, format: uuid }
|
|
6175
|
+
client_commitments: { type: string }
|
|
6176
|
+
client_signature_share: { type: string }
|
|
6177
|
+
responses:
|
|
6178
|
+
"200":
|
|
6179
|
+
description: Signature
|
|
6180
|
+
"400":
|
|
6181
|
+
$ref: "#/components/responses/BadRequest"
|
|
6182
|
+
"401":
|
|
6183
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6184
|
+
"404":
|
|
6185
|
+
$ref: "#/components/responses/NotFound"
|
|
6186
|
+
"409":
|
|
6187
|
+
$ref: "#/components/responses/Conflict"
|
|
6188
|
+
|
|
6189
|
+
/v1/agents/{agent_id}/tss/broadcast:
|
|
6190
|
+
parameters:
|
|
6191
|
+
- name: agent_id
|
|
6192
|
+
in: path
|
|
6193
|
+
required: true
|
|
6194
|
+
schema: { type: string, format: uuid }
|
|
6195
|
+
post:
|
|
6196
|
+
tags: [Key Custody]
|
|
6197
|
+
summary: Broadcast an agent's threshold-signed send
|
|
6198
|
+
description: |
|
|
6199
|
+
Verifies the signature under the wallet key, checks the message is the
|
|
6200
|
+
prepared one, re-runs the agent's guardrails, records the transaction
|
|
6201
|
+
(daily limits count it) and submits. Audited as `treasury_wallet.send`
|
|
6202
|
+
with `via: runtime_share_holder`.
|
|
6203
|
+
operationId: agentTssBroadcast
|
|
6204
|
+
security:
|
|
6205
|
+
- BearerAuth: []
|
|
6206
|
+
requestBody:
|
|
6207
|
+
required: true
|
|
6208
|
+
content:
|
|
6209
|
+
application/json:
|
|
6210
|
+
schema:
|
|
6211
|
+
type: object
|
|
6212
|
+
required: [key_id, message, signature]
|
|
6213
|
+
properties:
|
|
6214
|
+
key_id: { type: string, format: uuid }
|
|
6215
|
+
message: { type: string }
|
|
6216
|
+
signature: { type: string }
|
|
6217
|
+
responses:
|
|
6218
|
+
"200":
|
|
6219
|
+
description: Broadcast
|
|
6220
|
+
content:
|
|
6221
|
+
application/json:
|
|
6222
|
+
schema:
|
|
6223
|
+
$ref: "#/components/schemas/TreasuryWalletSendResponse"
|
|
6224
|
+
"400":
|
|
6225
|
+
$ref: "#/components/responses/BadRequest"
|
|
6226
|
+
"401":
|
|
6227
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6228
|
+
"403":
|
|
6229
|
+
$ref: "#/components/responses/Forbidden"
|
|
6230
|
+
|
|
6231
|
+
/v1/treasury/passkey-safes:
|
|
6232
|
+
post:
|
|
6233
|
+
tags: [Key Custody]
|
|
6234
|
+
summary: Create a Safe owned by your passkey
|
|
6235
|
+
description: |
|
|
6236
|
+
An EVM Safe (v1.4.1) whose only owner is Safe's WebAuthn shared signer,
|
|
6237
|
+
configured with this passkey's P-256 public key. No private key exists
|
|
6238
|
+
anywhere: signing a transaction is a WebAuthn assertion whose challenge
|
|
6239
|
+
is the SafeTx hash. The address is counterfactual (CREATE2) until the
|
|
6240
|
+
first `execute` deploys it. Chains: base, optimism, arbitrum, polygon
|
|
6241
|
+
(RIP-7212 precompile + fallback verifier), ethereum, sepolia, base-sepolia.
|
|
6242
|
+
operationId: createPasskeySafe
|
|
6243
|
+
security:
|
|
6244
|
+
- BearerAuth: []
|
|
6245
|
+
requestBody:
|
|
6246
|
+
required: true
|
|
6247
|
+
content:
|
|
6248
|
+
application/json:
|
|
6249
|
+
schema:
|
|
6250
|
+
type: object
|
|
6251
|
+
required: [chain, passkey_id]
|
|
6252
|
+
properties:
|
|
6253
|
+
chain: { type: string }
|
|
6254
|
+
passkey_id: { type: string, format: uuid }
|
|
6255
|
+
responses:
|
|
6256
|
+
"201":
|
|
6257
|
+
description: Safe registered (counterfactual)
|
|
6258
|
+
content:
|
|
6259
|
+
application/json:
|
|
6260
|
+
schema:
|
|
6261
|
+
$ref: "#/components/schemas/PasskeySafe"
|
|
6262
|
+
"400":
|
|
6263
|
+
$ref: "#/components/responses/BadRequest"
|
|
6264
|
+
"401":
|
|
6265
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6266
|
+
"404":
|
|
6267
|
+
$ref: "#/components/responses/NotFound"
|
|
6268
|
+
"409":
|
|
6269
|
+
$ref: "#/components/responses/Conflict"
|
|
6270
|
+
get:
|
|
6271
|
+
tags: [Key Custody]
|
|
6272
|
+
summary: List your passkey-owned Safes
|
|
6273
|
+
operationId: listPasskeySafes
|
|
6274
|
+
security:
|
|
6275
|
+
- BearerAuth: []
|
|
6276
|
+
responses:
|
|
6277
|
+
"200":
|
|
6278
|
+
description: Safes
|
|
6279
|
+
content:
|
|
6280
|
+
application/json:
|
|
6281
|
+
schema:
|
|
6282
|
+
type: object
|
|
6283
|
+
properties:
|
|
6284
|
+
safes:
|
|
6285
|
+
type: array
|
|
6286
|
+
items:
|
|
6287
|
+
$ref: "#/components/schemas/PasskeySafe"
|
|
6288
|
+
"401":
|
|
6289
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6290
|
+
|
|
6291
|
+
/v1/treasury/passkey-safes/{id}:
|
|
6292
|
+
parameters:
|
|
6293
|
+
- name: id
|
|
6294
|
+
in: path
|
|
6295
|
+
required: true
|
|
6296
|
+
schema: { type: string, format: uuid }
|
|
6297
|
+
delete:
|
|
6298
|
+
tags: [Key Custody]
|
|
6299
|
+
summary: Forget a passkey Safe
|
|
6300
|
+
description: Deactivates the record only; the Safe and its funds stay on-chain under the passkey.
|
|
6301
|
+
operationId: deactivatePasskeySafe
|
|
6302
|
+
security:
|
|
6303
|
+
- BearerAuth: []
|
|
6304
|
+
responses:
|
|
6305
|
+
"204":
|
|
6306
|
+
description: Deactivated
|
|
6307
|
+
"401":
|
|
6308
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6309
|
+
"404":
|
|
6310
|
+
$ref: "#/components/responses/NotFound"
|
|
6311
|
+
|
|
6312
|
+
/v1/treasury/passkey-safes/{id}/prepare:
|
|
6313
|
+
parameters:
|
|
6314
|
+
- name: id
|
|
6315
|
+
in: path
|
|
6316
|
+
required: true
|
|
6317
|
+
schema: { type: string, format: uuid }
|
|
6318
|
+
post:
|
|
6319
|
+
tags: [Key Custody]
|
|
6320
|
+
summary: Compute the SafeTx hash for a call from a passkey Safe
|
|
6321
|
+
description: |
|
|
6322
|
+
Runs the sanctions screen and spend policies on the call, reads the
|
|
6323
|
+
Safe's on-chain nonce (0 if not yet deployed), and returns the SafeTx
|
|
6324
|
+
hash — the raw 32 bytes are the WebAuthn challenge to sign with
|
|
6325
|
+
`userVerification: "required"`.
|
|
6326
|
+
operationId: preparePasskeySafeTx
|
|
6327
|
+
security:
|
|
6328
|
+
- BearerAuth: []
|
|
6329
|
+
requestBody:
|
|
6330
|
+
required: true
|
|
6331
|
+
content:
|
|
6332
|
+
application/json:
|
|
6333
|
+
schema:
|
|
6334
|
+
type: object
|
|
6335
|
+
required: [to, value_wei]
|
|
6336
|
+
properties:
|
|
6337
|
+
to: { type: string }
|
|
6338
|
+
value_wei: { type: string }
|
|
6339
|
+
data: { type: string, description: Hex calldata, optional. }
|
|
6340
|
+
responses:
|
|
6341
|
+
"200":
|
|
6342
|
+
description: What to sign
|
|
6343
|
+
content:
|
|
6344
|
+
application/json:
|
|
6345
|
+
schema:
|
|
6346
|
+
type: object
|
|
6347
|
+
properties:
|
|
6348
|
+
safe_id: { type: string, format: uuid }
|
|
6349
|
+
safe_address: { type: string }
|
|
6350
|
+
chain: { type: string }
|
|
6351
|
+
chain_id: { type: integer }
|
|
6352
|
+
to: { type: string }
|
|
6353
|
+
value_wei: { type: string }
|
|
6354
|
+
data: { type: string }
|
|
6355
|
+
nonce: { type: integer }
|
|
6356
|
+
deploy_required: { type: boolean }
|
|
6357
|
+
safe_tx_hash: { type: string }
|
|
6358
|
+
credential_id: { type: string }
|
|
6359
|
+
rp_id: { type: string }
|
|
6360
|
+
"400":
|
|
6361
|
+
$ref: "#/components/responses/BadRequest"
|
|
6362
|
+
"401":
|
|
6363
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6364
|
+
"403":
|
|
6365
|
+
$ref: "#/components/responses/Forbidden"
|
|
6366
|
+
"404":
|
|
6367
|
+
$ref: "#/components/responses/NotFound"
|
|
6368
|
+
|
|
6369
|
+
/v1/treasury/passkey-safes/{id}/execute:
|
|
6370
|
+
parameters:
|
|
6371
|
+
- name: id
|
|
6372
|
+
in: path
|
|
6373
|
+
required: true
|
|
6374
|
+
schema: { type: string, format: uuid }
|
|
6375
|
+
post:
|
|
6376
|
+
tags: [Key Custody]
|
|
6377
|
+
summary: Relay a passkey-signed Safe transaction
|
|
6378
|
+
description: |
|
|
6379
|
+
Recomputes the SafeTx hash, verifies the WebAuthn assertion locally
|
|
6380
|
+
(this passkey, this hash, a dashboard origin, UV flag set), wraps it in
|
|
6381
|
+
Safe's contract-signature format and relays `execTransaction` — deploying
|
|
6382
|
+
the Safe first if needed — from your Ethereum treasury wallet, which pays
|
|
6383
|
+
gas and is not an owner. Audited as `passkey_safe.executed`.
|
|
6384
|
+
operationId: executePasskeySafeTx
|
|
6385
|
+
security:
|
|
6386
|
+
- BearerAuth: []
|
|
6387
|
+
requestBody:
|
|
6388
|
+
required: true
|
|
6389
|
+
content:
|
|
6390
|
+
application/json:
|
|
6391
|
+
schema:
|
|
6392
|
+
type: object
|
|
6393
|
+
required: [to, value_wei, nonce, authenticator_data, client_data_json, signature]
|
|
6394
|
+
properties:
|
|
6395
|
+
to: { type: string }
|
|
6396
|
+
value_wei: { type: string }
|
|
6397
|
+
data: { type: string }
|
|
6398
|
+
nonce: { type: integer }
|
|
6399
|
+
authenticator_data: { type: string, description: Base64url. }
|
|
6400
|
+
client_data_json: { type: string, description: Base64url. }
|
|
6401
|
+
signature: { type: string, description: Base64url DER ECDSA signature. }
|
|
6402
|
+
responses:
|
|
6403
|
+
"200":
|
|
6404
|
+
description: Relayed
|
|
6405
|
+
content:
|
|
6406
|
+
application/json:
|
|
6407
|
+
schema:
|
|
6408
|
+
type: object
|
|
6409
|
+
properties:
|
|
6410
|
+
safe_id: { type: string, format: uuid }
|
|
6411
|
+
safe_address: { type: string }
|
|
6412
|
+
chain: { type: string }
|
|
6413
|
+
safe_tx_hash: { type: string }
|
|
6414
|
+
deploy_tx_hash: { type: string, nullable: true }
|
|
6415
|
+
tx_hash: { type: string }
|
|
6416
|
+
status: { type: string }
|
|
6417
|
+
"400":
|
|
6418
|
+
$ref: "#/components/responses/BadRequest"
|
|
6419
|
+
"401":
|
|
6420
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6421
|
+
"403":
|
|
6422
|
+
$ref: "#/components/responses/Forbidden"
|
|
6423
|
+
"404":
|
|
6424
|
+
$ref: "#/components/responses/NotFound"
|
|
6425
|
+
"409":
|
|
6426
|
+
$ref: "#/components/responses/Conflict"
|
|
6427
|
+
|
|
5945
6428
|
/v1/treasury/wallets/generate:
|
|
5946
6429
|
post:
|
|
5947
6430
|
tags: [Treasury Wallets]
|
|
@@ -25439,6 +25922,7 @@ components:
|
|
|
25439
25922
|
wrap_kind:
|
|
25440
25923
|
type: string
|
|
25441
25924
|
enum: [passkey_prf, recovery_code]
|
|
25925
|
+
description: Sidecar wraps are stored through `PUT /v1/keys/{key_id}/client-share/holder`.
|
|
25442
25926
|
credential_id:
|
|
25443
25927
|
type: string
|
|
25444
25928
|
format: uuid
|
|
@@ -25465,11 +25949,15 @@ components:
|
|
|
25465
25949
|
enum: [agent_signing_key, treasury_wallet]
|
|
25466
25950
|
wrap_kind:
|
|
25467
25951
|
type: string
|
|
25468
|
-
enum: [passkey_prf, recovery_code]
|
|
25952
|
+
enum: [passkey_prf, recovery_code, sidecar]
|
|
25469
25953
|
credential_id:
|
|
25470
25954
|
type: string
|
|
25471
25955
|
format: uuid
|
|
25472
25956
|
nullable: true
|
|
25957
|
+
holder_id:
|
|
25958
|
+
type: string
|
|
25959
|
+
format: uuid
|
|
25960
|
+
nullable: true
|
|
25473
25961
|
wrapped_share:
|
|
25474
25962
|
type: string
|
|
25475
25963
|
description: Base64, exactly as stored.
|
|
@@ -25483,6 +25971,30 @@ components:
|
|
|
25483
25971
|
type: string
|
|
25484
25972
|
format: date-time
|
|
25485
25973
|
|
|
25974
|
+
TssHolder:
|
|
25975
|
+
type: object
|
|
25976
|
+
properties:
|
|
25977
|
+
holder_id: { type: string, format: uuid }
|
|
25978
|
+
runtime_id: { type: string, format: uuid }
|
|
25979
|
+
agent_id: { type: string, format: uuid }
|
|
25980
|
+
public_key: { type: string }
|
|
25981
|
+
registered_at: { type: string, format: date-time }
|
|
25982
|
+
last_seen_at: { type: string, format: date-time }
|
|
25983
|
+
|
|
25984
|
+
PasskeySafe:
|
|
25985
|
+
type: object
|
|
25986
|
+
properties:
|
|
25987
|
+
id: { type: string, format: uuid }
|
|
25988
|
+
chain: { type: string }
|
|
25989
|
+
chain_id: { type: integer }
|
|
25990
|
+
safe_address: { type: string }
|
|
25991
|
+
passkey_id: { type: string, format: uuid }
|
|
25992
|
+
custody: { type: string, enum: [passkey_owner] }
|
|
25993
|
+
deploy_status: { type: string, enum: [pending, deployed] }
|
|
25994
|
+
deploy_tx_hash: { type: string, nullable: true }
|
|
25995
|
+
owner_signer: { type: string, description: The SafeWebAuthnSharedSigner address listed as the Safe's owner. }
|
|
25996
|
+
created_at: { type: string, format: date-time }
|
|
25997
|
+
|
|
25486
25998
|
ClientShareListResponse:
|
|
25487
25999
|
type: object
|
|
25488
26000
|
properties:
|