@1claw/openapi-spec 0.36.0 → 0.38.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 +2 -1
- package/openapi.json +394 -1
- package/openapi.yaml +285 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -43,7 +43,8 @@ import spec from "@1claw/openapi-spec/openapi.json";
|
|
|
43
43
|
## What's in the spec (v0.36.0 — API `info.version` 2.23.0)
|
|
44
44
|
|
|
45
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.
|
|
46
|
+
- **Intents API** — `SubmitTransactionRequest` / `SignTransactionRequest` / `SignIntentRequest` 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.
|
|
47
|
+
- **`xrpl_tx_json`** — Optional raw XRPL transaction JSON for 30+ transaction types beyond simple Payment. Supported types include TrustSet, OfferCreate, OfferCancel, AccountSet, AccountDelete, EscrowCreate/Finish/Cancel, PaymentChannelCreate/Fund/Claim, NFTokenMint/Burn/CreateOffer/AcceptOffer/CancelOffer, AMMCreate/Deposit/Withdraw/Bid/Delete/Vote, SetRegularKey, SignerListSet, DepositPreauth, CheckCreate/Cash/Cancel, TicketCreate, Clawback. Server auto-fills `Account`, `Sequence`, `Fee`, `Flags`, `LastLedgerSequence`, `SigningPubKey`. Legacy `to`/`value`/`destination_tag` Payment path preserved for backward compatibility.
|
|
47
48
|
|
|
48
49
|
### Risk Engine & DPoP (2.19)
|
|
49
50
|
- **Risk events** — `GET /v1/risk/events` (list, filterable by severity/principal_type)
|
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.
|
|
5
|
+
"version": "2.24.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"
|
|
@@ -122,6 +122,10 @@
|
|
|
122
122
|
{
|
|
123
123
|
"name": "Risk Engine",
|
|
124
124
|
"description": "Risk events, verdicts, and honeytoken management"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"name": "Tokens",
|
|
128
|
+
"description": "Known token registry for guardrail enforcement"
|
|
125
129
|
}
|
|
126
130
|
],
|
|
127
131
|
"paths": {
|
|
@@ -9385,6 +9389,142 @@
|
|
|
9385
9389
|
}
|
|
9386
9390
|
}
|
|
9387
9391
|
}
|
|
9392
|
+
},
|
|
9393
|
+
"/v1/tokens": {
|
|
9394
|
+
"get": {
|
|
9395
|
+
"tags": [
|
|
9396
|
+
"Tokens"
|
|
9397
|
+
],
|
|
9398
|
+
"summary": "List known tokens",
|
|
9399
|
+
"operationId": "listKnownTokens",
|
|
9400
|
+
"parameters": [
|
|
9401
|
+
{
|
|
9402
|
+
"name": "chain",
|
|
9403
|
+
"in": "query",
|
|
9404
|
+
"schema": {
|
|
9405
|
+
"type": "string"
|
|
9406
|
+
},
|
|
9407
|
+
"description": "Filter by chain name"
|
|
9408
|
+
}
|
|
9409
|
+
],
|
|
9410
|
+
"responses": {
|
|
9411
|
+
"200": {
|
|
9412
|
+
"description": "Token list",
|
|
9413
|
+
"content": {
|
|
9414
|
+
"application/json": {
|
|
9415
|
+
"schema": {
|
|
9416
|
+
"$ref": "#/components/schemas/KnownTokenListResponse"
|
|
9417
|
+
}
|
|
9418
|
+
}
|
|
9419
|
+
}
|
|
9420
|
+
}
|
|
9421
|
+
}
|
|
9422
|
+
}
|
|
9423
|
+
},
|
|
9424
|
+
"/v1/chains/{chain_name}/tokens": {
|
|
9425
|
+
"get": {
|
|
9426
|
+
"tags": [
|
|
9427
|
+
"Tokens"
|
|
9428
|
+
],
|
|
9429
|
+
"summary": "List tokens for a specific chain",
|
|
9430
|
+
"operationId": "listTokensByChain",
|
|
9431
|
+
"parameters": [
|
|
9432
|
+
{
|
|
9433
|
+
"name": "chain_name",
|
|
9434
|
+
"in": "path",
|
|
9435
|
+
"required": true,
|
|
9436
|
+
"schema": {
|
|
9437
|
+
"type": "string"
|
|
9438
|
+
}
|
|
9439
|
+
}
|
|
9440
|
+
],
|
|
9441
|
+
"responses": {
|
|
9442
|
+
"200": {
|
|
9443
|
+
"description": "Token list for chain",
|
|
9444
|
+
"content": {
|
|
9445
|
+
"application/json": {
|
|
9446
|
+
"schema": {
|
|
9447
|
+
"$ref": "#/components/schemas/KnownTokenListResponse"
|
|
9448
|
+
}
|
|
9449
|
+
}
|
|
9450
|
+
}
|
|
9451
|
+
}
|
|
9452
|
+
}
|
|
9453
|
+
}
|
|
9454
|
+
},
|
|
9455
|
+
"/v1/admin/tokens": {
|
|
9456
|
+
"post": {
|
|
9457
|
+
"tags": [
|
|
9458
|
+
"Admin",
|
|
9459
|
+
"Tokens"
|
|
9460
|
+
],
|
|
9461
|
+
"summary": "Create a known token (admin only)",
|
|
9462
|
+
"operationId": "createKnownToken",
|
|
9463
|
+
"security": [
|
|
9464
|
+
{
|
|
9465
|
+
"BearerAuth": []
|
|
9466
|
+
}
|
|
9467
|
+
],
|
|
9468
|
+
"requestBody": {
|
|
9469
|
+
"required": true,
|
|
9470
|
+
"content": {
|
|
9471
|
+
"application/json": {
|
|
9472
|
+
"schema": {
|
|
9473
|
+
"$ref": "#/components/schemas/CreateKnownTokenRequest"
|
|
9474
|
+
}
|
|
9475
|
+
}
|
|
9476
|
+
}
|
|
9477
|
+
},
|
|
9478
|
+
"responses": {
|
|
9479
|
+
"201": {
|
|
9480
|
+
"description": "Token created",
|
|
9481
|
+
"content": {
|
|
9482
|
+
"application/json": {
|
|
9483
|
+
"schema": {
|
|
9484
|
+
"$ref": "#/components/schemas/KnownToken"
|
|
9485
|
+
}
|
|
9486
|
+
}
|
|
9487
|
+
}
|
|
9488
|
+
},
|
|
9489
|
+
"403": {
|
|
9490
|
+
"$ref": "#/components/responses/Forbidden"
|
|
9491
|
+
}
|
|
9492
|
+
}
|
|
9493
|
+
}
|
|
9494
|
+
},
|
|
9495
|
+
"/v1/admin/tokens/{token_id}": {
|
|
9496
|
+
"delete": {
|
|
9497
|
+
"tags": [
|
|
9498
|
+
"Admin",
|
|
9499
|
+
"Tokens"
|
|
9500
|
+
],
|
|
9501
|
+
"summary": "Delete a known token (admin only)",
|
|
9502
|
+
"operationId": "deleteKnownToken",
|
|
9503
|
+
"security": [
|
|
9504
|
+
{
|
|
9505
|
+
"BearerAuth": []
|
|
9506
|
+
}
|
|
9507
|
+
],
|
|
9508
|
+
"parameters": [
|
|
9509
|
+
{
|
|
9510
|
+
"name": "token_id",
|
|
9511
|
+
"in": "path",
|
|
9512
|
+
"required": true,
|
|
9513
|
+
"schema": {
|
|
9514
|
+
"type": "string",
|
|
9515
|
+
"format": "uuid"
|
|
9516
|
+
}
|
|
9517
|
+
}
|
|
9518
|
+
],
|
|
9519
|
+
"responses": {
|
|
9520
|
+
"204": {
|
|
9521
|
+
"description": "Token deleted"
|
|
9522
|
+
},
|
|
9523
|
+
"403": {
|
|
9524
|
+
"$ref": "#/components/responses/Forbidden"
|
|
9525
|
+
}
|
|
9526
|
+
}
|
|
9527
|
+
}
|
|
9388
9528
|
}
|
|
9389
9529
|
},
|
|
9390
9530
|
"components": {
|
|
@@ -10779,6 +10919,30 @@
|
|
|
10779
10919
|
"shroud_config": {
|
|
10780
10920
|
"$ref": "#/components/schemas/ShroudConfig"
|
|
10781
10921
|
},
|
|
10922
|
+
"tx_token_allowlist": {
|
|
10923
|
+
"type": "array",
|
|
10924
|
+
"items": {
|
|
10925
|
+
"type": "string"
|
|
10926
|
+
},
|
|
10927
|
+
"description": "Token contract/mint addresses this agent may interact with. Empty = unrestricted."
|
|
10928
|
+
},
|
|
10929
|
+
"tx_known_tokens_only": {
|
|
10930
|
+
"type": "boolean",
|
|
10931
|
+
"default": false,
|
|
10932
|
+
"description": "When true, only tokens in the known_tokens registry may be used."
|
|
10933
|
+
},
|
|
10934
|
+
"xrpl_allowed_tx_types": {
|
|
10935
|
+
"type": "array",
|
|
10936
|
+
"items": {
|
|
10937
|
+
"type": "string"
|
|
10938
|
+
},
|
|
10939
|
+
"description": "Allowed XRP Ledger transaction types (Payment, TrustSet, etc.). Empty = all allowed."
|
|
10940
|
+
},
|
|
10941
|
+
"per_chain_guardrails": {
|
|
10942
|
+
"type": "object",
|
|
10943
|
+
"additionalProperties": true,
|
|
10944
|
+
"description": "Per-chain guardrail overrides. Keys are chain family names (ethereum, bitcoin, solana, etc.).\nEach value can contain: max_value, daily_limit, to_allowlist, token_allowlist.\nExample: { \"ethereum\": { \"max_value\": \"0.5\", \"to_allowlist\": [\"0x...\"] } }\n"
|
|
10945
|
+
},
|
|
10782
10946
|
"api_key_expires_at": {
|
|
10783
10947
|
"type": "string",
|
|
10784
10948
|
"format": "date-time",
|
|
@@ -10864,6 +11028,30 @@
|
|
|
10864
11028
|
"nullable": true,
|
|
10865
11029
|
"description": "Per-agent TTL override for federation tokens (seconds). NULL falls\nback to the global default (`ONECLAW_JWT_FEDERATED_TOKEN_EXPIRY_SECS`).\nHard-capped at 3600 seconds.\n"
|
|
10866
11030
|
},
|
|
11031
|
+
"tx_token_allowlist": {
|
|
11032
|
+
"type": "array",
|
|
11033
|
+
"items": {
|
|
11034
|
+
"type": "string"
|
|
11035
|
+
},
|
|
11036
|
+
"description": "Token contract/mint addresses this agent may interact with. Empty = unrestricted."
|
|
11037
|
+
},
|
|
11038
|
+
"tx_known_tokens_only": {
|
|
11039
|
+
"type": "boolean",
|
|
11040
|
+
"default": false,
|
|
11041
|
+
"description": "When true, only tokens in the known_tokens registry may be used."
|
|
11042
|
+
},
|
|
11043
|
+
"xrpl_allowed_tx_types": {
|
|
11044
|
+
"type": "array",
|
|
11045
|
+
"items": {
|
|
11046
|
+
"type": "string"
|
|
11047
|
+
},
|
|
11048
|
+
"description": "Allowed XRP Ledger transaction types (Payment, TrustSet, etc.). Empty = all allowed."
|
|
11049
|
+
},
|
|
11050
|
+
"per_chain_guardrails": {
|
|
11051
|
+
"type": "object",
|
|
11052
|
+
"additionalProperties": true,
|
|
11053
|
+
"description": "Per-chain guardrail overrides. Keys are chain family names (ethereum, bitcoin, solana, etc.).\nEach value can contain: max_value, daily_limit, to_allowlist, token_allowlist.\nExample: { \"ethereum\": { \"max_value\": \"0.5\", \"to_allowlist\": [\"0x...\"] } }\n"
|
|
11054
|
+
},
|
|
10867
11055
|
"api_key_expires_at": {
|
|
10868
11056
|
"type": "string",
|
|
10869
11057
|
"format": "date-time",
|
|
@@ -11021,6 +11209,36 @@
|
|
|
11021
11209
|
"type": "boolean",
|
|
11022
11210
|
"description": "Whether the raw/precomputed-digest signing intent (eip712_digest) is enabled. Blind signing — bypasses transaction guardrails; OFF by default and human-set. Required for ERC-1271/ERC-7739 flows (e.g. Polymarket).\n"
|
|
11023
11211
|
},
|
|
11212
|
+
"tx_token_allowlist": {
|
|
11213
|
+
"type": "array",
|
|
11214
|
+
"items": {
|
|
11215
|
+
"type": "string"
|
|
11216
|
+
},
|
|
11217
|
+
"description": "Token contract/mint addresses this agent may interact with."
|
|
11218
|
+
},
|
|
11219
|
+
"tx_known_tokens_only": {
|
|
11220
|
+
"type": "boolean",
|
|
11221
|
+
"description": "When true, only tokens in the known_tokens registry may be used."
|
|
11222
|
+
},
|
|
11223
|
+
"xrpl_allowed_tx_types": {
|
|
11224
|
+
"type": "array",
|
|
11225
|
+
"items": {
|
|
11226
|
+
"type": "string"
|
|
11227
|
+
},
|
|
11228
|
+
"description": "Allowed XRP Ledger transaction types."
|
|
11229
|
+
},
|
|
11230
|
+
"per_chain_guardrails": {
|
|
11231
|
+
"type": "object",
|
|
11232
|
+
"additionalProperties": true,
|
|
11233
|
+
"description": "Per-chain guardrail overrides."
|
|
11234
|
+
},
|
|
11235
|
+
"tx_spent_today_by_chain": {
|
|
11236
|
+
"type": "object",
|
|
11237
|
+
"additionalProperties": {
|
|
11238
|
+
"type": "string"
|
|
11239
|
+
},
|
|
11240
|
+
"description": "Per-chain-family daily spend in major units (e.g. {\"ethereum\": \"0.5\", \"solana\": \"2.1\"})."
|
|
11241
|
+
},
|
|
11024
11242
|
"api_key_expires_at": {
|
|
11025
11243
|
"type": "string",
|
|
11026
11244
|
"format": "date-time",
|
|
@@ -11053,6 +11271,111 @@
|
|
|
11053
11271
|
}
|
|
11054
11272
|
}
|
|
11055
11273
|
},
|
|
11274
|
+
"KnownToken": {
|
|
11275
|
+
"type": "object",
|
|
11276
|
+
"required": [
|
|
11277
|
+
"id",
|
|
11278
|
+
"chain",
|
|
11279
|
+
"symbol",
|
|
11280
|
+
"name",
|
|
11281
|
+
"contract_address",
|
|
11282
|
+
"decimals",
|
|
11283
|
+
"is_testnet",
|
|
11284
|
+
"is_verified"
|
|
11285
|
+
],
|
|
11286
|
+
"properties": {
|
|
11287
|
+
"id": {
|
|
11288
|
+
"type": "string",
|
|
11289
|
+
"format": "uuid"
|
|
11290
|
+
},
|
|
11291
|
+
"chain": {
|
|
11292
|
+
"type": "string"
|
|
11293
|
+
},
|
|
11294
|
+
"symbol": {
|
|
11295
|
+
"type": "string"
|
|
11296
|
+
},
|
|
11297
|
+
"name": {
|
|
11298
|
+
"type": "string"
|
|
11299
|
+
},
|
|
11300
|
+
"contract_address": {
|
|
11301
|
+
"type": "string"
|
|
11302
|
+
},
|
|
11303
|
+
"decimals": {
|
|
11304
|
+
"type": "integer"
|
|
11305
|
+
},
|
|
11306
|
+
"is_testnet": {
|
|
11307
|
+
"type": "boolean"
|
|
11308
|
+
},
|
|
11309
|
+
"is_verified": {
|
|
11310
|
+
"type": "boolean"
|
|
11311
|
+
},
|
|
11312
|
+
"logo_url": {
|
|
11313
|
+
"type": "string",
|
|
11314
|
+
"nullable": true
|
|
11315
|
+
},
|
|
11316
|
+
"created_at": {
|
|
11317
|
+
"type": "string",
|
|
11318
|
+
"format": "date-time"
|
|
11319
|
+
},
|
|
11320
|
+
"updated_at": {
|
|
11321
|
+
"type": "string",
|
|
11322
|
+
"format": "date-time"
|
|
11323
|
+
}
|
|
11324
|
+
}
|
|
11325
|
+
},
|
|
11326
|
+
"KnownTokenListResponse": {
|
|
11327
|
+
"type": "object",
|
|
11328
|
+
"required": [
|
|
11329
|
+
"tokens"
|
|
11330
|
+
],
|
|
11331
|
+
"properties": {
|
|
11332
|
+
"tokens": {
|
|
11333
|
+
"type": "array",
|
|
11334
|
+
"items": {
|
|
11335
|
+
"$ref": "#/components/schemas/KnownToken"
|
|
11336
|
+
}
|
|
11337
|
+
}
|
|
11338
|
+
}
|
|
11339
|
+
},
|
|
11340
|
+
"CreateKnownTokenRequest": {
|
|
11341
|
+
"type": "object",
|
|
11342
|
+
"required": [
|
|
11343
|
+
"chain",
|
|
11344
|
+
"symbol",
|
|
11345
|
+
"name",
|
|
11346
|
+
"contract_address",
|
|
11347
|
+
"decimals"
|
|
11348
|
+
],
|
|
11349
|
+
"properties": {
|
|
11350
|
+
"chain": {
|
|
11351
|
+
"type": "string"
|
|
11352
|
+
},
|
|
11353
|
+
"symbol": {
|
|
11354
|
+
"type": "string"
|
|
11355
|
+
},
|
|
11356
|
+
"name": {
|
|
11357
|
+
"type": "string"
|
|
11358
|
+
},
|
|
11359
|
+
"contract_address": {
|
|
11360
|
+
"type": "string"
|
|
11361
|
+
},
|
|
11362
|
+
"decimals": {
|
|
11363
|
+
"type": "integer"
|
|
11364
|
+
},
|
|
11365
|
+
"is_testnet": {
|
|
11366
|
+
"type": "boolean",
|
|
11367
|
+
"default": false
|
|
11368
|
+
},
|
|
11369
|
+
"is_verified": {
|
|
11370
|
+
"type": "boolean",
|
|
11371
|
+
"default": true
|
|
11372
|
+
},
|
|
11373
|
+
"logo_url": {
|
|
11374
|
+
"type": "string",
|
|
11375
|
+
"nullable": true
|
|
11376
|
+
}
|
|
11377
|
+
}
|
|
11378
|
+
},
|
|
11056
11379
|
"AgentSmartAccountResponse": {
|
|
11057
11380
|
"type": "object",
|
|
11058
11381
|
"description": "One Safe smart account per chain for an agent",
|
|
@@ -11841,6 +12164,11 @@
|
|
|
11841
12164
|
"ttl": {
|
|
11842
12165
|
"type": "integer",
|
|
11843
12166
|
"description": "Non-EVM (Cardano): transaction time-to-live (absolute slot)"
|
|
12167
|
+
},
|
|
12168
|
+
"xrpl_tx_json": {
|
|
12169
|
+
"type": "object",
|
|
12170
|
+
"additionalProperties": true,
|
|
12171
|
+
"description": "Raw XRPL transaction JSON for full transaction type coverage. When present (and chain is XRP), the handler uses the xrpl-rust binary codec to encode and sign the transaction as-is. Supports all XRPL transaction types: Payment, TrustSet, OfferCreate, OfferCancel, AccountSet, EscrowCreate, NFTokenMint, AMMCreate, and 20+ more. Account, Sequence, Fee, LastLedgerSequence, and SigningPubKey are auto-filled when absent.\n"
|
|
11844
12172
|
}
|
|
11845
12173
|
}
|
|
11846
12174
|
},
|
|
@@ -11918,6 +12246,11 @@
|
|
|
11918
12246
|
"ttl": {
|
|
11919
12247
|
"type": "integer",
|
|
11920
12248
|
"description": "Non-EVM (Cardano): transaction time-to-live (absolute slot)"
|
|
12249
|
+
},
|
|
12250
|
+
"xrpl_tx_json": {
|
|
12251
|
+
"type": "object",
|
|
12252
|
+
"additionalProperties": true,
|
|
12253
|
+
"description": "Raw XRPL transaction JSON for full transaction type coverage. When present (and chain is XRP), the handler uses the xrpl-rust binary codec to encode and sign the transaction as-is. Supports all XRPL transaction types: Payment, TrustSet, OfferCreate, OfferCancel, AccountSet, EscrowCreate, NFTokenMint, AMMCreate, and 20+ more. Account, Sequence, Fee, LastLedgerSequence, and SigningPubKey are auto-filled when absent.\n"
|
|
11921
12254
|
}
|
|
11922
12255
|
}
|
|
11923
12256
|
},
|
|
@@ -12259,6 +12592,43 @@
|
|
|
12259
12592
|
"items": {
|
|
12260
12593
|
"type": "object"
|
|
12261
12594
|
}
|
|
12595
|
+
},
|
|
12596
|
+
"sign_only": {
|
|
12597
|
+
"type": "boolean",
|
|
12598
|
+
"description": "When true, sign only (do not broadcast). Non-EVM transaction intents only."
|
|
12599
|
+
},
|
|
12600
|
+
"destination_tag": {
|
|
12601
|
+
"type": "integer",
|
|
12602
|
+
"description": "Non-EVM (XRP): destination tag for exchange deposits"
|
|
12603
|
+
},
|
|
12604
|
+
"memo": {
|
|
12605
|
+
"type": "string",
|
|
12606
|
+
"description": "Non-EVM (XRP, Solana): optional memo"
|
|
12607
|
+
},
|
|
12608
|
+
"fee_rate_sat_per_vbyte": {
|
|
12609
|
+
"type": "integer",
|
|
12610
|
+
"description": "Non-EVM (Bitcoin): override the fetched fee rate (sat/vByte)"
|
|
12611
|
+
},
|
|
12612
|
+
"fee_limit_sun": {
|
|
12613
|
+
"type": "integer",
|
|
12614
|
+
"description": "Non-EVM (Tron): TRC-20 energy fee limit in sun"
|
|
12615
|
+
},
|
|
12616
|
+
"token_mint": {
|
|
12617
|
+
"type": "string",
|
|
12618
|
+
"description": "Non-EVM (Solana SPL / Tron TRC-20): token mint or contract address; omit for native transfer"
|
|
12619
|
+
},
|
|
12620
|
+
"token_decimals": {
|
|
12621
|
+
"type": "integer",
|
|
12622
|
+
"description": "Non-EVM (Solana, Tron): token decimals (default 6)"
|
|
12623
|
+
},
|
|
12624
|
+
"ttl": {
|
|
12625
|
+
"type": "integer",
|
|
12626
|
+
"description": "Non-EVM (Cardano): transaction time-to-live (absolute slot)"
|
|
12627
|
+
},
|
|
12628
|
+
"xrpl_tx_json": {
|
|
12629
|
+
"type": "object",
|
|
12630
|
+
"additionalProperties": true,
|
|
12631
|
+
"description": "Raw XRPL transaction JSON for full transaction type coverage. When present (and chain is XRP), the handler uses the xrpl-rust binary codec to encode and sign the transaction as-is. Supports all XRPL transaction types: Payment, TrustSet, OfferCreate, OfferCancel, AccountSet, EscrowCreate, NFTokenMint, AMMCreate, and 20+ more. Account, Sequence, Fee, LastLedgerSequence, and SigningPubKey are auto-filled when absent.\n"
|
|
12262
12632
|
}
|
|
12263
12633
|
}
|
|
12264
12634
|
},
|
|
@@ -14320,6 +14690,29 @@
|
|
|
14320
14690
|
},
|
|
14321
14691
|
"balance_display": {
|
|
14322
14692
|
"type": "string"
|
|
14693
|
+
},
|
|
14694
|
+
"tokens": {
|
|
14695
|
+
"type": "array",
|
|
14696
|
+
"description": "Token balances when ?tokens= query param is provided",
|
|
14697
|
+
"items": {
|
|
14698
|
+
"type": "object",
|
|
14699
|
+
"properties": {
|
|
14700
|
+
"contract_address": {
|
|
14701
|
+
"type": "string"
|
|
14702
|
+
},
|
|
14703
|
+
"symbol": {
|
|
14704
|
+
"type": "string",
|
|
14705
|
+
"nullable": true
|
|
14706
|
+
},
|
|
14707
|
+
"balance": {
|
|
14708
|
+
"type": "string"
|
|
14709
|
+
},
|
|
14710
|
+
"decimals": {
|
|
14711
|
+
"type": "integer",
|
|
14712
|
+
"nullable": true
|
|
14713
|
+
}
|
|
14714
|
+
}
|
|
14715
|
+
}
|
|
14323
14716
|
}
|
|
14324
14717
|
}
|
|
14325
14718
|
},
|
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.
|
|
5
|
+
version: 2.24.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,
|
|
@@ -74,6 +74,8 @@ tags:
|
|
|
74
74
|
description: OAuth 2.0 authorization server (PKCE, consent, token exchange, OIDC UserInfo)
|
|
75
75
|
- name: Risk Engine
|
|
76
76
|
description: Risk events, verdicts, and honeytoken management
|
|
77
|
+
- name: Tokens
|
|
78
|
+
description: Known token registry for guardrail enforcement
|
|
77
79
|
|
|
78
80
|
# =============================================================================
|
|
79
81
|
# PATHS
|
|
@@ -5986,6 +5988,87 @@ paths:
|
|
|
5986
5988
|
"404":
|
|
5987
5989
|
$ref: "#/components/responses/NotFound"
|
|
5988
5990
|
|
|
5991
|
+
/v1/tokens:
|
|
5992
|
+
get:
|
|
5993
|
+
tags: [Tokens]
|
|
5994
|
+
summary: List known tokens
|
|
5995
|
+
operationId: listKnownTokens
|
|
5996
|
+
parameters:
|
|
5997
|
+
- name: chain
|
|
5998
|
+
in: query
|
|
5999
|
+
schema:
|
|
6000
|
+
type: string
|
|
6001
|
+
description: Filter by chain name
|
|
6002
|
+
responses:
|
|
6003
|
+
"200":
|
|
6004
|
+
description: Token list
|
|
6005
|
+
content:
|
|
6006
|
+
application/json:
|
|
6007
|
+
schema:
|
|
6008
|
+
$ref: "#/components/schemas/KnownTokenListResponse"
|
|
6009
|
+
|
|
6010
|
+
/v1/chains/{chain_name}/tokens:
|
|
6011
|
+
get:
|
|
6012
|
+
tags: [Tokens]
|
|
6013
|
+
summary: List tokens for a specific chain
|
|
6014
|
+
operationId: listTokensByChain
|
|
6015
|
+
parameters:
|
|
6016
|
+
- name: chain_name
|
|
6017
|
+
in: path
|
|
6018
|
+
required: true
|
|
6019
|
+
schema:
|
|
6020
|
+
type: string
|
|
6021
|
+
responses:
|
|
6022
|
+
"200":
|
|
6023
|
+
description: Token list for chain
|
|
6024
|
+
content:
|
|
6025
|
+
application/json:
|
|
6026
|
+
schema:
|
|
6027
|
+
$ref: "#/components/schemas/KnownTokenListResponse"
|
|
6028
|
+
|
|
6029
|
+
/v1/admin/tokens:
|
|
6030
|
+
post:
|
|
6031
|
+
tags: [Admin, Tokens]
|
|
6032
|
+
summary: Create a known token (admin only)
|
|
6033
|
+
operationId: createKnownToken
|
|
6034
|
+
security:
|
|
6035
|
+
- BearerAuth: []
|
|
6036
|
+
requestBody:
|
|
6037
|
+
required: true
|
|
6038
|
+
content:
|
|
6039
|
+
application/json:
|
|
6040
|
+
schema:
|
|
6041
|
+
$ref: "#/components/schemas/CreateKnownTokenRequest"
|
|
6042
|
+
responses:
|
|
6043
|
+
"201":
|
|
6044
|
+
description: Token created
|
|
6045
|
+
content:
|
|
6046
|
+
application/json:
|
|
6047
|
+
schema:
|
|
6048
|
+
$ref: "#/components/schemas/KnownToken"
|
|
6049
|
+
"403":
|
|
6050
|
+
$ref: "#/components/responses/Forbidden"
|
|
6051
|
+
|
|
6052
|
+
/v1/admin/tokens/{token_id}:
|
|
6053
|
+
delete:
|
|
6054
|
+
tags: [Admin, Tokens]
|
|
6055
|
+
summary: Delete a known token (admin only)
|
|
6056
|
+
operationId: deleteKnownToken
|
|
6057
|
+
security:
|
|
6058
|
+
- BearerAuth: []
|
|
6059
|
+
parameters:
|
|
6060
|
+
- name: token_id
|
|
6061
|
+
in: path
|
|
6062
|
+
required: true
|
|
6063
|
+
schema:
|
|
6064
|
+
type: string
|
|
6065
|
+
format: uuid
|
|
6066
|
+
responses:
|
|
6067
|
+
"204":
|
|
6068
|
+
description: Token deleted
|
|
6069
|
+
"403":
|
|
6070
|
+
$ref: "#/components/responses/Forbidden"
|
|
6071
|
+
|
|
5989
6072
|
# =============================================================================
|
|
5990
6073
|
# COMPONENTS
|
|
5991
6074
|
# =============================================================================
|
|
@@ -6969,6 +7052,27 @@ components:
|
|
|
6969
7052
|
description: Enable Shroud LLM Proxy for this agent
|
|
6970
7053
|
shroud_config:
|
|
6971
7054
|
$ref: "#/components/schemas/ShroudConfig"
|
|
7055
|
+
tx_token_allowlist:
|
|
7056
|
+
type: array
|
|
7057
|
+
items:
|
|
7058
|
+
type: string
|
|
7059
|
+
description: Token contract/mint addresses this agent may interact with. Empty = unrestricted.
|
|
7060
|
+
tx_known_tokens_only:
|
|
7061
|
+
type: boolean
|
|
7062
|
+
default: false
|
|
7063
|
+
description: When true, only tokens in the known_tokens registry may be used.
|
|
7064
|
+
xrpl_allowed_tx_types:
|
|
7065
|
+
type: array
|
|
7066
|
+
items:
|
|
7067
|
+
type: string
|
|
7068
|
+
description: Allowed XRP Ledger transaction types (Payment, TrustSet, etc.). Empty = all allowed.
|
|
7069
|
+
per_chain_guardrails:
|
|
7070
|
+
type: object
|
|
7071
|
+
additionalProperties: true
|
|
7072
|
+
description: |
|
|
7073
|
+
Per-chain guardrail overrides. Keys are chain family names (ethereum, bitcoin, solana, etc.).
|
|
7074
|
+
Each value can contain: max_value, daily_limit, to_allowlist, token_allowlist.
|
|
7075
|
+
Example: { "ethereum": { "max_value": "0.5", "to_allowlist": ["0x..."] } }
|
|
6972
7076
|
api_key_expires_at:
|
|
6973
7077
|
type: string
|
|
6974
7078
|
format: date-time
|
|
@@ -7040,6 +7144,27 @@ components:
|
|
|
7040
7144
|
Per-agent TTL override for federation tokens (seconds). NULL falls
|
|
7041
7145
|
back to the global default (`ONECLAW_JWT_FEDERATED_TOKEN_EXPIRY_SECS`).
|
|
7042
7146
|
Hard-capped at 3600 seconds.
|
|
7147
|
+
tx_token_allowlist:
|
|
7148
|
+
type: array
|
|
7149
|
+
items:
|
|
7150
|
+
type: string
|
|
7151
|
+
description: Token contract/mint addresses this agent may interact with. Empty = unrestricted.
|
|
7152
|
+
tx_known_tokens_only:
|
|
7153
|
+
type: boolean
|
|
7154
|
+
default: false
|
|
7155
|
+
description: When true, only tokens in the known_tokens registry may be used.
|
|
7156
|
+
xrpl_allowed_tx_types:
|
|
7157
|
+
type: array
|
|
7158
|
+
items:
|
|
7159
|
+
type: string
|
|
7160
|
+
description: Allowed XRP Ledger transaction types (Payment, TrustSet, etc.). Empty = all allowed.
|
|
7161
|
+
per_chain_guardrails:
|
|
7162
|
+
type: object
|
|
7163
|
+
additionalProperties: true
|
|
7164
|
+
description: |
|
|
7165
|
+
Per-chain guardrail overrides. Keys are chain family names (ethereum, bitcoin, solana, etc.).
|
|
7166
|
+
Each value can contain: max_value, daily_limit, to_allowlist, token_allowlist.
|
|
7167
|
+
Example: { "ethereum": { "max_value": "0.5", "to_allowlist": ["0x..."] } }
|
|
7043
7168
|
api_key_expires_at:
|
|
7044
7169
|
type: string
|
|
7045
7170
|
format: date-time
|
|
@@ -7158,6 +7283,28 @@ components:
|
|
|
7158
7283
|
Whether the raw/precomputed-digest signing intent (eip712_digest) is
|
|
7159
7284
|
enabled. Blind signing — bypasses transaction guardrails; OFF by default
|
|
7160
7285
|
and human-set. Required for ERC-1271/ERC-7739 flows (e.g. Polymarket).
|
|
7286
|
+
tx_token_allowlist:
|
|
7287
|
+
type: array
|
|
7288
|
+
items:
|
|
7289
|
+
type: string
|
|
7290
|
+
description: Token contract/mint addresses this agent may interact with.
|
|
7291
|
+
tx_known_tokens_only:
|
|
7292
|
+
type: boolean
|
|
7293
|
+
description: When true, only tokens in the known_tokens registry may be used.
|
|
7294
|
+
xrpl_allowed_tx_types:
|
|
7295
|
+
type: array
|
|
7296
|
+
items:
|
|
7297
|
+
type: string
|
|
7298
|
+
description: Allowed XRP Ledger transaction types.
|
|
7299
|
+
per_chain_guardrails:
|
|
7300
|
+
type: object
|
|
7301
|
+
additionalProperties: true
|
|
7302
|
+
description: Per-chain guardrail overrides.
|
|
7303
|
+
tx_spent_today_by_chain:
|
|
7304
|
+
type: object
|
|
7305
|
+
additionalProperties:
|
|
7306
|
+
type: string
|
|
7307
|
+
description: 'Per-chain-family daily spend in major units (e.g. {"ethereum": "0.5", "solana": "2.1"}).'
|
|
7161
7308
|
api_key_expires_at:
|
|
7162
7309
|
type: string
|
|
7163
7310
|
format: date-time
|
|
@@ -7182,6 +7329,70 @@ components:
|
|
|
7182
7329
|
items:
|
|
7183
7330
|
$ref: "#/components/schemas/AgentSmartAccountResponse"
|
|
7184
7331
|
|
|
7332
|
+
KnownToken:
|
|
7333
|
+
type: object
|
|
7334
|
+
required: [id, chain, symbol, name, contract_address, decimals, is_testnet, is_verified]
|
|
7335
|
+
properties:
|
|
7336
|
+
id:
|
|
7337
|
+
type: string
|
|
7338
|
+
format: uuid
|
|
7339
|
+
chain:
|
|
7340
|
+
type: string
|
|
7341
|
+
symbol:
|
|
7342
|
+
type: string
|
|
7343
|
+
name:
|
|
7344
|
+
type: string
|
|
7345
|
+
contract_address:
|
|
7346
|
+
type: string
|
|
7347
|
+
decimals:
|
|
7348
|
+
type: integer
|
|
7349
|
+
is_testnet:
|
|
7350
|
+
type: boolean
|
|
7351
|
+
is_verified:
|
|
7352
|
+
type: boolean
|
|
7353
|
+
logo_url:
|
|
7354
|
+
type: string
|
|
7355
|
+
nullable: true
|
|
7356
|
+
created_at:
|
|
7357
|
+
type: string
|
|
7358
|
+
format: date-time
|
|
7359
|
+
updated_at:
|
|
7360
|
+
type: string
|
|
7361
|
+
format: date-time
|
|
7362
|
+
|
|
7363
|
+
KnownTokenListResponse:
|
|
7364
|
+
type: object
|
|
7365
|
+
required: [tokens]
|
|
7366
|
+
properties:
|
|
7367
|
+
tokens:
|
|
7368
|
+
type: array
|
|
7369
|
+
items:
|
|
7370
|
+
$ref: "#/components/schemas/KnownToken"
|
|
7371
|
+
|
|
7372
|
+
CreateKnownTokenRequest:
|
|
7373
|
+
type: object
|
|
7374
|
+
required: [chain, symbol, name, contract_address, decimals]
|
|
7375
|
+
properties:
|
|
7376
|
+
chain:
|
|
7377
|
+
type: string
|
|
7378
|
+
symbol:
|
|
7379
|
+
type: string
|
|
7380
|
+
name:
|
|
7381
|
+
type: string
|
|
7382
|
+
contract_address:
|
|
7383
|
+
type: string
|
|
7384
|
+
decimals:
|
|
7385
|
+
type: integer
|
|
7386
|
+
is_testnet:
|
|
7387
|
+
type: boolean
|
|
7388
|
+
default: false
|
|
7389
|
+
is_verified:
|
|
7390
|
+
type: boolean
|
|
7391
|
+
default: true
|
|
7392
|
+
logo_url:
|
|
7393
|
+
type: string
|
|
7394
|
+
nullable: true
|
|
7395
|
+
|
|
7185
7396
|
AgentSmartAccountResponse:
|
|
7186
7397
|
type: object
|
|
7187
7398
|
description: One Safe smart account per chain for an agent
|
|
@@ -7722,6 +7933,17 @@ components:
|
|
|
7722
7933
|
ttl:
|
|
7723
7934
|
type: integer
|
|
7724
7935
|
description: "Non-EVM (Cardano): transaction time-to-live (absolute slot)"
|
|
7936
|
+
xrpl_tx_json:
|
|
7937
|
+
type: object
|
|
7938
|
+
additionalProperties: true
|
|
7939
|
+
description: >
|
|
7940
|
+
Raw XRPL transaction JSON for full transaction type coverage.
|
|
7941
|
+
When present (and chain is XRP), the handler uses the xrpl-rust
|
|
7942
|
+
binary codec to encode and sign the transaction as-is. Supports
|
|
7943
|
+
all XRPL transaction types: Payment, TrustSet, OfferCreate,
|
|
7944
|
+
OfferCancel, AccountSet, EscrowCreate, NFTokenMint, AMMCreate,
|
|
7945
|
+
and 20+ more. Account, Sequence, Fee, LastLedgerSequence, and
|
|
7946
|
+
SigningPubKey are auto-filled when absent.
|
|
7725
7947
|
|
|
7726
7948
|
SignTransactionRequest:
|
|
7727
7949
|
type: object
|
|
@@ -7776,6 +7998,17 @@ components:
|
|
|
7776
7998
|
ttl:
|
|
7777
7999
|
type: integer
|
|
7778
8000
|
description: "Non-EVM (Cardano): transaction time-to-live (absolute slot)"
|
|
8001
|
+
xrpl_tx_json:
|
|
8002
|
+
type: object
|
|
8003
|
+
additionalProperties: true
|
|
8004
|
+
description: >
|
|
8005
|
+
Raw XRPL transaction JSON for full transaction type coverage.
|
|
8006
|
+
When present (and chain is XRP), the handler uses the xrpl-rust
|
|
8007
|
+
binary codec to encode and sign the transaction as-is. Supports
|
|
8008
|
+
all XRPL transaction types: Payment, TrustSet, OfferCreate,
|
|
8009
|
+
OfferCancel, AccountSet, EscrowCreate, NFTokenMint, AMMCreate,
|
|
8010
|
+
and 20+ more. Account, Sequence, Fee, LastLedgerSequence, and
|
|
8011
|
+
SigningPubKey are auto-filled when absent.
|
|
7779
8012
|
|
|
7780
8013
|
SignTransactionResponse:
|
|
7781
8014
|
type: object
|
|
@@ -8013,6 +8246,41 @@ components:
|
|
|
8013
8246
|
type: array
|
|
8014
8247
|
items:
|
|
8015
8248
|
type: object
|
|
8249
|
+
sign_only:
|
|
8250
|
+
type: boolean
|
|
8251
|
+
description: "When true, sign only (do not broadcast). Non-EVM transaction intents only."
|
|
8252
|
+
destination_tag:
|
|
8253
|
+
type: integer
|
|
8254
|
+
description: "Non-EVM (XRP): destination tag for exchange deposits"
|
|
8255
|
+
memo:
|
|
8256
|
+
type: string
|
|
8257
|
+
description: "Non-EVM (XRP, Solana): optional memo"
|
|
8258
|
+
fee_rate_sat_per_vbyte:
|
|
8259
|
+
type: integer
|
|
8260
|
+
description: "Non-EVM (Bitcoin): override the fetched fee rate (sat/vByte)"
|
|
8261
|
+
fee_limit_sun:
|
|
8262
|
+
type: integer
|
|
8263
|
+
description: "Non-EVM (Tron): TRC-20 energy fee limit in sun"
|
|
8264
|
+
token_mint:
|
|
8265
|
+
type: string
|
|
8266
|
+
description: "Non-EVM (Solana SPL / Tron TRC-20): token mint or contract address; omit for native transfer"
|
|
8267
|
+
token_decimals:
|
|
8268
|
+
type: integer
|
|
8269
|
+
description: "Non-EVM (Solana, Tron): token decimals (default 6)"
|
|
8270
|
+
ttl:
|
|
8271
|
+
type: integer
|
|
8272
|
+
description: "Non-EVM (Cardano): transaction time-to-live (absolute slot)"
|
|
8273
|
+
xrpl_tx_json:
|
|
8274
|
+
type: object
|
|
8275
|
+
additionalProperties: true
|
|
8276
|
+
description: >
|
|
8277
|
+
Raw XRPL transaction JSON for full transaction type coverage.
|
|
8278
|
+
When present (and chain is XRP), the handler uses the xrpl-rust
|
|
8279
|
+
binary codec to encode and sign the transaction as-is. Supports
|
|
8280
|
+
all XRPL transaction types: Payment, TrustSet, OfferCreate,
|
|
8281
|
+
OfferCancel, AccountSet, EscrowCreate, NFTokenMint, AMMCreate,
|
|
8282
|
+
and 20+ more. Account, Sequence, Fee, LastLedgerSequence, and
|
|
8283
|
+
SigningPubKey are auto-filled when absent.
|
|
8016
8284
|
|
|
8017
8285
|
SignIntentResponse:
|
|
8018
8286
|
type: object
|
|
@@ -9416,6 +9684,22 @@ components:
|
|
|
9416
9684
|
type: string
|
|
9417
9685
|
balance_display:
|
|
9418
9686
|
type: string
|
|
9687
|
+
tokens:
|
|
9688
|
+
type: array
|
|
9689
|
+
description: Token balances when ?tokens= query param is provided
|
|
9690
|
+
items:
|
|
9691
|
+
type: object
|
|
9692
|
+
properties:
|
|
9693
|
+
contract_address:
|
|
9694
|
+
type: string
|
|
9695
|
+
symbol:
|
|
9696
|
+
type: string
|
|
9697
|
+
nullable: true
|
|
9698
|
+
balance:
|
|
9699
|
+
type: string
|
|
9700
|
+
decimals:
|
|
9701
|
+
type: integer
|
|
9702
|
+
nullable: true
|
|
9419
9703
|
|
|
9420
9704
|
# --- x402 ---
|
|
9421
9705
|
|