{ "openapi": "3.1.0", "info": { "title": "Blockaid API", "description": "Blockaid Risk Score API", "termsOfService": "https://www.blockaid.io/legal/terms-of-use", "license": { "name": "Proprietary", "url": "https://www.blockaid.io/legal" }, "version": "1.0.0" }, "servers": [ { "url": "https://api.blockaid.io", "description": "Production server" }, { "url": "https://client.blockaid.io", "description": "Clients server" } ], "paths": { "/v0/platform/integrations/search": { "post": { "tags": ["external api integrations"], "summary": "Search Integrations", "operationId": "search_integrations_v0_platform_integrations_search_post", "parameters": [], "security": [ { "APIKey": [] }, { "JWT": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IntegrationSearchRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Page_Annotated_Union_FireblocksIntegration__SlackIntegration__FordefiIntegration__TelegramIntegration__ResponseWalletIntegration___FieldInfo_annotation_NoneType__required_True__discriminator__type____" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v0/platform/integrations/{integration_instance_id}/resources": { "get": { "tags": ["external api integrations"], "summary": "Get Integration Resources", "operationId": "get_integration_resources_v0_platform_integrations__integration_instance_id__resources_get", "parameters": [ { "name": "integration_instance_id", "in": "path", "required": true, "schema": { "type": "string", "description": "The integration instance ID", "title": "Integration Instance Id" }, "description": "The integration instance ID" }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "default": 1, "title": "Page" } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "default": 100, "title": "Size" } } ], "security": [ { "APIKey": [] }, { "JWT": [] } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/VaultsResourceResponse" }, { "$ref": "#/components/schemas/SlackResourceResponse" }, { "$ref": "#/components/schemas/TelegramResourceResponse" }, { "$ref": "#/components/schemas/ResponseWalletChainResourceResponse" } ], "discriminator": { "propertyName": "type", "mapping": { "vaults_resource": "#/components/schemas/VaultsResourceResponse", "slack_resource": "#/components/schemas/SlackResourceResponse", "telegram_resource": "#/components/schemas/TelegramResourceResponse", "response_wallet_chains_resource": "#/components/schemas/ResponseWalletChainResourceResponse" } }, "title": "Response Get Integration Resources V0 Platform Integrations Integration Instance Id Resources Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v0/platform/cosigners/{id}/policies/": { "get": { "tags": ["cosigner"], "summary": "Get Cosigner Policies Route", "description": "Get all policies for a cosigner by ID.", "operationId": "get_cosigner_policies_route_external_v0_cosigners__id__policies__get", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "description": "Cosigner ID", "title": "Id" }, "description": "Cosigner ID" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetPoliciesResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": ["cosigner"], "summary": "Set Cosigner Policies Route", "description": "Set policies for a cosigner by ID.", "operationId": "set_cosigner_policies_route_external_v0_cosigners__id__policies__post", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "description": "Cosigner ID", "title": "Id" }, "description": "Cosigner ID" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetPoliciesRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetPoliciesResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v0/platform/cosigners": { "post": { "tags": ["cosigner"], "summary": "Create a new Cosigner", "description": "Create a cosigner and determine what it does on proposal, approval, and rejection.", "operationId": "create_cosigner_external_route_external_v0_cosigners__post", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCosignerExternalRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CosignerExternalResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] } }, "/v0/platform/cosigners/search": { "post": { "tags": ["cosigner"], "summary": "Get Cosigners Paginated Route", "description": "Returns a paginated list of Cosigners based on the provided search criteria.", "operationId": "get_cosigners_paginated_route_external_v0_cosigners_search_post", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CosignerSearchRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CosignerPage_CosignerExternalResponse_" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] } }, "/v0/platform/cosigners/by-name/{name}": { "get": { "tags": ["cosigner"], "summary": "Get Cosigner By Name", "description": "Fetch a cosigner by name.", "operationId": "get_cosigner_by_name_route_external_v0_cosigners_by_name__name__get", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "title": "Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CosignerExternalResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] } }, "/v0/platform/cosigners/{id}": { "get": { "tags": ["cosigner"], "summary": "Get Cosigner External Route", "description": "Fetch a cosigner by ID.", "operationId": "get_cosigner_external_route_external_v0_cosigners__id__get", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "title": "Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CosignerExternalResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] }, "delete": { "tags": ["cosigner"], "summary": "Delete Cosigner External Route", "description": "Remove a cosigner by ID.", "operationId": "delete_cosigner_external_route_external_v0_cosigners__id__delete", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "title": "Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] }, "patch": { "tags": ["cosigner"], "summary": "Update Cosigner External Route", "description": "Update a cosigner by ID; the fields you send replace the existing ones.", "operationId": "update_cosigner_external_route_external_v0_cosigners__id__patch", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "title": "Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCosignerExternalRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CosignerExternalResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] } }, "/v0/platform/cosigners/{id}/evm/evaluate": { "post": { "tags": ["cosigner"], "summary": "Evaluate EVM Transaction", "description": "Run policy evaluation against an EVM transaction for the given cosigner. Returns the policy decision and per-policy trace.", "operationId": "evaluate_transaction_route_external_v0_cosigners__id__evm_evaluate_post", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "description": "Cosigner ID", "title": "Id" }, "description": "Cosigner ID" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EvaluateTransactionRequest" }, "example": { "evaluation_type": "simulate", "chain": "ethereum", "account_address": "0x1234", "data": { "from": "0x1234", "to": "0x1E0049783F008A0085193E00003D00cd54003c71", "value": "0x0", "data": "0xa22cb465" }, "metadata": { "domain": "https://app.safe.global" } } } } }, "x-codeSamples": [ { "lang": "bash", "label": "Simulate transaction", "source": "curl -X POST \"https://api.blockaid.io/v0/platform/cosigners//evm/evaluate\" \\\n -H \"X-API-Key: \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"evaluation_type\": \"simulate\",\n \"chain\": \"ethereum\",\n \"account_address\": \"0x1234\",\n \"data\": {\n \"from\": \"0x1234\",\n \"to\": \"0x1E0049783F008A0085193E00003D00cd54003c71\",\n \"value\": \"0x0\",\n \"data\": \"0xa22cb465\"\n },\n \"metadata\": {\n \"domain\": \"https://app.safe.global\"\n }\n }'" }, { "lang": "bash", "label": "Simulate EIP-712", "source": "curl -X POST \"https://api.blockaid.io/v0/platform/cosigners//evm/evaluate\" \\\n -H \"X-API-Key: \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"evaluation_type\": \"simulate\",\n \"chain\": \"ethereum\",\n \"account_address\": \"0xSigner\",\n \"data\": {\n \"type\": \"eip712\",\n \"typed_data\": \"{\\\"types\\\":{},\\\"primaryType\\\":\\\"Order\\\",\\\"domain\\\":{},\\\"message\\\":{}}\",\n \"eip712_executor\": \"0xSafeExecutor\"\n },\n \"metadata\": {\n \"domain\": \"https://app.safe.global\"\n }\n }'" }, { "lang": "bash", "label": "Evaluate tx hash", "source": "curl -X POST \"https://api.blockaid.io/v0/platform/cosigners//evm/evaluate\" \\\n -H \"X-API-Key: \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"evaluation_type\": \"tx_hash\",\n \"tx_hash\": \"0xabc\",\n \"chain\": \"ethereum\",\n \"show_transaction_detail_for\": []\n }'" }, { "lang": "bash", "label": "Evaluate time period", "source": "curl -X POST \"https://api.blockaid.io/v0/platform/cosigners//evm/evaluate\" \\\n -H \"X-API-Key: \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"evaluation_type\": \"time_period\",\n \"chain\": \"ethereum\",\n \"time_period\": {\n \"from\": \"2026-03-01T12:34:56+00:00\",\n \"to\": \"2026-03-02T01:02:03+00:00\"\n },\n \"show_transaction_detail_for\": []\n }'" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/EvaluateTransactionResponse" }, { "$ref": "#/components/schemas/EvaluateHistoricalDataResponse" } ], "title": "Response Evaluate Transaction Route External V0 Cosigners Id Evm Evaluate Post" } } } }, "404": { "description": "Cosigner not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] } }, "/v0/evm/json-rpc/scan": { "post": { "tags": ["EVM"], "summary": "Scan JSON-RPC", "description": "Get a risk recommendation with plain-language reasons for a JSON-RPC request.", "operationId": "scan-json-rpc", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JsonRPCRequest" }, "examples": { "Malicious Permit Order": { "summary": "Ethereum - Malicious Permit Order (EIP 712)", "value": { "chain": "ethereum", "account_address": "0x49c73c9d361c04769a452E85D343b41aC38e0EE4", "data": { "method": "eth_signTypedData_v4", "params": [ "0x49c73c9d361c04769a452E85D343b41aC38e0EE4", "{\"domain\":{\"chainId\":1,\"name\":\"Aave interest bearing WETH\",\"version\":\"1\",\"verifyingContract\":\"0x030ba81f1c18d280636f32af80b9aad02cf0854e\"},\"message\":{\"owner\":\"0x49c73c9d361c04769a452E85D343b41aC38e0EE4\",\"spender\":\"0xa74cbd5b80f73b5950768c8dc467f1c6307c00fd\",\"value\":\"115792089237316195423570985008687907853269984665640564039457584007913129639935\",\"nonce\":\"0\",\"deadline\":\"1988064000\",\"holder\":\"0x49c73c9d361c04769a452E85D343b41aC38e0EE4\"},\"primaryType\":\"Permit\",\"types\":{\"EIP712Domain\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"version\",\"type\":\"string\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"verifyingContract\",\"type\":\"address\"}],\"Permit\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"},{\"name\":\"nonce\",\"type\":\"uint256\"},{\"name\":\"deadline\",\"type\":\"uint256\"}]}}" ], "options": { "domain": "rewards.yfdai.org", "url": "https://rewards.yfdai.org/", "faviconURL": "https://rewards.yfdai.org/Favicon.png", "title": "YFDAI Finance", "tabId": 265105513 }, "timestamp": 1686151800667 }, "options": ["simulation", "validation"], "metadata": { "domain": "https://boredapeyartclub.com" }, "block": "18370320" } }, "Benign Permit Order": { "summary": "Ethereum - Benign Permit Order (EIP 712)", "value": { "chain": "ethereum", "account_address": "0xA910f92ACdAf488fa6eF02174fb86208Ad7722ba", "data": { "jsonrpc": "2.0", "method": "eth_signTypedData", "params": [ "0xA910f92ACdAf488fa6eF02174fb86208Ad7722ba", "{\"types\":{\"PermitSingle\":[{\"name\":\"details\",\"type\":\"PermitDetails\"},{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"sigDeadline\",\"type\":\"uint256\"}],\"PermitDetails\":[{\"name\":\"token\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint160\"},{\"name\":\"expiration\",\"type\":\"uint48\"},{\"name\":\"nonce\",\"type\":\"uint48\"}],\"EIP712Domain\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"verifyingContract\",\"type\":\"address\"}]},\"domain\":{\"name\":\"Permit2\",\"chainId\":\"1\",\"verifyingContract\":\"0x000000000022d473030f116ddee9f6b43ac78ba3\"},\"primaryType\":\"PermitSingle\",\"message\":{\"details\":{\"token\":\"0x6982508145454ce325ddbe47a25d4ec3d2311933\",\"amount\":\"1461501637330902918203684832716283019655932542975\",\"expiration\":\"1684512281\",\"nonce\":\"0\"},\"spender\":\"0xef1c6e67703c7bd7107eed8303fbe6ec2554bf6b\",\"sigDeadline\":\"1681922081\"}}" ] }, "options": ["simulation", "validation"], "metadata": { "domain": "https://app.uniswap.org" }, "block": "18370320" } }, "Benign Uniswap Execute": { "summary": "Ethereum - Benign Uniswap Execute", "value": { "chain": "ethereum", "account_address": "0x5e1a0d484c5f0de722e82f9dca3a9d5a421d47cb", "data": { "jsonrpc": "2.0", "method": "eth_sendTransaction", "params": [ { "gas": "0x2fe6e", "value": "0xde0b6b3a7640000", "from": "0x5e1a0d484c5f0de722e82f9dca3a9d5a421d47cb", "to": "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad", "data": "0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000006512e04300000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000005e08060b00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000" } ] }, "options": ["simulation", "validation"], "metadata": { "domain": "https://app.uniswap.org" }, "block": "18220183" } }, "Malicious Claim Transaction": { "summary": "Ethereum - Malicious Claim Transaction", "value": { "chain": "ethereum", "account_address": "0xb88f61e6fbda83fbfffabe364112137480398018", "data": { "jsonrpc": "2.0", "method": "eth_sendTransaction", "params": [ { "from": "0xb88f61e6fbda83fbfffabe364112137480398018", "to": "0x000068da4526a3b4699fd2e0fdf2491fa7900000", "data": "0x3158952e", "value": "0xde25155a6002608359" } ] }, "options": ["simulation", "validation"], "metadata": { "domain": "https://shibicoin.org" }, "block": "18370320" } }, "Malicious Rariable Order": { "summary": "Ethereum - Malicious Rariable Order", "value": { "chain": "ethereum", "account_address": "0x13edbf878e3dbb91d36d15f9b9e061f72d20b603", "data": { "jsonrpc": "2.0", "method": "eth_signTypedData", "params": [ "0x13edbf878e3dbb91d36d15f9b9e061f72d20b603", "{\"primaryType\":\"Order\",\"domain\":{\"name\":\"Exchange\",\"version\":\"2\",\"verifyingContract\":\"0x9757f2d2b135150bbeb65308d4a91804107cd8d6\",\"chainId\":1},\"types\":{\"EIP712Domain\":[{\"type\":\"string\",\"name\":\"name\"},{\"type\":\"string\",\"name\":\"version\"},{\"type\":\"uint256\",\"name\":\"chainId\"},{\"type\":\"address\",\"name\":\"verifyingContract\"}],\"AssetType\":[{\"name\":\"assetClass\",\"type\":\"bytes4\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"Asset\":[{\"name\":\"assetType\",\"type\":\"AssetType\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"Order\":[{\"name\":\"maker\",\"type\":\"address\"},{\"name\":\"makeAsset\",\"type\":\"Asset\"},{\"name\":\"taker\",\"type\":\"address\"},{\"name\":\"takeAsset\",\"type\":\"Asset\"},{\"name\":\"salt\",\"type\":\"uint256\"},{\"name\":\"start\",\"type\":\"uint256\"},{\"name\":\"end\",\"type\":\"uint256\"},{\"name\":\"dataType\",\"type\":\"bytes4\"},{\"name\":\"data\",\"type\":\"bytes\"}]},\"message\":{\"maker\":\"0x13edbf878e3dbb91d36d15f9b9e061f72d20b603\",\"makeAsset\":{\"assetType\":{\"assetClass\":\"0x73ad2146\",\"data\":\"0x000000000000000000000000abb3738f04dc2ec20f4ae4462c3d069d02ae045b0000000000000000000000000000000000000000000000000000000000d9c9e8\"},\"value\":\"1\"},\"taker\":\"0xde656841eb0df466a9afb46f15be5b109a879d1f\",\"takeAsset\":{\"assetType\":{\"assetClass\":\"0xaaaebeba\",\"data\":\"0x\"},\"value\":\"1\"},\"salt\":\"0x9b6c77296517496cd44a87d3b4c22e50da500289ae1de7f4f716a7bac6d418f8\",\"start\":0,\"end\":0,\"dataType\":\"0x23d235ef\",\"data\":\"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001cf0df2a5a20cd61d68d4489eebbf85b8d39e18a0000000000000000000000000000000000000000000000000000000000000064\"}}" ] }, "options": ["simulation", "validation"], "metadata": { "domain": "https://boredapeyartclub.com" }, "block": "18370320" } }, "Malicious Approval Transaction": { "summary": "Ethereum - Malicious Approval Transaction", "value": { "chain": "ethereum", "account_address": "0xf60c2ea62edbfe808163751dd0d8693dcb30019c", "data": { "jsonrpc": "2.0", "method": "eth_sendTransaction", "params": [ { "from": "0xf60c2ea62edbfe808163751dd0d8693dcb30019c", "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", "data": "0x095ea7b300000000000000000000000000002644e79602f056b03235106a9963826d0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "value": "0x0000" } ] }, "options": ["simulation", "validation"], "metadata": { "domain": "https://shibicoin.org" }, "block": "18370320" } }, "Malicious Seaport Order": { "summary": "Ethereum - Malicious Seaport Order", "value": { "chain": "ethereum", "account_address": "0x5e1a0d484c5f0de722e82f9dca3a9d5a421d47cb", "data": { "jsonrpc": "2.0", "params": [ "0x5e1a0d484c5f0de722e82f9dca3a9d5a421d47cb", "{\"types\":{\"OrderComponents\":[{\"name\":\"offerer\",\"type\":\"address\"},{\"name\":\"zone\",\"type\":\"address\"},{\"name\":\"offer\",\"type\":\"OfferItem[]\"},{\"name\":\"consideration\",\"type\":\"ConsiderationItem[]\"},{\"name\":\"orderType\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"name\":\"endTime\",\"type\":\"uint256\"},{\"name\":\"zoneHash\",\"type\":\"bytes32\"},{\"name\":\"salt\",\"type\":\"uint256\"},{\"name\":\"conduitKey\",\"type\":\"bytes32\"},{\"name\":\"counter\",\"type\":\"uint256\"}],\"OfferItem\":[{\"name\":\"itemType\",\"type\":\"uint8\"},{\"name\":\"token\",\"type\":\"address\"},{\"name\":\"identifierOrCriteria\",\"type\":\"uint256\"},{\"name\":\"startAmount\",\"type\":\"uint256\"},{\"name\":\"endAmount\",\"type\":\"uint256\"}],\"ConsiderationItem\":[{\"name\":\"itemType\",\"type\":\"uint8\"},{\"name\":\"token\",\"type\":\"address\"},{\"name\":\"identifierOrCriteria\",\"type\":\"uint256\"},{\"name\":\"startAmount\",\"type\":\"uint256\"},{\"name\":\"endAmount\",\"type\":\"uint256\"},{\"name\":\"recipient\",\"type\":\"address\"}],\"EIP712Domain\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"version\",\"type\":\"string\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"verifyingContract\",\"type\":\"address\"}]},\"domain\":{\"name\":\"Seaport\",\"version\":\"1.5\",\"chainId\":\"1\",\"verifyingContract\":\"0x00000000000000adc04c56bf30ac9d3c0aaf14dc\"},\"primaryType\":\"OrderComponents\",\"message\":{\"offerer\":\"0x5e1a0d484c5f0de722e82f9dca3a9d5a421d47cb\",\"zone\":\"0x004c00500000ad104d7dbd00e3ae0a5c00560c00\",\"offer\":[{\"itemType\":\"2\",\"token\":\"0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d\",\"identifierOrCriteria\":\"5312\",\"startAmount\":\"1\",\"endAmount\":\"1\"}],\"consideration\":[{\"itemType\":\"2\",\"token\":\"0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d\",\"identifierOrCriteria\":\"5312\",\"startAmount\":\"1\",\"endAmount\":\"1\",\"recipient\":\"0x66c7b75366947f07b5afd7d795833b0a490a6147\"}],\"orderType\":\"0\",\"startTime\":\"1661790956\",\"endTime\":\"115792089237316195423570985008687907853269984665640564039457584007913129639935\",\"zoneHash\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"salt\":\"14005991189275993846\",\"conduitKey\":\"0x0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000\",\"counter\":\"0\"}}" ], "method": "eth_signTypedData_v4" }, "options": ["simulation", "validation"], "metadata": { "domain": "https://boredapeyartclub.com" }, "block": "18370320" } }, "Malicious DApp Transaction": { "summary": "Ethereum - Malicious DApp Transaction", "value": { "account_address": "0x5dde50bfabe6228af22380a6287b7af4de5fee6e", "chain": "ethereum", "data": { "jsonrpc": "2.0", "method": "eth_sendTransaction", "params": [ { "data": "0x095ea7b300000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc4500000000000000b88e282822ab5ed106947c1c60af583c1741a38e858de00000", "from": "0x5dde50bfabe6228af22380a6287b7af4de5fee6e", "to": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9", "value": "0x0" } ] }, "options": ["simulation", "validation"], "metadata": { "domain": "https://www.outdoorsportman.com" }, "block": "21213745" } }, "Malicious Raw Transaction": { "summary": "Ethereum - Malicious eth_sendRawTransaction", "value": { "chain": "ethereum", "account_address": "0xa72231a5B4BF50B771ae576742Bb522B8683735d", "data": { "jsonrpc": "2.0", "params": [ "0x02f8720180849502f9008506deff923882520894a45341e350cd60400fcb56b32a3bcd6b6768e242878e1bc9bf04000080c080a06be4a917e6b15b02d020a4eefc942b9dea9bf3501203eb8393846ef3ac20137ea03ff4badc2548744cea7495244307745ac4289ec7cf7a401d1e030ff5f52b5c17" ], "method": "eth_sendRawTransaction" }, "options": ["simulation", "validation"], "metadata": { "domain": "https://shibicoin.org" }, "block": "18000000" } }, "Warning User Mistake": { "summary": "BSC - Warning User Mistake", "value": { "chain": "bsc", "account_address": "0x23eedc4c4e6c91d68eb78eea46a94680b8096f37", "data": { "jsonrpc": "2.0", "method": "eth_sendTransaction", "params": [ { "gas": "0x8932", "value": "0x0", "from": "0x23eedc4c4e6c91d68eb78eea46a94680b8096f37", "to": "0x998305efdc264b9674178899fffbb44a47134a76", "data": "0xa9059cbb000000000000000000000000998305efdc264b9674178899fffbb44a47134a76000000000000000000000000000000000000000000000012f939c99edab80000" } ] }, "options": ["validation"], "metadata": { "non_dapp": true }, "block": "37305539" } }, "NFT approval Transaction": { "summary": "Ethereum - NFT Approval", "value": { "chain": "ethereum", "metadata": { "domain": "https://example.xyz" }, "data": { "jsonrpc": "2.0", "method": "eth_sendTransaction", "params": [ { "data": "0xa22cb4650000000000000000000000001e0049783f008a0085193e00003d00cd54003c710000000000000000000000000000000000000000000000000000000000000001", "to": "0xe1dC516B1486Aba548eecD2947A11273518434a4", "from": "0x7CfD2441b0b356c85F183062E5EE9b4d54085052", "value": "0x0" } ] }, "options": ["validation", "simulation", "events"], "block": "18812199" } }, "BSC Malicious Raw Transfer": { "summary": "BSC - Malicious Raw Transfer", "value": { "metadata": { "domain": "https://example.xyz/", "non_dapp": false }, "chain": "bsc", "data": { "jsonrpc": "2.0", "method": "eth_sendTransaction", "params": [ { "chainId": 1, "from": "0x0966602E47F6a3CA5692529F1D54EcD1d9B09175", "to": "0x0A63054930e47814d9fF6071923011CBb9aE6A78", "value": "0x10" } ] }, "options": ["validation"], "account_address": "0x0966602E47F6a3CA5692529F1D54EcD1d9B09175", "block": "37305539" } }, "Linea malicious permit": { "summary": "Linea - Malicious Permit (EIP 712)", "value": { "metadata": { "domain": "https://example.xyz", "chainId": "0xe708" }, "chain": "linea", "block": "798220", "account_address": "0xd7aa9ba6caac7b0436c91396f22ca5a7f31664fc", "data": { "jsonrpc": "2.0", "method": "eth_signTypedData_v4", "params": [ "0xd7aa9ba6caac7b0436c91396f22ca5a7f31664fc", "{\"types\":{\"EIP712Domain\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"version\",\"type\":\"string\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"verifyingContract\",\"type\":\"address\"}],\"Permit\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"},{\"name\":\"nonce\",\"type\":\"uint256\"},{\"name\":\"deadline\",\"type\":\"uint256\"}]},\"primaryType\":\"Permit\",\"domain\":{\"name\":\"USD Coin\",\"verifyingContract\":\"0xa219439258ca9da29e9cc4ce5596924745e12b93\",\"chainId\":59144,\"version\":\"2\"},\"message\":{\"owner\":\"0xd7aa9ba6caac7b0436c91396f22ca5a7f31664fc\",\"spender\":\"0x61935496d2a02935680c87438e68e93b280da565\",\"value\":\"1033366316628\",\"nonce\":1,\"deadline\":1678709555}}" ] }, "options": ["validation", "simulation"] } }, "Ethereum Benign Gnosis": { "summary": "Ethereum - Benign Gnosis Order (EIP 712)", "value": { "block": "17865170", "chain": "ethereum", "account_address": "", "options": ["simulation", "validation"], "data": { "jsonrpc": "2.0", "method": "eth_signTypedData", "params": [ "", "{\"types\":{\"Order\":[{\"name\":\"sellToken\",\"type\":\"address\"},{\"name\":\"buyToken\",\"type\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\"},{\"name\":\"sellAmount\",\"type\":\"uint256\"},{\"name\":\"buyAmount\",\"type\":\"uint256\"},{\"name\":\"validTo\",\"type\":\"uint32\"},{\"name\":\"appData\",\"type\":\"bytes32\"},{\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"name\":\"kind\",\"type\":\"string\"},{\"name\":\"partiallyFillable\",\"type\":\"bool\"},{\"name\":\"sellTokenBalance\",\"type\":\"string\"},{\"name\":\"buyTokenBalance\",\"type\":\"string\"}],\"EIP712Domain\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"version\",\"type\":\"string\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"verifyingContract\",\"type\":\"address\"}]},\"domain\":{\"name\":\"Gnosis Protocol\",\"version\":\"v2\",\"chainId\":\"1\",\"verifyingContract\":\"0x9008d19f58aabd9ed0d60971565aa8510560ab41\"},\"primaryType\":\"Order\",\"message\":{\"sellToken\":\"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48\",\"buyToken\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"receiver\":\"0x33cc1d8539436eacbd13d89edb2636966e33baec\",\"sellAmount\":\"10122091758\",\"buyAmount\":\"10085000000\",\"validTo\":\"1691438670\",\"appData\":\"0xf7afe76740b2e1b5c4395cd9728b4241e99b375141a2680bb2037471a88ff9a0\",\"feeAmount\":\"8632884\",\"kind\":\"buy\",\"partiallyFillable\":false,\"sellTokenBalance\":\"erc20\",\"buyTokenBalance\":\"erc20\"}}" ] }, "metadata": { "domain": "https://swap.cow.fi/" } } }, "Ethereum benign 1inch": { "summary": "Ethereum - Benign 1inch Order (EIP 712)", "value": { "chain": "ethereum", "block": "18333270", "account_address": "", "data": { "jsonrpc": "2.0", "method": "eth_signTypedData", "params": [ "", "{\"primaryType\":\"Order\",\"types\":{\"EIP712Domain\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"version\",\"type\":\"string\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"verifyingContract\",\"type\":\"address\"}],\"Order\":[{\"name\":\"salt\",\"type\":\"uint256\"},{\"name\":\"makerAsset\",\"type\":\"address\"},{\"name\":\"takerAsset\",\"type\":\"address\"},{\"name\":\"maker\",\"type\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\"},{\"name\":\"allowedSender\",\"type\":\"address\"},{\"name\":\"makingAmount\",\"type\":\"uint256\"},{\"name\":\"takingAmount\",\"type\":\"uint256\"},{\"name\":\"offsets\",\"type\":\"uint256\"},{\"name\":\"interactions\",\"type\":\"bytes\"}]},\"domain\":{\"name\":\"1inch Aggregation Router\",\"version\":\"5\",\"chainId\":1,\"verifyingContract\":\"0x1111111254eeb25477b68fb85ed929f73a960582\"},\"message\":{\"salt\":\"48805960945\",\"makerAsset\":\"0x64Bc2cA1Be492bE7185FAA2c8835d9b824c8a194\",\"takerAsset\":\"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\"maker\":\"0xa3BB1dDDCC9EB341b7C9b9fB36FA2d3459f84727\",\"receiver\":\"0x0000000000000000000000000000000000000000\",\"allowedSender\":\"0x0000000000000000000000000000000000000000\",\"makingAmount\":\"15564380000000000000000\",\"takingAmount\":\"4435848300\",\"offsets\":\"4421431254442149611168492388118363282642987198110904030635476664713216\",\"interactions\":\"0xbf15fcd8000000000000000000000000303389f541ff2d620e42832f180a08e767b28e10000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000242cc2878d006527c166000000000c0000a3bb1dddcc9eb341b7c9b9fb36fa2d3459f8472700000000000000000000000000000000000000000000000000000000\"}}" ] }, "options": ["validation", "simulation"], "metadata": { "domain": "https://app.1inch.io" } } }, "Base wallet_sendCalls": { "summary": "Base - wallet_sendCalls", "value": { "chain": "base", "block": "29187404", "options": ["validation", "simulation"], "data": { "jsonrpc": "2.0", "method": "wallet_sendCalls", "params": [ { "from": "0x68FcFa598bA48a8E4A67d64E743abDbCf813aD9E", "calls": [ { "to": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "data": "0x095ea7b30000000000000000000000002e480b1096e5f705cc3e049685846ed3022aa22600000000000000000000000000000000000000000000000000000000564e8554", "value": "0x" }, { "to": "0x2e480b1096e5f705cc3e049685846ed3022aa226", "data": "0xb15e2e9c00000000000000000000000000000000000000000000000000000000000000e047f00b77d3d75ffe1094dab8a1d8f813627471c1050e035e57cd50dc06a6a0be00000000000000000000000068fcfa598ba48a8e4a67d64e743abdbcf813ad9e7e4ad0e17f9bcf36a70a9dcac5b80735e19480d74d557764ec5409fbe392e51c000000000000000000000000b39dca629be804b9e0ec7e6a7802f94f6a7cbb890000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000069ec7fbf1093ea5659d208ba5be1717a4241ca8ad0d196d4bfd3d03a45a800f4000000000000000000000000000000000000000000000000000000000000008900000000000000000000000000000000000000000000000000000000000021050000000000000000000000002e480b1096e5f705cc3e049685846ed3022aa22600000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000564e855400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000005073617d7fad626f14b74bee63f4b3c2afba0d7d00000000000000000000000000000000000000000000000000000000564e85540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", "value": "0x71B861D91AF6" } ] } ] }, "metadata": { "domain": "https://example.xyz" } } }, "EIP-7702 Set Code": { "summary": "EIP-7702 - Set Code Account", "value": { "chain": "ethereum-sepolia", "account_address": "0x95642cf558cf215069ac6359c81b075296a0ddcc", "options": ["simulation"], "block": "7984145", "data": { "jsonrpc": "2.0", "method": "eth_sendTransaction", "origin": "", "params": [ { "from": "0x95642cf558cf215069ac6359c81b075296a0ddcc", "to": "0x692e96a36e9ab238fd7dbfce87677d1e39d2e994", "value": "0x0", "data": "0xcd83603b", "authorization_list": [ { "chainId": "0xaa36a7", "address": "0x14c5506fba519d3ec096dd971ce68db83439df2f", "nonce": "0x2", "yParity": "0x1", "r": "0x9d50e67f20879ba5e79311e305b1d2a9f182c9a21544eec213f0493067c68fa0", "s": "0x5799170dfc9f6b99ffdd75b82614489fb6966fae296128fb89adf5f932b128d1" } ] } ] }, "metadata": { "domain": "https://example.xyz" } } }, "EIP-7702 Set Code without signature": { "summary": "EIP-7702 - Set Code Account without signature", "value": { "chain": "ethereum-sepolia", "account_address": "0x95642cf558cf215069ac6359c81b075296a0ddcc", "options": ["simulation"], "block": "7984145", "data": { "jsonrpc": "2.0", "method": "eth_sendTransaction", "origin": "", "params": [ { "from": "0x95642cf558cf215069ac6359c81b075296a0ddcc", "to": "0x692e96a36e9ab238fd7dbfce87677d1e39d2e994", "value": "0x0", "data": "0xcd83603b", "authorization_list": [ { "chainId": "0xaa36a7", "address": "0x14c5506fba519d3ec096dd971ce68db83439df2f", "nonce": "0x2", "eoa": "0x692E96A36E9Ab238FD7dBFce87677D1E39d2E994" } ] } ] }, "metadata": { "domain": "https://example.xyz" } } }, "EIP-7702 Malicious Upgrade with new empty address": { "summary": "EIP-7702 Malicious Upgrade with new empty address example", "value": { "chain": "ethereum-sepolia", "block": "8020318", "metadata": { "domain": "ORIGIN" }, "options": ["simulation", "validation"], "data": { "jsonrpc": "2.0", "method": "eth_sendTransaction", "origin": "", "params": [ { "data": "0x", "from": "0x426f99291ba267e155d9b9b4fa5d698a23dde108", "to": "0x426f99291ba267e155d9b9b4fa5d698a23dde108", "value": "0x0", "authorization_list": [ { "chainId": "0x0", "address": "0x0000000000000000000000000000000000000000", "nonce": "0x4a", "yParity": "0x0", "r": "0xcb379f711a13aba6afedd116bbacfc856e7b9d3154f71c5f9c1d45f0d2731856", "s": "0x1ba2d22a1f30637ac3bf7bb493e6041c4d004ffe3eaa6865986d264f856c328" } ] } ] } } }, "EIP-7702 Malicious Upgrade to an untrusted address": { "summary": "EIP-7702 Malicious Upgrade to an untrusted address", "value": { "chain": "ethereum", "block": "8095704", "data": { "jsonrpc": "2.0", "method": "eth_sendTransaction", "origin": "", "params": [ { "data": "0x8129fc1c", "from": "0x0665568f397379262c764ff66446c5f7de1e8d1c", "to": "0x0665568f397379262c764ff66446c5f7de1e8d1c", "value": "0x0", "authorization_list": [ { "chainId": "0xaa36a7", "address": "0x00000000cd8b0ab3f6c5ee8a41ff7b2f7c3ebe59", "eoa": "0x0665568f397379262C764Ff66446C5f7De1E8d1c" } ] } ] }, "metadata": { "domain": "ORIGIN" }, "options": ["simulation", "validation"] } }, "Hyperliquid SendAsset": { "summary": "Hyperliquid SendAsset - Cross-chain bridge transfer (EIP-712)", "value": { "chain": "hyperevm", "account_address": "0x5059d5d2e6b2ca4829a7351bd9246b232d8ab31a", "data": { "jsonrpc": "2.0", "method": "eth_signTypedData_v4", "params": [ "0x5059d5d2e6b2ca4829a7351bd9246b232d8ab31a", "{\"types\":{\"EIP712Domain\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"version\",\"type\":\"string\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"verifyingContract\",\"type\":\"address\"}],\"HyperliquidTransaction:SendAsset\":[{\"name\":\"hyperliquidChain\",\"type\":\"string\"},{\"name\":\"destination\",\"type\":\"string\"},{\"name\":\"sourceDex\",\"type\":\"string\"},{\"name\":\"destinationDex\",\"type\":\"string\"},{\"name\":\"token\",\"type\":\"string\"},{\"name\":\"amount\",\"type\":\"string\"},{\"name\":\"fromSubAccount\",\"type\":\"string\"},{\"name\":\"nonce\",\"type\":\"uint64\"}]},\"domain\":{\"name\":\"HyperliquidSignTransaction\",\"version\":\"1\",\"chainId\":999,\"verifyingContract\":\"0x0000000000000000000000000000000000000000\"},\"primaryType\":\"HyperliquidTransaction:SendAsset\",\"message\":{\"hyperliquidChain\":\"Mainnet\",\"destination\":\"0x1111111111111111111111111111111111111111\",\"sourceDex\":\"spot\",\"destinationDex\":\"spot\",\"token\":\"USDC:0x6d1e7cde53ba9467b783cb7c530ce054\",\"amount\":\"10.0\",\"fromSubAccount\":\"\",\"nonce\":1776342392991}}" ] }, "options": ["simulation", "validation"], "metadata": { "domain": "https://app.hyperliquid.xyz" } } } } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/routers__evm__response__TransactionScanResponse" }, "examples": { "Ethereum - Seaport Farming": { "value": { "validation": { "result_type": "Malicious", "description": "A known malicious address is involved in the transaction", "reason": "seaport_farming", "features": [] }, "simulation": { "assets_diffs": { "0x5E1a0D484c5F0DE722E82f9dca3A9d5A421d47cB": [ { "asset": { "type": "NATIVE", "name": "Ether", "symbol": "ETH", "chain_name": "Ethereum Mainnet", "chain_id": 1, "decimals": 18 }, "in": [ { "usd_price": "1.645988685000000062", "summary": "Received 0.001 ETH", "value": "0.001", "raw_value": "0x38d7ea4c68000" } ], "out": [] }, { "asset": { "type": "ERC721", "name": "BoredApeYachtClub", "symbol": "BAYC", "address": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D" }, "in": [], "out": [ { "usd_price": "39859.294199999996635597", "summary": "Sent BoredApeYachtClub #5312", "token_id": "0x14c0" } ] } ], "0x1111222233334444555566667777888899990000": [ { "asset": { "type": "NATIVE", "name": "Ether", "symbol": "ETH", "chain_name": "Ethereum Mainnet", "chain_id": 1, "decimals": 18 }, "in": [], "out": [ { "usd_price": "1.645988685000000062", "summary": "Sent 0.001 ETH", "value": "0.001", "raw_value": "0x38d7ea4c68000" } ] } ], "0xa9cfc982A66D0134FEe2539cFd633559Fb5cf9a0": [ { "asset": { "type": "ERC721", "name": "BoredApeYachtClub", "symbol": "BAYC", "address": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D" }, "in": [ { "usd_price": "39859.294199999996635597", "summary": "Received BoredApeYachtClub #5312", "token_id": "0x14c0" } ], "out": [] } ] }, "transaction_actions": [ "approval", "native_transfer", "token_transfer" ], "total_usd_diff": { "0x1111222233334444555566667777888899990000": { "in": "0.0", "out": "1.645988685000000062", "total": "-1.645988685000000062" }, "0x5E1a0D484c5F0DE722E82f9dca3A9d5A421d47cB": { "in": "1.645988685000000062", "out": "39859.294199999996635597", "total": "-39857.648211314997752197" }, "0xa9cfc982A66D0134FEe2539cFd633559Fb5cf9a0": { "in": "39859.294199999996635597", "out": "0.0", "total": "39859.294199999996635597" } }, "exposures": {}, "total_usd_exposure": {}, "address_details": { "0x1111222233334444555566667777888899990000": {}, "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D": { "name_tag": "Bored Ape Yacht Club: BAYC Token", "contract_name": "BoredApeYachtClub" }, "0x5E1a0D484c5F0DE722E82f9dca3A9d5A421d47cB": {}, "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC": { "name_tag": "Seaport 1.5", "contract_name": "Seaport" }, "0xa9cfc982A66D0134FEe2539cFd633559Fb5cf9a0": { "name_tag": "Fake_Phishing7802" } } } } }, "Hyperliquid SendAsset - Bridge Transfer": { "value": { "validation": { "result_type": "Benign", "description": "", "features": [] }, "simulation": { "status": "Success", "assets_diffs": {}, "transaction_actions": ["bridge"], "total_usd_diff": {}, "exposures": {}, "total_usd_exposure": {}, "address_details": { "0x5059d5d2e6b2ca4829a7351bd9246b232d8ab31a": {} }, "account_summary": { "assets_diffs": [ { "asset_type": "ERC20", "asset": { "type": "ERC20", "address": "0x6d1e7cde53ba9467b783cb7c530ce054", "name": "USD Coin", "symbol": "USDC", "decimals": 8, "logo_url": "" }, "in": [], "out": [ { "raw_value": "1000000000", "value": "10.0", "usd_price": "10.0", "summary": "Sent 10.0 USDC" } ] } ], "traces": [ { "type": "BridgeAssetTrace", "bridge_type": "hyperliquid_l1_transfer", "display_name": "Hyperliquid Send (Spot -> Spot)", "logo_url": null, "source": { "chain": "hyperliquid", "address": "0x5059d5d2e6b2ca4829a7351bd9246b232d8ab31a", "asset_type": "FUNGIBLE", "asset": { "type": "ERC20", "address": "0x6d1e7cde53ba9467b783cb7c530ce054", "name": "USD Coin", "symbol": "USDC", "decimals": 8, "logo_url": "" }, "diff": { "raw_value": "1000000000", "value": "10.0", "usd_price": "10.0" } }, "destinations": [ { "chain": "hyperliquid", "address": "0x1111111111111111111111111111111111111111", "asset_type": "FUNGIBLE", "asset": { "type": "ERC20", "address": "0x6d1e7cde53ba9467b783cb7c530ce054", "name": "USD Coin", "symbol": "USDC", "decimals": 8, "logo_url": "" }, "diff": { "raw_value": "1000000000", "value": "10.0", "usd_price": "10.0" } } ] } ], "total_usd_diff": { "in": "0.0", "out": "10.0", "total": "-10.0" } }, "session_key": {}, "cross_chain_asset_diffs": [ { "address": "0x5059d5d2e6b2ca4829a7351bd9246b232d8ab31a", "obj": [ { "chain": "hyperliquid", "asset_type": "FUNGIBLE", "asset": { "type": "ERC20", "address": "0x6d1e7cde53ba9467b783cb7c530ce054", "name": "USD Coin", "symbol": "USDC", "decimals": 8, "logo_url": "" }, "in": [], "out": [ { "raw_value": "1000000000", "value": "10.0", "usd_price": "10.0", "summary": "Sent 10.0 USDC" } ] } ] }, { "address": "0x1111111111111111111111111111111111111111", "obj": [ { "chain": "hyperliquid", "asset_type": "FUNGIBLE", "asset": { "type": "ERC20", "address": "0x6d1e7cde53ba9467b783cb7c530ce054", "name": "USD Coin", "symbol": "USDC", "decimals": 8, "logo_url": "" }, "in": [ { "raw_value": "1000000000", "value": "10.0", "usd_price": "10.0", "summary": "Received 10.0 USDC" } ], "out": [] } ] } ] } } } } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/evm/transaction/scan": { "post": { "tags": ["EVM"], "summary": "Scan Transaction", "description": "Get a risk recommendation with plain-language reasons for a transaction.", "operationId": "scan-transaction", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/routers__evm__transaction__models__TransactionRequest" }, "examples": { "Malicious Transfer Transaction": { "summary": "Ethereum - Malicious Transfer Transaction", "value": { "chain": "ethereum", "data": { "from": "0x5e1a0d484c5f0de722e82f9dca3a9d5a421d47cb", "to": "0x0d524a5b52737c0a02880d5e84f7d20b8d66bfba", "data": "0x", "value": "0x1000000000000000" }, "options": ["simulation", "validation"], "metadata": { "domain": "https://boredapeyartclub.com" }, "block": "21211118" } }, "Malicious Approval Transaction": { "summary": "Ethereum - Malicious Approval Transaction", "value": { "chain": "ethereum", "data": { "from": "0xf60c2ea62edbfe808163751dd0d8693dcb30019c", "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", "data": "0x095ea7b300000000000000000000000000002644e79602f056b03235106a9963826d0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "value": "0x0000", "nonce": "0x1a2bd4" }, "options": ["simulation", "validation"], "metadata": { "domain": "ORIGIN" }, "block": "22515162" } }, "Malicious DApp Transaction": { "summary": "Ethereum - Malicious DApp Transaction", "value": { "chain": "ethereum", "data": { "data": "0x095ea7b300000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc4500000000000000b88e282822ab5ed106947c1c60af583c1741a38e858de00000", "from": "0x5dde50bfabe6228af22380a6287b7af4de5fee6e", "to": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9", "value": "0x0" }, "metadata": { "domain": "https://www.outdoorsportman.com" }, "options": ["validation", "simulation"], "block": "21213745" } }, "Benign Uniswap Transaction": { "summary": "Ethereum - Benign Uniswap Transaction", "value": { "chain": "ethereum", "data": { "data": "0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000652272e300000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000214e8348c4f0000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000214e8348c4f0000000000000000000000000000000000000000000000003a23acd9c16f105fe55000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000004277d9ef01fe530d453a1c310a77315fad3f1d24", "from": "0x95785ddb6b7c2069520a547bda324359600fee01", "to": "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad", "value": "0x214e8348c4f0000" }, "metadata": { "domain": "https://app.uniswap.org" }, "options": ["validation", "simulation"], "block": "18304655" } }, "EIP-7702 Malicious Upgrade to an untrusted address": { "summary": "EIP-7702 Malicious Upgrade to an untrusted address", "value": { "chain": "ethereum", "block": "8095704", "data": { "data": "0x8129fc1c", "from": "0x0665568f397379262c764ff66446c5f7de1e8d1c", "to": "0x0665568f397379262c764ff66446c5f7de1e8d1c", "value": "0x0", "authorization_list": [ { "chainId": "0xaa36a7", "address": "0x00000000cd8b0ab3f6c5ee8a41ff7b2f7c3ebe59", "eoa": "0x0665568f397379262C764Ff66446C5f7De1E8d1c" } ] }, "metadata": { "domain": "ORIGIN" }, "options": ["simulation", "validation"] } }, "EIP-7702 Malicious Upgrade with new empty address": { "summary": "EIP-7702 Malicious Upgrade with new empty address example", "value": { "chain": "ethereum-sepolia", "block": "8020318", "metadata": { "domain": "ORIGIN" }, "options": ["simulation", "validation"], "data": { "data": "0x", "from": "0x426f99291ba267e155d9b9b4fa5d698a23dde108", "to": "0x426f99291ba267e155d9b9b4fa5d698a23dde108", "value": "0x0", "authorization_list": [ { "chainId": "0x0", "address": "0x0000000000000000000000000000000000000000", "nonce": "0x4a", "yParity": "0x0", "r": "0xcb379f711a13aba6afedd116bbacfc856e7b9d3154f71c5f9c1d45f0d2731856", "s": "0x1ba2d22a1f30637ac3bf7bb493e6041c4d004ffe3eaa6865986d264f856c328" } ] } } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/routers__evm__response__TransactionScanResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/evm/transaction/report": { "post": { "tags": ["EVM"], "summary": "Report Transaction", "description": "Report a misclassification of a transaction.", "operationId": "transaction-report", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReportRequest_TransactionReportParams_" }, "examples": { "Transaction report request_id example": { "summary": "Transaction report request_id example", "value": { "event": "FALSE_POSITIVE", "report": { "type": "request_id", "request_id": "11111111-1111-1111-1111-111111111111" }, "details": "Details about the report" } }, "Transaction report params example": { "summary": "Transaction report params example", "value": { "event": "FALSE_NEGATIVE", "report": { "type": "params", "params": { "chain": "ethereum", "account_address": "0x49c73c9d361c04769a452E85D343b41aC38e0EE4", "data": { "method": "eth_signTypedData_v4", "params": [ "0x49c73c9d361c04769a452E85D343b41aC38e0EE4", "{\"domain\":{\"chainId\":1,\"name\":\"Aave interest bearing WETH\",\"version\":\"1\",\"verifyingContract\":\"0x030ba81f1c18d280636f32af80b9aad02cf0854e\"},\"message\":{\"owner\":\"0x49c73c9d361c04769a452E85D343b41aC38e0EE4\",\"spender\":\"0xa74cbd5b80f73b5950768c8dc467f1c6307c00fd\",\"value\":\"115792089237316195423570985008687907853269984665640564039457584007913129639935\",\"nonce\":\"0\",\"deadline\":\"1988064000\",\"holder\":\"0x49c73c9d361c04769a452E85D343b41aC38e0EE4\"},\"primaryType\":\"Permit\",\"types\":{\"EIP712Domain\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"version\",\"type\":\"string\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"verifyingContract\",\"type\":\"address\"}],\"Permit\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"},{\"name\":\"nonce\",\"type\":\"uint256\"},{\"name\":\"deadline\",\"type\":\"uint256\"}]}}" ] }, "metadata": { "domain": "https://boredapeyartclub.com" } } }, "details": "Details about the report" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/evm/transaction-bulk/scan": { "post": { "tags": ["EVM"], "summary": "Scan Bulk of Transactions", "description": "Get a risk recommendation with plain-language reasons for a bulk of transactions.", "operationId": "scan-transaction-bulk", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransactionBulkRequest" }, "examples": { "Ethereum - Bulk Transaction Example": { "value": { "chain": "ethereum", "account_address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", "data": [ { "data": "0x", "value": "0x100000000000", "to": "0xA4e5961B58DBE487639929643dCB1Dc3848dAF5E", "from": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" }, { "data": "0x", "value": "0xdeadbeef", "to": "0x0D524a5B52737C0a02880d5E84F7D20b8d66bfba", "from": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" } ], "block": "20224477", "metadata": { "domain": "https://example.com" }, "options": ["validation"] } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/routers__evm__response__TransactionScanResponse" }, "type": "array", "title": "Response Scan-Transaction-Bulk" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/evm/transaction-raw/scan": { "post": { "tags": ["EVM"], "summary": "Scan Raw Transaction", "description": "Get a risk recommendation with plain-language reasons for a raw transaction.", "operationId": "scan-raw-transaction", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RawTransactionRequest" }, "examples": { "Bengin": { "summary": "Ethereum - Bengin Raw Transaction", "value": { "chain": "ethereum", "data": "0x02f903f8018208488405f5e100850a9a03feb38302fa6a941111111254eeb25477b68fb85ed929f73a96058280b9038862e238bb00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab3e25398a24d6af080000000000000000000000000000000000000000000000000000000070db68f000000000000000000000000000000000000000000000000000000c0c2f020e4000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006e2a43be0b1d33b726f0ca3b8de60b3482b8b050000000000000000000000000b78ed0dd769e3fbd8e2b526f6f75dcccc7e2af4f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000b4b34aede8e617e060000000a4000000a4000000a4000000a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000a4bf15fcd8000000000000000000000000303389f541ff2d620e42832f180a08e767b28e10000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000242cc2878d0064b6509600000000060000b78ed0dd769e3fbd8e2b526f6f75dcccc7e2af4f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a946fd8d5b9e873563a1411cbdf290b8310d8cdddc94da3aebf95b16a6dc0bf56d736ece63e3906527b7dcf08aa845d6a5cd4e0d99c9994f617b6faa378317f71c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e26b9977c001a0386a78e05b5ab3b4badbae843aaa6ed379b2f4353aa730c8f360141e72cba692a036ed37a00c6364685e58bc0cd9cdd1c140d6690c3c0d216c1b67e3d262e2f0f9", "options": ["simulation", "validation"], "metadata": { "domain": "https://app.1inch.io" }, "account_address": "0x362320f3a3eeeb4c4699b1b9062a84B2612bcdba", "block": "17718858" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/routers__evm__response__TransactionScanResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/evm/user-operation/scan": { "post": { "tags": ["EVM"], "summary": "Scan User Operation", "description": "Get a risk recommendation with plain-language reasons for a user operation.", "operationId": "scan-user-operations", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserOperationRequest" }, "examples": { "Base Sepolia": { "summary": "Base Sepolia - Sample User Operation", "value": { "chain": "base-sepolia", "block": "0x5c6fd5", "data": { "operation": { "sender": "0x77bA5AC3ca4864be26CA3112baDf07286CcC3324", "nonce": "0x22", "init_code": "0x", "call_data": "0x51945447000000000000000000000000aeed57a826a998f9388ce2fd6cdb0b6aa75e3d190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b300000000000000000000000050a9266605ba303b659ff105919205570f2af971000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000", "call_gas_limit": "0x3c38", "verification_gas_limit": "0x1659f", "pre_verification_gas": "0x2496ebc", "max_fee_per_gas": "0x218fe7", "max_priority_fee_per_gas": "0xf4240", "paymaster_and_data": "0x9d6ac51b972544251fcc0f2902e633e3f9bd3f290000000000000000000000000000000000000000000000000000000065cc4c990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001eb8343d03ec9fc28a877c2fcad21d9923c56e6ad156ea6647282a35ce215c931f9fbdf3bec37168f9c9b49e33a0818731c5892ff626852f9465e619538540221c", "signature": "0x" }, "entrypoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789" }, "account_address": "0x77bA5AC3ca4864be26CA3112baDf07286CcC3324", "options": ["simulation", "validation"], "metadata": { "domain": "example.com" } } }, "Polygon": { "summary": "Polygon - Sample User Operation", "value": { "chain": "polygon", "block": "0x31b8ea6", "data": { "operation": { "sender": "0x16EF36EeE2935a8e4990142A6e540BEE76AE61a9", "nonce": "0x2", "init_code": "0x", "call_data": "0x519454470000000000000000000000008ae01fcf7c655655ff2c6ef907b8b4718ab4e17c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000006848d80ff0a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000063200385eeac5cb85a38a9a07a70c73e0a3271cfb54a700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000001231deb6f5749ef6ce6943a275a1d3e7486f4eae0000000000000000000000000000000000000000000000001ca76e88c68ea3d4001231deb6f5749ef6ce6943a275a1d3e7486f4eae000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005444630a0d8fae263e80cdb1993543d3c11e4dc8946c28124b56a3d6342f227ee804fa7bda500000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000016ef36eee2935a8e4990142a6e540bee76ae61a900000000000000000000000000000000000000000000000020f32a9d5e942c3d0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000c6379626572636f6e6e6563740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a307830303030303030303030303030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000bd6c7b0d2f68c2b7805d88388319cfb6ecb50ea9000000000000000000000000bd6c7b0d2f68c2b7805d88388319cfb6ecb50ea9000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a7000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000001ca76e88c68ea3d400000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000084eedd56e1000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a700000000000000000000000000000000000000000000000000368ea97f4cff320000000000000000000000000000000000000000000000000009a0b47fe06945000000000000000000000000e906b91103d216420f7ae13b29fde73ce9c206cd000000000000000000000000000000000000000000000000000000000000000000000000000000001111111254eeb25477b68fb85ed929f73a9605820000000000000000000000001111111254eeb25477b68fb85ed929f73a960582000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c673f2ac7613b5b00000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c80502b1c5000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000001c673f2ac7613b5b00000000000000000000000000000000000000000000000020f32a9d5e942c3d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001c0000000000000003b6d03401366c529a133d4153211410126f12aa4e31aaac52e9b3012000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "call_gas_limit": "0x5fdbc", "verification_gas_limit": "0x1b121", "pre_verification_gas": "0xe5e4", "max_fee_per_gas": "0x19bbcde6a6", "max_priority_fee_per_gas": "0xe1fbabcba", "paymaster_and_data": "0xe3dc822d77f8ca7ac74c30b0dffea9fcdcaaa32100000000000000000000000000000000000000000000000000000000659dcae7000000000000000000000000000000000000000000000000000000000000000027e9dcbd41dd73d351521d3cff2d29d01e24747e4d37c35a8df6c13234b1b0497b2885d3ec48006b608ed3673ec3b5421769f2bb9255c1a46913f6a15c6681cb1b", "signature": "0x" }, "entrypoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789" }, "account_address": "0x16EF36EeE2935a8e4990142A6e540BEE76AE61a9", "options": ["simulation", "validation"], "metadata": { "domain": "example.com" } } }, "Ethereum Sepolia - EIP-7702": { "summary": "Ethereum Sepolia - EIP-7702 User Operation", "value": { "metadata": { "domain": "example.com" }, "chain": "11155111", "block": "8963229", "options": ["simulation", "validation"], "data": { "entrypoint": "0x0000000071727De22E5E9d8BAf0edAc6f37da032", "operation": { "sender": "0xA0fF6E9b1E36dbab38a1D9787498d9FB193D2DDd", "nonce": "0x0", "signature": "0x", "account_gas_limits": "0x0000000000000000000000000000f09100000000000000000000000000004623", "call_data": "0xe9ae5c530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000348Bfa9Af212184c8D89CEbD2321829B880Bd133040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "gas_fees": "0x00000000000000000000000000178bc90000000000000000000000000157ce91", "init_code": "0x", "paymaster_and_data": "0x777777777777aec03fd955926dbf81597e66834c00000000000000000000000000006ed800000000000000000000000000000001010000689a47ad0000000000006454db74b0aebdb1a9b7996012a06f5085e37e787c4355a91fffe2f94df400b67b0adbb1717f29b4831c0a7126160eb26af82ce701799f964d455528cfc68d301c", "pre_verification_gas": "0x130b8", "eip7702_auth": { "address": "0xd6CEDDe84be40893d153Be9d467CD6aD37875b28", "chainId": "0xaa36a7", "nonce": "0x0", "r": "0x03fcf6efa6c681fc9bf2d81382d1d5867aaee1d520359148b71b118829588331", "s": "0x4153e720ada784797602ff89633911a84f8c4f5ea06657435a4d74d56b87f98f", "yParity": "0x1" } } } } }, "Ethereum - Missing Gas and ERC20": { "summary": "Ethereum - Missing Gas and ERC20", "value": { "chain": "ethereum", "metadata": { "domain": "https://wallet.coinbase.com" }, "account_address": "0x4acFF5AE728EfF18Fb475da4c8E830c30CDA48Af", "data": { "operation": { "sender": "0x4acFF5AE728EfF18Fb475da4c8E830c30CDA48Af", "nonce": "0x0", "init_code": "0xba5ed110efdba3d005bfc882d75358acbbb858423ffba36f000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000405dfc8f05b96f3abd556d55d87039413915afe3acf4dd3a97fa59af496433a7eb0494b599439de20b334ca598aca7d17ab71a676cf1e841b4d8484b9a0887effd0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f85210b21cc50302f477ba56686d2019dc9b67ade15b0a8c44ecad456533d0110ead2ce0e15b0a8c44ecad456533d0110ead2ce0", "call_data": "0x34fcd5be000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000093790df8087d2c54465189008d5321ba9cf3b2cf000000000000000000000000000000000000000000000000000000005f39786800000000000000000000000000000000000000000000000000000000e15b0a8c44ecad456533d0110ead2ce0", "call_gas_limit": "0xdb63", "verification_gas_limit": "0xad292", "pre_verification_gas": "0x1c620", "max_fee_per_gas": "0x97dfce68", "max_priority_fee_per_gas": "0x5d21dba0", "paymaster_and_data": "0x", "signature": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000001949fc7c88032b9fcb5f6efc7a7b8c63668eae9871b765e23123bb473ff57aa831a7c0d9276168ebcc29f2875a0239cffdf2a9cd1c2007c5c77c071db9264df1d000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97630500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008a7b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a2273496a396e6164474850596759334b7156384f7a4a666c726275504b474f716d59576f4d57516869467773222c226f726967696e223a2268747470733a2f2f7369676e2e636f696e626173652e636f6d222c2263726f73734f726967696e223a66616c73657d00000000000000000000000000000000000000000000" }, "entrypoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789" }, "options": ["simulation", "validation"], "block": "23175211", "should_calculate_missing_balance": true } }, "Base - Missing ERC20": { "summary": "Base - Missing ERC20", "value": { "account_address": "0x5fdd271cAC4f954caD0d68B155d844a8bf75742d", "block": "22370798", "chain": "ethereum", "data": { "entrypoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", "operation": { "call_data": "0x34fcd5be000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000007ad76758c733634edb008bc610d42dd1057b2f0200000000000000000000000000000000000000000000000000000000ea43b74000000000000000000000000000000000000000000000000000000000e15b0a8c44ecad456533d0110ead2ce0", "call_gas_limit": "0x8bb8", "init_code": "0x", "max_fee_per_gas": "0x7effbb02", "max_priority_fee_per_gas": "0x5d21dba0", "nonce": "0x4", "paymaster_and_data": "0x", "pre_verification_gas": "0x1abf8", "sender": "0x5fdd271cAC4f954caD0d68B155d844a8bf75742d", "verification_gas_limit": "0x8c19a" } }, "should_calculate_missing_balance": true, "metadata": { "domain": "https://app.getwink.io" }, "options": ["simulation", "validation"] } }, "Ethereum - Calculate and Use Gas Estimation": { "summary": "Ethereum - Using Gas Estimation", "value": { "account_address": "0x1A40fA10b2ba6D9F8eCA8190F996B558DAd10Cbb", "block": "19275219", "chain": "ethereum", "data": { "entrypoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", "operation": { "sender": "0x1A40fA10b2ba6D9F8eCA8190F996B558DAd10Cbb", "nonce": "0x20", "init_code": "0x", "call_data": "0x940d3c600000000000000000000000008ae01fcf7c655655ff2c6ef907b8b4718ab4e17c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e48d80ff0a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000009900e92344b4edf545f3209094b192e46600a19e7c2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000aae7489bcf33abdb0deba7e0b3a2727e8340e3a9000000000000000000000000000000000000000000000052fbda442ba007a2b70000000000000000000000000000000000000000000000000000000000000000000000", "max_fee_per_gas": "0xee106c4b7", "max_priority_fee_per_gas": "0xa57183", "paymaster_and_data": "0x9d6ac51b972544251fcc0f2902e633e3f9bd3f290000000000000000000000000000000000000000000000000000000065d5d3fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c41696fe7c2f9baa870647325fc6288d7df1a96a234e7f65f5ed6b572b73ece0ffe8cd17e901e2d262ac62dd98d18ca2698321fed55cdcdaf9c933b5cd15f6a1c", "signature": "0x" } }, "metadata": { "domain": "" }, "options": ["validation", "simulation", "gas_estimation"], "simulate_with_estimated_gas": true } } } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/routers__evm__response__TransactionScanResponse" }, "examples": { "Ethereum - Seaport Farming": { "value": { "validation": { "result_type": "Malicious", "description": "A known malicious address is involved in the transaction", "reason": "seaport_farming", "features": [] }, "simulation": { "assets_diffs": { "0x5E1a0D484c5F0DE722E82f9dca3A9d5A421d47cB": [ { "asset": { "type": "NATIVE", "name": "Ether", "symbol": "ETH", "chain_name": "Ethereum Mainnet", "chain_id": 1, "decimals": 18 }, "in": [ { "usd_price": "1.645988685000000062", "summary": "Received 0.001 ETH", "value": "0.001", "raw_value": "0x38d7ea4c68000" } ], "out": [] }, { "asset": { "type": "ERC721", "name": "BoredApeYachtClub", "symbol": "BAYC", "address": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D" }, "in": [], "out": [ { "usd_price": "39859.294199999996635597", "summary": "Sent BoredApeYachtClub #5312", "token_id": "0x14c0" } ] } ], "0x1111222233334444555566667777888899990000": [ { "asset": { "type": "NATIVE", "name": "Ether", "symbol": "ETH", "chain_name": "Ethereum Mainnet", "chain_id": 1, "decimals": 18 }, "in": [], "out": [ { "usd_price": "1.645988685000000062", "summary": "Sent 0.001 ETH", "value": "0.001", "raw_value": "0x38d7ea4c68000" } ] } ], "0xa9cfc982A66D0134FEe2539cFd633559Fb5cf9a0": [ { "asset": { "type": "ERC721", "name": "BoredApeYachtClub", "symbol": "BAYC", "address": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D" }, "in": [ { "usd_price": "39859.294199999996635597", "summary": "Received BoredApeYachtClub #5312", "token_id": "0x14c0" } ], "out": [] } ] }, "transaction_actions": [ "approval", "native_transfer", "token_transfer" ], "total_usd_diff": { "0x1111222233334444555566667777888899990000": { "in": "0.0", "out": "1.645988685000000062", "total": "-1.645988685000000062" }, "0x5E1a0D484c5F0DE722E82f9dca3A9d5A421d47cB": { "in": "1.645988685000000062", "out": "39859.294199999996635597", "total": "-39857.648211314997752197" }, "0xa9cfc982A66D0134FEe2539cFd633559Fb5cf9a0": { "in": "39859.294199999996635597", "out": "0.0", "total": "39859.294199999996635597" } }, "exposures": {}, "total_usd_exposure": {}, "address_details": { "0x1111222233334444555566667777888899990000": {}, "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D": { "name_tag": "Bored Ape Yacht Club: BAYC Token", "contract_name": "BoredApeYachtClub" }, "0x5E1a0D484c5F0DE722E82f9dca3A9d5A421d47cB": {}, "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC": { "name_tag": "Seaport 1.5", "contract_name": "Seaport" }, "0xa9cfc982A66D0134FEe2539cFd633559Fb5cf9a0": { "name_tag": "Fake_Phishing7802" } } } } } } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/evm/post-transaction/scan": { "post": { "tags": ["EVM"], "summary": "Scan Post-Transaction", "description": "Scan a transaction that was already executed on chain, returns validation with features indicating address poisoning entites and malicious operators.", "operationId": "scan-post-transaction", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PostTransactionRequest" }, "examples": { "ERC20 address poisoning": { "summary": "ERC20 Transfer Address Poisoning", "value": { "metadata": { "non_dapp": true }, "chain": "ethereum", "options": ["validation", "simulation"], "data": { "tx_hash": "0xc01780dadc107754b331250b4797606949cb3d0087facc0a737122d5e973c83c" } } }, "Raw ether address poisoning": { "summary": "Raw Ether Transfer Address Poisoning", "value": { "metadata": { "non_dapp": true }, "chain": "ethereum", "options": ["validation", "simulation"], "data": { "tx_hash": "0x11c865addc39f1e1c4f0f6c9a84533c501e3705a6397988af942b2103d5e87a2" } } }, "Benign transaction": { "summary": "Benign Post-Transaction", "value": { "metadata": { "non_dapp": true }, "chain": "ethereum", "options": ["validation", "simulation"], "data": { "tx_hash": "0x91588e659ab4a5611fd6ae1d407884832e26567840346617a1fdefb92604ff7d" } } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/routers__evm__response__TransactionScanResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/evm/post-transaction/report": { "post": { "tags": ["EVM"], "summary": "Report Post Transaction", "description": "Report a misclassification of an EVM post transaction.", "operationId": "evm-post-transaction-report", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReportRequest_ChainTransactionHashParams_" }, "examples": { "Evm post transaction report request_id example": { "summary": "Evm post transaction report request_id example", "value": { "event": "FALSE_NEGATIVE", "report": { "type": "request_id", "request_id": "11111111-1111-1111-1111-111111111111" }, "details": "Details about the report" } }, "Evm post transaction report params example": { "summary": "Evm post transaction report params example", "value": { "event": "FALSE_POSITIVE", "report": { "type": "params", "params": { "chain": "ethereum", "tx_hash": "0x59afab071f7e7abc526e281accd4ad5a29b78d84f4502274bb0d7e1d1937dd6d" } }, "details": "Details about the report" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/evm/post-transaction-bulk/scan": { "post": { "tags": ["EVM"], "summary": "Scan Bulk of Post-Transactions", "description": "Scan transactions that were already executed on chain, returns validation with features indicating address poisoning entites and malicious operators.", "operationId": "scan-post-transaction-bulk", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PostTransactionBulkRequest" }, "examples": { "Bulk Post-Transaction example": { "summary": "Bulk Post-Transaction example", "value": { "metadata": { "non_dapp": true }, "chain": "ethereum", "options": ["validation", "simulation"], "data": [ "0x11c865addc39f1e1c4f0f6c9a84533c501e3705a6397988af942b2103d5e87a2", "0x50a109a2c2dd396e49710613dcf652728656055d90f80094f10c3ddd05150d2e" ] } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/routers__evm__response__TransactionScanResponse" }, "type": "array", "title": "Response Scan-Post-Transaction-Bulk" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/transaction/scan": { "post": { "tags": ["Crypto Fraud Prevention"], "summary": "Scan Transaction", "description": "Gets a transaction and returns a full security assessment indicating whether or not the transaction is malicious, along with textual reasons explaining why it was flagged as such.", "operationId": "scan-transaction-chain-agnostic", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransactionScanRequest" }, "examples": { "Bitcoin Malicious Transaction": { "summary": "Bitcoin - Malicious Transaction", "value": { "options": ["validation"], "data": { "chain": "bitcoin", "transaction_action": "withdrawal", "asset": { "symbol": "BTC" }, "to": "bc1qanrfutwqh854g74lqrygr55jkgf99em4lpfm80", "amount": 1 }, "metadata": { "account": { "account_id": "1" }, "connection": { "user_agent": "1", "ip_address": "1.1.1.1" } } } }, "Bitcoin High Risk Transaction": { "summary": "Bitcoin - High Risk Transaction", "value": { "options": ["validation"], "data": { "chain": "bitcoin", "transaction_action": "withdrawal", "asset": { "symbol": "BTC" }, "to": "bc1qvn5pv6rwn9ps3m8rwfm2ffg6wc4hnzve9mgem5", "amount": 1 }, "metadata": { "connection": { "user_agent": "1", "ip_address": "1.1.1.1" } } } }, "Bitcoin Warning Transaction": { "summary": "Bitcoin - Warning Transaction", "value": { "options": ["validation"], "data": { "chain": "bitcoin", "asset": { "symbol": "BTC" }, "to": "19rioPBg9n8TXobb2rKzwxM71jgArShVPd", "amount": 1 }, "metadata": { "connection": { "user_agent": "1", "ip_address": "1.1.1.1" } } } }, "Bitcoin Benign Transaction": { "summary": "Bitcoin - Benign Transaction", "value": { "options": ["validation"], "data": { "chain": "bitcoin", "transaction_action": "withdrawal", "asset": { "symbol": "BTC" }, "to": "3Eif1JfqeMERRsQHtvGEacNN9hhuvnsfe9", "amount": 1 }, "metadata": { "connection": { "user_agent": "1", "ip_address": "1.1.1.1" } } } }, "Ethereum Malicious Transaction": { "summary": "Ethereum - Malicious Transaction", "value": { "options": ["validation"], "data": { "chain": "ethereum", "transaction_action": "withdrawal", "asset": { "symbol": "ETH" }, "to": "0x0a5738064da9dda3cf4a4ae8d8e49b16fd7467c5", "amount": 1 }, "metadata": { "account": { "account_id": "1" } } } }, "Ethereum High Risk Transaction": { "summary": "Ethereum - High Risk Transaction", "value": { "options": ["validation"], "data": { "chain": "ethereum", "transaction_action": "withdrawal", "asset": { "symbol": "ETH" }, "to": "0x6174307e0eea8e26a62240b2b8b5d32d7edb0203", "amount": 1 }, "metadata": { "account": { "account_id": "1" } } } }, "Ethereum Warning Transaction": { "summary": "Ethereum - Warning Transaction", "value": { "options": ["validation"], "data": { "chain": "ethereum", "transaction_action": "withdrawal", "asset": { "symbol": "ETH" }, "to": "0x3b60e3a06af5aa4da178aade658211a0d3f51222", "amount": 1 }, "metadata": { "account": { "account_id": "1" } } } }, "Solana Malicious Transaction": { "summary": "Solana - Malicious Transaction", "value": { "options": ["validation"], "data": { "chain": "solana", "transaction_action": "withdrawal", "asset": { "symbol": "SOL" }, "to": "6KH26MJdg4YNrNezy6wDwK5Mn3whNo6nn12nVcyzHF7", "amount": 1 }, "metadata": { "account": { "account_id": "1" } } } }, "Solana High Risk Transaction": { "summary": "Solana - High Risk Transaction", "value": { "options": ["validation"], "data": { "chain": "solana", "asset": { "symbol": "SOL" }, "to": "7Hm7NmPko67CSFv846MH5VWAWKBJYDb3rxBcC1mnQa2E", "amount": 1 }, "metadata": { "account": { "account_id": "1" } } } }, "Solana Warning Transaction": { "summary": "Solana - Warning Transaction", "value": { "options": ["validation"], "data": { "chain": "solana", "transaction_action": "withdrawal", "asset": { "symbol": "SOL" }, "to": "uB7ett5PHb6WFxdcvyHuxPbBhmACFg9xbztL2iw4w9X", "amount": 1 }, "metadata": { "account": { "account_id": "1" } } } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScanResult" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/tron/transaction/scan": { "post": { "tags": ["Tron"], "summary": "Scan Transaction", "description": "Get a risk recommendation with plain-language reasons for a Tron transaction.", "operationId": "scan-tron-transaction", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/routers__tron__transaction__models__TransactionRequest" }, "examples": { "TRX Deposit": { "summary": "Tron - TRX deposit", "value": { "metadata": { "non_dapp": true }, "options": ["simulation"], "account_address": "TWoajZTHi5XzRMSn4Bk4wee2SQ2mgT4KB9", "data": { "from": "TWoajZTHi5XzRMSn4Bk4wee2SQ2mgT4KB9", "to": "TNUC9Qb1rRpS5CbWLmNMxXBjyFoydXjWFR", "data": "0xd0e30db0", "value": "0x3B9ACA00" } } }, "Token Transfer": { "summary": "Tron - Token transfer", "value": { "metadata": { "non_dapp": true }, "options": ["simulation"], "account_address": "TKhJBwsH7hvegxrUHW4oHT5t1BUDds2UG4", "data": { "from": "TKhJBwsH7hvegxrUHW4oHT5t1BUDds2UG4", "to": "TMacq4TDUw5q8NFBwmbY4RLXvzvG5JTkvi", "data": "0xa9059cbb0000000000000000000000411dfc220065fc86526f12a2001611f6daf9e0062800000000000000000000000000000000000000000000010f0cf064dd59200000" } } }, "Native Transfer": { "summary": "Tron - Native transfer", "value": { "metadata": { "non_dapp": true }, "chain": "tron", "options": ["simulation", "trace"], "account_address": "TWoajZTHi5XzRMSn4Bk4wee2SQ2mgT4KB9", "block": "latest", "data": { "from": "TWoajZTHi5XzRMSn4Bk4wee2SQ2mgT4KB9", "to": "TGRPrkvVuLJzkvUof6sH1fevxu4KczdxtD", "value": "0x3b9aca00" } } }, "Contract Creation": { "summary": "Tron - Contract creation", "value": { "metadata": { "non_dapp": true }, "options": ["simulation"], "block": "latest", "account_address": "TWoajZTHi5XzRMSn4Bk4wee2SQ2mgT4KB9", "data": { "from": "TWoajZTHi5XzRMSn4Bk4wee2SQ2mgT4KB9", "data": "0x60806040527f3fad920548ed9f22deb8333b4cc1e4f9bc36666a1c2aa30ad59a0a3bb9dcbb9260405160405180910390a1603f80603d6000396000f3fe6080604052600080fdfea26474726f6e582212202903d5efa637ba85226f176b520075ab6b401112b9bc3456e7f753df1ada55eb64736f6c63430008060033" } } }, "Token Transfer to Malicious Address": { "summary": "Tron - Token transfer to malicious address", "value": { "metadata": { "non_dapp": true }, "options": ["simulation", "validation"], "account_address": "TKhJBwsH7hvegxrUHW4oHT5t1BUDds2UG4", "data": { "from": "TKhJBwsH7hvegxrUHW4oHT5t1BUDds2UG4", "to": "TMacq4TDUw5q8NFBwmbY4RLXvzvG5JTkvi", "data": "0xa9059cbb00000000000000000000004102d8b1afe419aaee6ea2a421913b93bc1d55791300000000000000000000000000000000000000000000010f0cf064dd59200000" } } } } } }, "required": true }, "responses": { "200": { "description": "Transaction scanned successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/routers__tron__response__TransactionScanResponse" }, "example": { "simulation": { "status": "Success", "assets_diffs": { "TChke7mJtUjn1QefSeDZhsPc3gcLck4nTt": [ { "asset_type": "ERC20", "asset": { "type": "ERC20", "address": "TMacq4TDUw5q8NFBwmbY4RLXvzvG5JTkvi", "logo_url": "https://dm8wquhbuh2eq.cloudfront.net/token/0x7F5bd5235a22EBe67ff9c619082601273A0D3B70/tron/sec/90a55f4e-3713-47d8-9ace-abafe5356b07", "decimals": 18, "name": "PePe", "symbol": "PePe" }, "in": [ { "usd_price": "147.384477049999986775", "summary": "Receiving 5000 PePe", "value": "5000.0", "raw_value": "0x10f0cf064dd59200000" } ], "out": [] } ], "TNiTAGAoecoRKj8A89LRQjCWaHtqUzY9S6": [ { "asset_type": "ERC20", "asset": { "type": "ERC20", "address": "TMacq4TDUw5q8NFBwmbY4RLXvzvG5JTkvi", "logo_url": "https://dm8wquhbuh2eq.cloudfront.net/token/0x7F5bd5235a22EBe67ff9c619082601273A0D3B70/tron/sec/90a55f4e-3713-47d8-9ace-abafe5356b07", "decimals": 18, "name": "PePe", "symbol": "PePe" }, "in": [], "out": [ { "usd_price": "147.384477049999986775", "summary": "Sending 5000 PePe", "value": "5000.0", "raw_value": "0x10f0cf064dd59200000" } ] } ] }, "transaction_actions": ["token_transfer"], "params": { "from": "TNiTAGAoecoRKj8A89LRQjCWaHtqUzY9S6", "to": "TMacq4TDUw5q8NFBwmbY4RLXvzvG5JTkvi", "value": "0x0", "data": "0xa9059cbb0000000000000000000000411dfc220065fc86526f12a2001611f6daf9e0062800000000000000000000000000000000000000000000010f0cf064dd59200000", "block_tag": "latest", "chain": "tron", "calldata": { "function_selector": "0xa9059cbb", "function_signature": "transfer(address,uint256)" } }, "total_usd_diff": { "TNiTAGAoecoRKj8A89LRQjCWaHtqUzY9S6": { "in": "0.0", "out": "147.384477049999986775", "total": "-147.384477049999986775" }, "TChke7mJtUjn1QefSeDZhsPc3gcLck4nTt": { "in": "147.384477049999986775", "out": "0.0", "total": "147.384477049999986775" } }, "exposures": {}, "total_usd_exposure": {}, "address_details": {}, "account_summary": { "assets_diffs": [ { "asset_type": "ERC20", "asset": { "type": "ERC20", "address": "TMacq4TDUw5q8NFBwmbY4RLXvzvG5JTkvi", "logo_url": "https://dm8wquhbuh2eq.cloudfront.net/token/0x7F5bd5235a22EBe67ff9c619082601273A0D3B70/tron/sec/90a55f4e-3713-47d8-9ace-abafe5356b07", "decimals": 18, "name": "PePe", "symbol": "PePe" }, "in": [], "out": [ { "usd_price": "147.384477049999986775", "summary": "Sending 5000 PePe", "value": "5000.0", "raw_value": "0x10f0cf064dd59200000" } ], "balance_changes": { "before": { "usd_price": "98603.847380880787123296", "value": "3345123.2231", "raw_value": "0x2c45b7e47fb07ef0fc000" }, "after": { "usd_price": "98456.462903830787136521", "value": "3340123.2231", "raw_value": "0x2c34c7157962a95efc000" } } } ], "traces": [ { "type": "ERC20AssetTrace", "trace_type": "AssetTrace", "from_address": "TNiTAGAoecoRKj8A89LRQjCWaHtqUzY9S6", "to_address": "TChke7mJtUjn1QefSeDZhsPc3gcLck4nTt", "asset": { "type": "ERC20", "address": "TMacq4TDUw5q8NFBwmbY4RLXvzvG5JTkvi", "logo_url": "https://dm8wquhbuh2eq.cloudfront.net/token/0x7F5bd5235a22EBe67ff9c619082601273A0D3B70/tron/sec/90a55f4e-3713-47d8-9ace-abafe5356b07", "decimals": 18, "name": "PePe", "symbol": "PePe" }, "diff": { "usd_price": "147.384477049999986775", "value": "5000.0", "raw_value": "0x10f0cf064dd59200000" } } ], "total_usd_diff": { "in": "0.0", "out": "147.384477049999986775", "total": "-147.384477049999986775" }, "exposures": [], "total_usd_exposure": {} } }, "block": "77951991", "chain": "tron", "account_address": "TNiTAGAoecoRKj8A89LRQjCWaHtqUzY9S6" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/tron/address/scan": { "post": { "tags": ["Tron"], "summary": "Scan Address", "description": "Get a risk recommendation with plain-language reasons for a Tron address.", "operationId": "scan-tron-address", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidateTronAddress" }, "examples": { "Malicious": { "summary": "Tron - Malicious Address", "value": { "chain": "tron", "address": "TQZFV1xeGKGHcCNQdw6erx3CFXQ9jfXeQR", "metadata": { "domain": "https://example.com" } } }, "Benign": { "summary": "Tron - Benign Address", "value": { "chain": "tron", "address": "TNUC9Qb1rRpS5CbWLmNMxXBjyFoydXjWFR", "metadata": { "domain": "https://example.com" } } } } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddressValidation" }, "examples": { "Malicious Address": { "value": { "result_type": "Malicious", "features": [ { "type": "Malicious", "feature_id": "KNOWN_MALICIOUS", "description": "This address has recorded malicious activity" }, { "type": "Warning", "feature_id": "NEW", "description": "This address has no history on this chain" } ] } }, "Benign Address": { "value": { "result_type": "Benign", "features": [ { "type": "Benign", "feature_id": "TRUSTED_CONTRACT", "description": "A trusted contract, safe to interact with" }, { "type": "Benign", "feature_id": "VERIFIED_CONTRACT", "description": "This contract is verified" }, { "type": "Info", "feature_id": "ERC20_CONTRACT", "description": "This address is an ERC20 token" }, { "type": "Info", "feature_id": "IS_CONTRACT", "description": "This address is a contract" } ] } } } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/evm/address/scan": { "post": { "tags": ["EVM"], "summary": "Scan Address", "description": "Get a risk recommendation with plain-language reasons for an address.", "operationId": "scan-address", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidateAddress" }, "examples": { "Malicious": { "summary": "Ethereum - Malicious Address", "value": { "chain": "ethereum", "address": "0x946D45c866AFD5b8F436d40E551D8E50A5B84230", "metadata": { "domain": "https://example.com" } } }, "Benign": { "summary": "Ethereum - Benign Address", "value": { "chain": "ethereum", "address": "0x4d224452801ACEd8B2F0aebE155379bb5D594381", "metadata": { "domain": "https://example.com" } } } } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddressValidation" }, "examples": { "Malicious Address": { "value": { "result_type": "Malicious", "features": [ { "type": "Malicious", "feature_id": "KNOWN_MALICIOUS", "description": "This address has recorded malicious activity" }, { "type": "Info", "feature_id": "IS_EOA", "description": "This address is an EOA" } ] } }, "Benign Address": { "value": { "result_type": "Benign", "features": [ { "type": "Benign", "feature_id": "BENIGN_CREATOR", "description": "The contract was created by a trusted address" }, { "type": "Benign", "feature_id": "TRUSTED_CONTRACT", "description": "A trusted contract, safe to interact with" }, { "type": "Benign", "feature_id": "VERIFIED_CONTRACT", "description": "This contract is verified" }, { "type": "Info", "feature_id": "ERC20_CONTRACT", "description": "This address is an ERC20 token" }, { "type": "Info", "feature_id": "IS_CONTRACT", "description": "This address is a contract" } ] } } } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/evm/address/report": { "post": { "tags": ["EVM"], "summary": "Report EVM Address", "description": "Report a misclassification of an EVM address.", "operationId": "evm-address-report", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReportRequest_EVMAddressReportParams_" }, "examples": { "Evm address report request_id example": { "summary": "Evm address report request_id example", "value": { "event": "FALSE_NEGATIVE", "report": { "type": "request_id", "request_id": "6c3cf6c1-a80d-4927-91b9-03d841ea61fe" }, "details": "Details about the report" } }, "Evm address report params example": { "summary": "Evm address report params example", "value": { "event": "FALSE_POSITIVE", "report": { "type": "params", "params": { "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "domain": "https://example.com", "chain": "ethereum" } }, "details": "Details about the report" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/evm/address/approvals": { "post": { "tags": ["EVM"], "summary": "List approvals with enrichments", "description": "Returns wallet approvals and enrichments based on chain/address. The number of spenders returned per owner is limited to 1000.", "operationId": "evm-address-approvals", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApprovalsRequest" }, "examples": { "Evm address approvals example": { "summary": "Evm address approvals example", "value": { "chain": "ethereum", "address": "0xA77DE01e157f9f57C7c4A326eeE9C4874D0598b6", "metadata": { "account": { "account_id": "user-123", "user_country_code": "US" }, "connection": { "ip_address": "1.2.3.4", "user_agent": "Mozilla/5.0" } } } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApprovalsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/evm/address-bulk/scan": { "post": { "tags": ["EVM"], "summary": "Scan Bulk of Addresses", "description": "Gets a list of addresses and returns a security assessment of each address.", "operationId": "scan-address-bulk", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidateBulkAddresses" }, "examples": { "Bulk": { "summary": "Bulk addresses validation", "value": { "metadata": { "domain": "www.example.xyz" }, "chain": "ethereum", "addresses": [ "0xb85492afC686d5CA405E3CD4f50b05D358c75Ede", "0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97", "0x1f9090aaE28b8a3dCeaDf281B0F12828e676c326", "0xD6E4aA932147A3FE5311dA1b67D9e73da06F9cEf" ] } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "$ref": "#/components/schemas/routers__evm__models__ValidationResultType" }, "type": "object" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/evm/address-bulk/scan-extended": { "post": { "tags": ["EVM"], "summary": "Scan Bulk of Addresses extended", "description": "Gets a list of addresses and returns a security assessment with the feature information of each address.", "operationId": "evm-scan-address-bulk-extended", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidateBulkExtendedAddressesRequest" }, "examples": { "Bulk Extended": { "summary": "Bulk extended addresses validation", "value": { "metadata": { "account": { "account_id": "user123", "created": "2021-01-01T00:00:00Z", "age_in_years": 3, "user_country_code": "US" }, "connection": { "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "ip_address": "192.168.1.1" } }, "chain": "ethereum", "addresses": [ "0xb85492afC686d5CA405E3CD4f50b05D358c75Ede", "0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97", "0x1f9090aaE28b8a3dCeaDf281B0F12828e676c326", "0xD6E4aA932147A3FE5311dA1b67D9e73da06F9cEf" ] } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidateBulkExtendedAddressesResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/address/risk-exposure": { "post": { "tags": ["Chain Agnostic"], "summary": "Address Risk Exposure", "description": "Gets an address and returns risk exposure data.", "operationId": "address-risk-exposure", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RiskExposureAddressScanRequest" }, "examples": { "Malicious EVM": { "summary": "Ethereum - Malicious Address", "value": { "chain": "ethereum", "address": "0x946D45c866AFD5b8F436d40E551D8E50A5B84230", "metadata": { "account": { "account_id": "user-123" }, "connection": { "user_agent": "Mozilla/5.0", "ip_address": "1.1.1.1" } } } }, "Benign EVM": { "summary": "Ethereum - Benign Address", "value": { "chain": "ethereum", "address": "0x4d224452801ACEd8B2F0aebE155379bb5D594381", "metadata": { "account": { "account_id": "user-456" }, "connection": { "user_agent": "Mozilla/5.0", "ip_address": "2.2.2.2" } } } }, "Solana": { "summary": "Solana - Address", "value": { "chain": "solana", "address": "9bknqj2UtB4MunG1PEMSjuT4R65coJr2tPzwN6uAcYyC", "metadata": { "account": { "account_id": "user-789" }, "connection": { "user_agent": "Mozilla/5.0", "ip_address": "3.3.3.3" } } } } } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RiskProfilingResponse" }, "examples": { "Malicious Address": { "value": { "address": "0x946D45c866AFD5b8F436d40E551D8E50A5B84230", "blocklist": true, "name": null, "risk_summary": { "risk_level": "Malicious", "total_usd": 150000, "total_malicious_exposure": 120000 }, "exposures": [ { "category": "stolen_funds", "amount_usd": 80000, "percentage": 53.3, "risk_level": "Malicious" }, { "category": "mining_pool_miner", "amount_usd": 40000, "percentage": 26.7, "risk_level": "Warning" }, { "category": "uncategorized_entity", "amount_usd": 30000, "percentage": 20.0, "risk_level": "Benign" } ] } }, "Benign Address": { "value": { "address": "0x4d224452801ACEd8B2F0aebE155379bb5D594381", "blocklist": false, "name": "ApeCoin", "risk_summary": { "risk_level": "Benign", "total_usd": 0, "total_malicious_exposure": 0 }, "exposures": [] } }, "Solana": { "value": { "address": "9bknqj2utb4mung1pemsjut4r65cojr2tpzwn6uacyyc", "blocklist": false, "name": null, "risk_summary": { "risk_level": "Benign", "total_usd": 0, "total_malicious_exposure": 0 }, "exposures": [ { "category": "uncategorized_entity", "amount_usd": 0, "percentage": 100, "risk_level": "Benign" } ] } } } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/address/report": { "post": { "tags": ["Chain Agnostic"], "summary": "Report Address", "description": "Report a misclassification of an address", "operationId": "address-report", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReportRequest_AddressReportParams_" }, "examples": { "Evm address report request_id example": { "summary": "Evm address report request_id example", "value": { "event": "FALSE_NEGATIVE", "report": { "type": "request_id", "request_id": "11111111-1111-1111-1111-111111111111" }, "details": "Details about the report" } }, "Evm address report params example": { "summary": "Evm address report params example", "value": { "event": "FALSE_POSITIVE", "report": { "type": "params", "params": { "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "domain": "https://example.com", "chain": "ethereum" } }, "details": "Details about the report" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/site/scan": { "post": { "tags": ["Site"], "summary": "Scan Site", "operationId": "scan-site", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SiteScanRequest" }, "examples": { "Benign example uniswap": { "summary": "Benign Example - https://app.uniswap.org", "value": { "url": "https://app.uniswap.org", "metadata": { "type": "catalog" } } }, "Malicious example ethlen": { "summary": "Malicious Example - https://ethlen.com", "value": { "url": "https://ethlen.com", "metadata": { "type": "catalog" } } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/SiteScanHitResponse" }, { "$ref": "#/components/schemas/SiteScanMissResponse" } ], "title": "Response Scan-Site" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/site/report": { "post": { "tags": ["Site"], "summary": "Report Site", "description": "Report a misclassification of a site.", "operationId": "site-report", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReportRequest_SiteReportParams_" }, "examples": { "Site report request_id example": { "summary": "Site report request_id example", "value": { "event": "FALSE_POSITIVE", "report": { "type": "request_id", "request_id": "11111111-1111-1111-1111-111111111111" }, "details": "Details about the report" } }, "Site report params example": { "summary": "Site report params example", "value": { "event": "FALSE_POSITIVE", "report": { "type": "params", "params": { "url": "https://example.com" } }, "details": "Details about the report" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/scan/report": { "post": { "tags": ["Report"], "summary": "Report", "description": "Report a misclassification of any entity (transaction, address, site, token, etc.) using a request ID from a previous scan.", "operationId": "generic-report", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericReportRequest" }, "examples": { "Report with request_id": { "summary": "Report with request_id", "value": { "event": "FALSE_POSITIVE", "request_id": "11111111-1111-1111-1111-111111111111", "details": "Details about the report", "metadata": { "domain": "https://app.uniswap.org", "account": { "account_id": "user-abc-123", "account_creation_timestamp": "2023-01-15T00:00:00Z", "user_age": 30, "user_country_code": "US" }, "connection": { "ip_address": "192.168.1.1", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)" } } } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/tx/v0/report": { "post": { "tags": ["Report"], "summary": "Report transaction", "description": "Report a transaction", "operationId": "report-transaction", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReportTxRequest" }, "examples": { "Example Report": { "summary": "Example Report", "value": { "domain": "example.org", "jsonRpcMethod": "SetApprovalForAll", "jsonRpcParams": "{\"from\": \"0x0000000000000000000000000000000000000000\", \"to\": \"0x0000000000000000000000000000000000000000\", \"value\": \"0x0\"}", "chain": "ethereum", "blockNumber": "19624900", "classification": "approval_farming", "resultType": "Malicious", "features": "[\"The contract 0x0000000000000000000000000000000000000000 involved in the transaction is unverified\"]", "details": "This transaction is incorrect because of ...", "reporter": "my_name@example.org" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/dapp/v1/report": { "post": { "tags": ["Report"], "summary": "Report site", "description": "Report a misclassification of a site.", "operationId": "report-site", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReportSiteRequest" }, "examples": { "request example": { "summary": "Request Example", "value": { "url": "www.malicious-example.com", "classification": "Malicious" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/scan/status/": { "post": { "tags": ["Scan Feedback"], "summary": "Scan Status", "description": "Report whether the end-user accepted the Blockaid classification on the entity being scanned.", "operationId": "scan-status", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScanStatusRequest" }, "examples": { "Accepted example": { "summary": "Accepted Example - the end-user accepted Blockaid's malicious warning", "value": { "request_id": "7f959417-76c1-4c4d-89e8-5fdedab76a8d", "status": "accepted" } }, "Rejected example": { "summary": "Rejected Example - the end-user rejected Blockaid's malicious warning and decided to proceed anyway", "value": { "request_id": "4d076fe3-1bb7-4939-afc6-b5dc809a7040", "status": "rejected" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/enrichment/account/login": { "post": { "tags": ["Enrichment"], "summary": "Log Account Login", "description": "Logs an account login event.", "operationId": "log-account-login", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LogAccountLoginRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/enrichment/account/modify": { "post": { "tags": ["Enrichment"], "summary": "Modify Account", "description": "Modifies an account.", "operationId": "modify-account", "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ModifyWithdrawalAddressRequest" }, { "$ref": "#/components/schemas/ModifyPaymentMethodRequest" } ], "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/enrichment/report/": { "post": { "tags": ["Enrichment"], "summary": "Report Fraud", "description": "Reports a fraud event.", "operationId": "report-fraud", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichmentRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/platform/assets/": { "post": { "tags": ["Asset Management"], "summary": "Create Asset", "description": "Create an asset for the given address or domain. The new asset will be onboarded to the platform's inventory and monitored according to your monitoring policy.", "operationId": "create-asset", "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/AddressRequest" }, { "$ref": "#/components/schemas/DomainRequest" }, { "$ref": "#/components/schemas/PerpRequest" }, { "$ref": "#/components/schemas/MarketRequest" } ], "title": "Asset" }, "examples": { "Create EVM Contract": { "summary": "Create EVM Contract Example", "value": { "identifier_type": "address", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "tags": ["example"], "alias": "Bedrock", "runtime": "evm", "chain_name": "bsc", "contract_interface": [ { "address": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "abi_json": [ { "inputs": [ { "internalType": "address", "name": "defaultAdmin", "type": "address" }, { "internalType": "address", "name": "minter", "type": "address" }, { "internalType": "address", "name": "defaultFreezeToRecipient", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address[]", "name": "users", "type": "address[]" } ], "name": "UsersFrozen", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address[]", "name": "users", "type": "address[]" } ], "name": "UsersUnfrozen", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FREEZER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "recipients", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "batchTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "freezeToRecipient", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "users", "type": "address[]" } ], "name": "freezeUsers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "frozenUsers", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "setFreezeToRecipient", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "users", "type": "address[]" } ], "name": "unfreezeUsers", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] } ] } }, "create sui example": { "summary": "Create Sui Address Example", "value": { "identifier_type": "address", "identifier": "0xe1b45a0e641b9955a20aa0ad1c1f4ad86aad8afb07296d4085e349a50e90bdca", "tags": ["example"], "alias": "bluefin", "runtime": "sui", "chain_name": "mainnet", "package_interface": [] } }, "Create Hyperliquid Address": { "summary": "Create Hyperliquid (Perps) Address Example", "value": { "identifier_type": "address", "identifier": "0xabcde12345abcde12345abcde12345abcde12345", "tags": ["example"], "alias": "my-hyperliquid-vault", "chain_name": "hyperliquid" } }, "Create Polymarket Address": { "summary": "Create Polymarket (Markets) Address Example", "value": { "identifier_type": "address", "identifier": "0xabcde12345abcde12345abcde12345abcde12345", "tags": ["example"], "alias": "my-polymarket-contract", "chain_name": "polymarket" } }, "Create Domain": { "summary": "Create Domain Example", "value": { "identifier_type": "domain", "identifier": "example.com", "tags": ["example"], "alias": "Example Domain" } } } } }, "required": true }, "responses": { "200": { "description": "Asset created successfully", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/AddressResponse" }, { "$ref": "#/components/schemas/DomainResponse" }, { "$ref": "#/components/schemas/PerpResponse" }, { "$ref": "#/components/schemas/MarketResponse" } ], "items": { "anyOf": [ { "$ref": "#/components/schemas/AddressResponse" }, { "$ref": "#/components/schemas/DomainResponse" }, { "$ref": "#/components/schemas/PerpResponse" }, { "$ref": "#/components/schemas/MarketResponse" } ] }, "type": "array", "title": "Response 200 Create-Asset" }, "examples": { "Address": { "summary": "Address Asset Created", "value": [ { "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "identifier_type": "address", "alias": "Bedrock", "tags": ["example"], "added_by": "user@example.com", "created_at": "2025-01-15T12:00:00Z", "address_details": { "chain": "bsc", "runtime": "evm", "properties": [], "address": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } ] }, "Domain": { "summary": "Domain Asset Created", "value": [ { "identifier": "example.com", "identifier_type": "domain", "alias": "Example Domain", "tags": [], "added_by": "user@example.com", "created_at": "2025-01-15T12:00:00Z" } ] } } } } }, "409": { "description": "Asset already exists", "content": { "application/json": { "examples": { "Duplicate Address": { "summary": "Address Already Exists", "value": { "detail": "Failed to add address because one or more already exists" } }, "Duplicate Domain": { "summary": "Domain Already Exists", "value": { "detail": "Failed to add domain because it already exists in the inventory" } } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetErrorResponse" }, "examples": { "Type Mismatch": { "summary": "Type Mismatch Error", "value": { "error_code": "type_mismatch", "description": "Only domain and address identifier types are valid.", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } }, "Generic Error": { "summary": "Generic Error During Creation", "value": { "error_code": "generic_error", "description": "Failed to create monitored asset." } }, "Missing ABI": { "summary": "Missing ABI Error", "value": { "error_code": "missing_abi", "description": "Failed to auto-fetch contract interface, please provide the interface json while creating the asset", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } }, "Implementation Missing ABI": { "summary": "Implementation Missing ABI Error", "value": { "error_code": "implementation_missing_abi", "description": "Failed to auto-fetch contract interface for the implementation of the proxy, please provide both the proxy and implementation's interface json while creating the asset", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } }, "Unsupported Runtime": { "summary": "Unsupported Runtime Error", "value": { "error_code": "unsupported_runtime", "description": "Unsupported runtime solana.", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" }, "examples": { "Missing Required Field": { "summary": "Missing Required Field", "value": { "detail": [ { "loc": ["body", "identifier"], "msg": "field required", "type": "value_error.missing" } ] } }, "Invalid Identifier Type": { "summary": "Invalid Identifier Type", "value": { "detail": [ { "loc": ["body", "identifier_type"], "msg": "value is not a valid enumeration member; permitted: 'address', 'domain'", "type": "type_error.enum" } ] } } } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] } }, "/v0/platform/assets/{identifier}": { "get": { "tags": ["Asset Management"], "summary": "Get Asset", "description": "Retrieve details for an asset in your inventory by its identifier, runtime, and chain.", "operationId": "get-asset", "parameters": [ { "description": "The contract address or domain that identifies this asset.", "required": true, "deprecated": false, "explode": false, "schema": { "type": "string", "title": "Identifier" }, "example": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "name": "identifier", "in": "path" }, { "description": "The chain type (e.g. evm, solana). Use the same runtime you used when creating the asset.", "required": true, "deprecated": false, "explode": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/MonitoringSupportedRuntimes" } ] }, "example": "evm", "name": "runtime", "in": "query", "allowEmptyValue": false, "allowReserved": false }, { "description": "Which chain the asset is on (e.g. bsc, ethereum). Use the same chain you used when creating the asset.", "required": true, "deprecated": false, "explode": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/MonitoringSupportedChains" } ] }, "example": "bsc", "name": "chain_name", "in": "query", "allowEmptyValue": false, "allowReserved": false } ], "responses": { "200": { "description": "Successful response with the asset details (address or domain).", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/AddressResponse" }, { "$ref": "#/components/schemas/DomainResponse" }, { "$ref": "#/components/schemas/PerpResponse" }, { "$ref": "#/components/schemas/MarketResponse" } ], "title": "Response 200 Get-Asset" }, "examples": { "Address Asset": { "summary": "Address Asset Retrieved", "value": { "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "identifier_type": "address", "alias": "Bedrock", "tags": ["example"], "added_by": "API", "created_at": "2025-07-14T20:10:58.180233", "address_details": { "chain": "bsc", "runtime": "evm", "properties": ["token", "address", "erc20", "contract"], "address": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } } } } } }, "404": { "description": "No asset exists for the given identifier, runtime, and chain combination.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetErrorResponse" }, "examples": { "Not Found": { "summary": "Asset Not Found", "value": { "error_code": "not_found", "description": "Asset not found", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } } } } }, "422": { "description": "Request validation failed (e.g. missing or invalid query parameters).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" }, "examples": { "Missing Required Query": { "summary": "Missing Required Query Parameter", "value": { "detail": [ { "loc": ["query", "runtime"], "msg": "field required", "type": "value_error.missing" } ] } }, "Invalid Runtime": { "summary": "Invalid Runtime Value", "value": { "detail": [ { "loc": ["query", "runtime"], "msg": "value is not a valid enumeration member; permitted: 'evm', 'solana', ...", "type": "type_error.enum" } ] } } } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] }, "delete": { "tags": ["Asset Management"], "summary": "Delete Asset", "description": "Remove an asset from your inventory by its identifier, runtime, and chain. The asset is removed from monitoring and related detection rules.", "operationId": "delete-asset", "parameters": [ { "description": "The contract address or domain that identifies this asset.", "required": true, "deprecated": false, "explode": false, "schema": { "type": "string", "title": "Identifier" }, "example": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "name": "identifier", "in": "path" }, { "description": "The chain type (e.g. evm, solana). Use the same runtime you used when creating the asset.", "required": true, "deprecated": false, "explode": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/MonitoringSupportedRuntimes" } ] }, "example": "evm", "name": "runtime", "in": "query", "allowEmptyValue": false, "allowReserved": false }, { "description": "Which chain the asset is on (e.g. bsc, ethereum). Use the same chain you used when creating the asset.", "required": true, "deprecated": false, "explode": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/MonitoringSupportedChains" } ] }, "example": "bsc", "name": "chain_name", "in": "query", "allowEmptyValue": false, "allowReserved": false } ], "responses": { "200": { "description": "Successful response; the asset has been removed from the inventory.", "content": { "application/json": { "schema": { "type": "object", "description": "Empty body. The asset has been removed from the inventory.", "additionalProperties": false }, "examples": { "Success": { "summary": "Asset Deleted", "value": {} } } } } }, "404": { "description": "No asset exists for the given identifier, runtime, and chain combination.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetErrorResponse" }, "examples": { "Not Found": { "summary": "Asset Not Found", "value": { "error_code": "not_found", "description": "Asset not found", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } } } } }, "422": { "description": "Request validation failed (e.g. missing or invalid query parameters).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" }, "examples": { "Missing Required Query": { "summary": "Missing Required Query Parameter", "value": { "detail": [ { "loc": ["query", "runtime"], "msg": "field required", "type": "value_error.missing" } ] } }, "Invalid Runtime": { "summary": "Invalid Runtime Value", "value": { "detail": [ { "loc": ["query", "runtime"], "msg": "value is not a valid enumeration member; permitted: 'evm', 'solana', ...", "type": "type_error.enum" } ] } } } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] }, "patch": { "tags": ["Asset Management"], "summary": "Update an Asset", "description": "Update an existing asset in your inventory (e.g. alias, tags) by its identifier, runtime, and chain.", "operationId": "patch-asset", "parameters": [ { "description": "The contract address or domain that identifies this asset.", "required": true, "deprecated": false, "explode": false, "schema": { "type": "string", "title": "Identifier" }, "example": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "name": "identifier", "in": "path" }, { "description": "The chain type (e.g. evm, solana). Use the same runtime you used when creating the asset.", "required": true, "deprecated": false, "explode": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/MonitoringSupportedRuntimes" } ] }, "example": "evm", "name": "runtime", "in": "query", "allowEmptyValue": false, "allowReserved": false }, { "description": "Which chain the asset is on (e.g. bsc, ethereum). Use the same chain you used when creating the asset.", "required": true, "deprecated": false, "explode": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/MonitoringSupportedChains" } ] }, "example": "bsc", "name": "chain_name", "in": "query", "allowEmptyValue": false, "allowReserved": false } ], "requestBody": { "description": "Fields to update (alias, tags). Include identifier, runtime, and chain_name to match the path and query.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetUpdateRequest" }, "examples": { "Update Address": { "summary": "Update Address Example", "value": { "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "tags": ["example", "new_tag"], "chain_name": "bsc", "runtime": "evm" } } } } }, "required": true }, "responses": { "200": { "description": "Successful response with the updated asset details (address or domain).", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/AddressResponse" }, { "$ref": "#/components/schemas/DomainResponse" }, { "$ref": "#/components/schemas/PerpResponse" }, { "$ref": "#/components/schemas/MarketResponse" } ], "title": "Response 200 Patch-Asset" }, "examples": { "not_found": { "summary": "Asset not found", "value": { "error_code": "not_found", "description": "Asset not found", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } } } } }, "404": { "description": "No asset exists for the given identifier, runtime, and chain combination.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetErrorResponse" }, "examples": { "Not Found": { "summary": "Asset Not Found", "value": { "error_code": "not_found", "description": "Asset not found", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } } } } }, "422": { "description": "Request validation failed (e.g. missing or invalid query or body parameters).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" }, "examples": { "Missing Required Query": { "summary": "Missing Required Query Parameter", "value": { "detail": [ { "loc": ["query", "chain_name"], "msg": "field required", "type": "value_error.missing" } ] } }, "Invalid Body Field": { "summary": "Invalid Request Body Field", "value": { "detail": [ { "loc": ["body", "tags"], "msg": "value is not a valid list", "type": "type_error.list" } ] } } } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] } }, "/v0/platform/assets/search": { "post": { "summary": "Search Assets", "deprecated": false, "description": "Search and filter platform assets (addresses/domains) using structured filters, pagination, and sorting.", "tags": ["Asset Management"], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "filter": { "type": "object", "properties": { "identifier_type": { "type": "array", "items": { "type": "string", "enum": ["address", "domain"] }, "description": "Return only results matching the specified asset identifier type (blockchain address or domain)." }, "chain": { "$ref": "#/components/schemas/APIFilters", "description": "Return only results that match the specified blockchain network filter." }, "tags": { "$ref": "#/components/schemas/APIFilters", "description": "Return only results that match the specified tag filter." }, "name": { "$ref": "#/components/schemas/APIFilters", "description": "Return only results that match the specified asset name filter." } }, "description": "A set of fields used to filter asset search results." }, "page_size": { "type": "integer", "default": 50, "description": "Determine how many results are returned per page." }, "page": { "type": "integer", "description": "Return only results for the specified page number." }, "sort": { "type": "array", "items": { "type": "object", "properties": { "field": { "type": "string", "description": "Which field to sort results by.", "enum": ["identifier", "created_at"] }, "operator": { "type": "string", "description": "Sort order: ascending or descending.", "enum": ["asc", "desc"] } }, "required": ["field", "operator"] }, "description": "Sort results based on the specified rules." } }, "required": ["sort"] }, "examples": { "Search By Chain": { "summary": "Search assets by chain", "value": { "filter": { "identifier_type": ["address"], "chain": { "eq": "ethereum" } }, "page_size": 25, "page": 1, "sort": [ { "field": "created_at", "operator": "desc" } ] } } } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "total": { "type": "integer", "description": "Total number of results matching the request." }, "page": { "type": "integer", "description": "Current page number returned. This is relevant only if a specific page number was mentioned in the request." }, "pages": { "type": "integer", "description": "Total number of pages available." }, "size": { "type": "integer", "description": "Number of items returned in the current response." }, "items": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AddressResponse" }, { "$ref": "#/components/schemas/DomainResponse" } ] }, "description": "List of assets returned in the response." } }, "required": ["total", "items", "pages", "page", "size"], "description": "Successful response containing paginated search results." }, "example": { "total": 1, "page": 1, "pages": 1, "size": 1, "items": [ { "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "identifier_type": "address", "alias": "Bedrock", "tags": ["example"], "added_by": "API", "created_at": "2025-07-14T20:10:58.180233", "address_details": { "chain": "ethereum", "runtime": "evm", "address": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } ] } } }, "headers": {} } }, "security": [{ "APIKey": [] }, { "ClientID": [] }, { "JWT": [] }] } }, "/v0/platform/assets/addresses/{chain_name}/{address}": { "get": { "summary": "Get Address Asset", "deprecated": false, "description": "Get asset details for a given identifier and chain.", "operationId": "get-asset", "tags": ["Asset Management"], "parameters": [ { "name": "chain_name", "in": "path", "description": "Which chain this address asset is on.", "required": true, "schema": { "type": "string" } }, { "name": "address", "in": "path", "description": "The contract or wallet address for this asset.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Asset retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddressResponse" }, "example": { "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "identifier_type": "address", "alias": "Bedrock", "tags": ["example"], "added_by": "API", "created_at": "2025-07-14T20:10:58.180233", "address_details": { "chain": "bsc", "runtime": "evm", "properties": ["token", "address", "erc20", "contract"], "address": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } } }, "headers": {} }, "404": { "description": "Asset not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetErrorResponse", "anyOf": [ { "$ref": "#/components/schemas/AddressResponse" }, { "$ref": "#/components/schemas/DomainResponse" } ], "title": "Response 200 Patch-Asset" }, "example": { "error_code": "not_found", "description": "Asset not found", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } }, "headers": {} }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" }, "example": { "detail": [ { "loc": ["path", "identifier"], "msg": "value is not valid", "type": "value_error" } ] } } }, "headers": {} } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] }, "delete": { "summary": "Delete Address Asset", "deprecated": false, "description": "Delete an asset for a given identifier and chain. The asset will be removed from the inventory and related detection rules, specifically targeting this asset.", "operationId": "delete-asset", "tags": ["Asset Management"], "parameters": [ { "name": "chain_name", "in": "path", "description": "Which chain this address asset is on.", "required": true, "schema": { "type": "string" } }, { "name": "address", "in": "path", "description": "The contract or wallet address for this asset.", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "Asset deleted successfully", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": false }, "example": {} } }, "headers": {} }, "404": { "description": "Asset not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetErrorResponse", "anyOf": [ { "$ref": "#/components/schemas/AddressResponse" }, { "$ref": "#/components/schemas/DomainResponse" } ], "title": "Response 200 Patch-Asset" }, "example": { "error_code": "not_found", "description": "Asset not found", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } }, "headers": {} }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" }, "example": { "detail": [ { "loc": ["path", "identifier"], "msg": "value is not valid", "type": "value_error" } ] } } }, "headers": {} } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] }, "patch": { "summary": "Update Address Asset", "deprecated": false, "description": "Update asset details for a given identifier.", "operationId": "patch-asset", "tags": ["Asset Management"], "parameters": [ { "name": "chain_name", "in": "path", "description": "Which chain this address asset is on.", "required": true, "schema": { "type": "string" } }, { "name": "address", "in": "path", "description": "The contract or wallet address for this asset.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetUpdateRequest" }, "examples": { "Update Asset": { "value": { "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "tags": ["example", "new_tag"], "chain_name": "bsc", "runtime": "evm" }, "summary": "Update asset example" } } } }, "required": true }, "responses": { "200": { "description": "Asset updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddressResponse" }, "example": { "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "identifier_type": "address", "alias": "Bedrock", "tags": ["example", "new_tag"], "added_by": "API", "created_at": "2025-07-14T20:10:58.180233", "address_details": { "chain": "bsc", "runtime": "evm", "properties": ["token", "address", "erc20", "contract"], "address": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } } }, "headers": {} }, "404": { "description": "Asset not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetErrorResponse", "anyOf": [ { "$ref": "#/components/schemas/AddressResponse" }, { "$ref": "#/components/schemas/DomainResponse" } ], "title": "Response 200 Patch-Asset" }, "example": { "error_code": "not_found", "description": "Asset not found", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } }, "headers": {} }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" }, "example": { "detail": [ { "loc": ["path", "identifier"], "msg": "value is not valid", "type": "value_error" } ] } } }, "headers": {} } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] } }, "/v0/platform/assets/domains/{domain}": { "get": { "summary": "Get Domain Asset", "deprecated": false, "description": "Get asset details for a given identifier and chain.", "operationId": "get-asset", "tags": ["Asset Management"], "parameters": [ { "name": "domain", "in": "path", "description": "The domain name for this asset.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Asset retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainResponse" }, "example": { "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "identifier_type": "address", "alias": "Bedrock", "tags": ["example"], "added_by": "API", "created_at": "2025-07-14T20:10:58.180233", "address_details": { "chain": "bsc", "runtime": "evm", "properties": ["token", "address", "erc20", "contract"], "address": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } } }, "headers": {} }, "404": { "description": "Asset not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetErrorResponse", "anyOf": [ { "$ref": "#/components/schemas/AddressResponse" }, { "$ref": "#/components/schemas/DomainResponse" } ], "title": "Response 200 Patch-Asset" }, "example": { "error_code": "not_found", "description": "Asset not found", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } }, "headers": {} }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" }, "example": { "detail": [ { "loc": ["path", "identifier"], "msg": "value is not valid", "type": "value_error" } ] } } }, "headers": {} } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] }, "delete": { "summary": "Delete Domain Asset", "deprecated": false, "description": "Delete an asset for a given identifier and chain. The asset will be removed from the inventory and related detection rules, specifically targeting this asset.", "operationId": "delete-asset", "tags": ["Asset Management"], "parameters": [ { "name": "domain", "in": "path", "description": "The domain name for this asset.", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "Asset deleted successfully", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": false }, "example": {} } }, "headers": {} }, "404": { "description": "Asset not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetErrorResponse", "anyOf": [ { "$ref": "#/components/schemas/AddressResponse" }, { "$ref": "#/components/schemas/DomainResponse" } ], "title": "Response 200 Patch-Asset" }, "example": { "error_code": "not_found", "description": "Asset not found", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } }, "headers": {} }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" }, "example": { "detail": [ { "loc": ["path", "identifier"], "msg": "value is not valid", "type": "value_error" } ] } } }, "headers": {} } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] }, "patch": { "summary": "Update Domain Asset", "deprecated": false, "description": "Update asset details for a given identifier.", "operationId": "patch-asset", "tags": ["Asset Management"], "parameters": [ { "name": "domain", "in": "path", "description": "The domain name for this asset.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetUpdateRequest" }, "examples": { "Update Asset": { "value": { "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41", "tags": ["example", "new_tag"], "chain_name": "bsc", "runtime": "evm" }, "summary": "Update asset example" } } } }, "required": true }, "responses": { "200": { "description": "Asset updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainResponse" }, "example": { "identifier": "bedrock.app", "identifier_type": "domain", "alias": "Bedrock Domain", "tags": ["example", "new_tag"], "added_by": "API", "created_at": "2025-07-14T20:10:58.180233", "domain_details": { "domain": "bedrock.app" } } } }, "headers": {} }, "404": { "description": "Asset not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetErrorResponse", "anyOf": [ { "$ref": "#/components/schemas/AddressResponse" }, { "$ref": "#/components/schemas/DomainResponse" } ], "title": "Response 200 Patch-Asset" }, "example": { "error_code": "not_found", "description": "Asset not found", "identifier": "0xFf7d6A96ae471BbCD7713aF9CB1fEeB16cf56B41" } } }, "headers": {} }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" }, "example": { "detail": [ { "loc": ["path", "identifier"], "msg": "value is not valid", "type": "value_error" } ] } } }, "headers": {} } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] } }, "/v0/platform/assets/{asset_id}": { "get": { "tags": ["Asset Management"], "summary": "Get Asset by ID", "description": "Retrieve an asset by its unique platform asset ID (UUID format).", "operationId": "get-asset-by-id", "parameters": [ { "description": "The unique platform asset ID.", "required": true, "schema": { "type": "string", "title": "Asset Id" }, "example": "ad5fe269-447d-4990-9231-8f9192421d49", "name": "asset_id", "in": "path" } ], "responses": { "200": { "description": "Successful response with the asset details.", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/AddressResponse" }, { "$ref": "#/components/schemas/DomainResponse" } ], "title": "Response 200 Get-Asset-By-Id" } } } }, "404": { "description": "No asset exists for the given asset ID.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetErrorResponse" } } } } }, "deprecated": false, "security": [{ "APIKey": [] }, { "ClientID": [] }, { "JWT": [] }] } }, "/v0/platform/monitors/": { "post": { "summary": "Create Monitor", "deprecated": false, "description": "Create a monitor that tracks configured rules and triggers actions when incidents match.", "tags": ["Monitors"], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewMonitorCreation" }, "examples": { "Create Monitor Example": { "summary": "Create monitor", "value": { "name": "High-Risk Activity Monitor", "tags": ["security"], "actions": [], "monitors": [ { "type": "approval_to_multicall_contract", "target": [ { "type": "asset_id", "identifier": "asset_123" } ], "severity": "high", "is_silent": false } ] } } } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MonitorObject" }, "example": { "id": "mon_123", "name": "High-Risk Activity Monitor", "is_enabled": true, "created_by": "api", "updated_by": "api", "updated_at": "2026-02-11T12:00:00Z", "created_at": "2026-02-11T12:00:00Z", "monitors": [ { "type": "approval_to_multicall_contract", "target": [ { "type": "asset_id", "identifier": "asset_123" } ], "severity": "high", "is_silent": false } ], "tags": ["security"] } } }, "headers": {} } }, "security": [{ "APIKey": [] }, { "ClientID": [] }, { "JWT": [] }] } }, "/v0/platform/monitors/{id}": { "get": { "summary": "Get Monitor", "deprecated": false, "description": "Fetch a single monitor by ID.", "tags": ["Monitors"], "parameters": [ { "name": "id", "in": "path", "description": "The monitor's ID.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MonitorObject" }, "example": { "id": "mon_123", "name": "High-Risk Activity Monitor", "is_enabled": true, "created_by": "api", "updated_by": "api", "updated_at": "2026-02-11T12:00:00Z", "created_at": "2026-02-11T12:00:00Z", "monitors": [ { "type": "approval_to_multicall_contract", "target": [ { "type": "asset_id", "identifier": "asset_123" } ], "severity": "high", "is_silent": false } ], "tags": ["security"] } } }, "headers": {} } }, "security": [{ "APIKey": [] }, { "ClientID": [] }, { "JWT": [] }] }, "patch": { "summary": "Update Monitor", "deprecated": false, "description": "Change a monitor's name, rules, tags, or actions.", "tags": ["Monitors"], "parameters": [ { "name": "id", "in": "path", "description": "The monitor's ID.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Updated display name for the monitor." }, "is_enabled": { "type": "boolean", "description": "Whether the monitor is enabled." }, "tags": { "type": "array", "description": "Updated list of tags assigned to the monitor.", "items": { "type": "string" } }, "actions": { "type": "array", "description": "Updated actions that run when monitor rules are triggered.", "items": { "anyOf": [ { "$ref": "#/components/schemas/EmailAction" }, { "$ref": "#/components/schemas/SlackAction" }, { "$ref": "#/components/schemas/TelegramAction" }, { "$ref": "#/components/schemas/WebhookAction" }, { "$ref": "#/components/schemas/PauseContractAction" }, { "$ref": "#/components/schemas/SequencerAction" }, { "$ref": "#/components/schemas/APICallAction" }, { "$ref": "#/components/schemas/CallContractAction" } ] } }, "monitors": { "description": "The updated rules this monitor runs.", "anyOf": [ { "$ref": "#/components/schemas/MonitorRuleRequest" }, { "$ref": "#/components/schemas/SystemMonitorRuleRequest" } ] } } }, "examples": { "Update Monitor Example": { "summary": "Update monitor", "value": { "name": "High-Risk Activity Monitor v2", "is_enabled": true, "tags": ["security", "critical"], "actions": [], "monitors": [ { "type": "approval_to_multicall_contract", "target": [ { "type": "asset_id", "identifier": "asset_123" } ], "severity": "critical", "is_silent": false } ] } } } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MonitorObject" }, "example": { "id": "mon_123", "name": "High-Risk Activity Monitor v2", "is_enabled": true, "created_by": "api", "updated_by": "api", "updated_at": "2026-02-11T12:30:00Z", "created_at": "2026-02-11T12:00:00Z", "monitors": [ { "type": "approval_to_multicall_contract", "target": [ { "type": "asset_id", "identifier": "asset_123" } ], "severity": "critical", "is_silent": false } ], "tags": ["security", "critical"] } } }, "headers": {} } }, "security": [{ "APIKey": [] }, { "ClientID": [] }, { "JWT": [] }] }, "delete": { "summary": "Delete Monitor", "deprecated": false, "description": "Remove a monitor by ID.", "tags": ["Monitors"], "parameters": [ { "name": "id", "in": "path", "description": "The monitor's ID.", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": false }, "example": {} } }, "headers": {} } }, "security": [{ "APIKey": [] }, { "ClientID": [] }, { "JWT": [] }] } }, "/v0/platform/monitors/search": { "post": { "summary": "Search Monitors", "deprecated": false, "description": "Search monitors with pagination and sorting controls.", "tags": ["Monitors"], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "page_size": { "type": "integer", "description": "Number of results returned per page." }, "page": { "type": "integer", "description": "Page number to return." }, "sort": { "type": "array", "description": "Sorting rules applied to the result set.", "items": { "type": "object", "properties": { "field": { "type": "string", "description": "Field to sort by.", "enum": ["id", "created_at"] }, "operator": { "type": "string", "description": "Sort direction.", "enum": ["asc", "desc"] } }, "required": ["field", "operator"] } }, "filter": { "type": "object", "description": "Optional filter criteria.", "properties": { "name": { "type": "object", "description": "Filter by monitor name. Exactly one operator must be provided.", "properties": { "eq": { "type": "string", "description": "Exact match." }, "in": { "type": "array", "items": { "type": "string" }, "description": "Match any value in the list." }, "contains": { "type": "string", "description": "Substring match (case-insensitive)." }, "contains_all": { "type": "array", "items": { "type": "string" }, "description": "Must contain all specified words." } } } } } }, "required": ["page_size", "page", "sort"] }, "examples": { "Search Monitors Example": { "summary": "Search monitors", "value": { "page_size": 20, "page": 1, "sort": [ { "field": "created_at", "operator": "desc" } ] } } } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/MonitorObject" }, "description": "Monitor objects returned for this page." }, "total": { "type": "integer", "description": "Total number of matching results." }, "page": { "type": "integer", "description": "Current page number in the response." }, "pages": { "type": "integer", "description": "Total number of pages available." }, "size": { "type": "integer", "description": "Number of objects returned in this page." } }, "required": ["items", "total", "page", "pages", "size"] }, "example": { "items": [ { "id": "mon_123", "name": "High-Risk Activity Monitor", "is_enabled": true, "created_by": "api", "updated_by": "api", "updated_at": "2026-02-11T12:00:00Z", "created_at": "2026-02-11T12:00:00Z", "monitors": [ { "type": "approval_to_multicall_contract", "target": [ { "type": "asset_id", "identifier": "asset_123" } ], "severity": "high", "is_silent": false } ], "tags": ["security"] } ], "total": 1, "page": 1, "pages": 1, "size": 1 } } }, "headers": {} } }, "security": [{ "APIKey": [] }, { "ClientID": [] }, { "JWT": [] }] } }, "/v0/platform/metrics": { "post": { "summary": "Create Metric", "deprecated": false, "description": "Create a metric definition that can be used by monitoring rules.", "tags": ["Metrics"], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Display name for the metric." }, "data": { "$ref": "#/components/schemas/MetricsRequest", "description": "Metric definition payload." } }, "required": ["name", "data"] }, "examples": { "Create Metric Example": { "summary": "Create metric", "value": { "name": "Outbound Transfer Metric", "data": { "type": "transfer", "from": { "operator": "in", "target": [ { "type": "asset_id", "identifier": "asset_123" } ] }, "to": { "operator": "in", "target": [ { "type": "tag", "identifier": "treasury" } ] } } } } } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetricObject" }, "example": { "id": "met_123", "name": "Outbound Transfer Metric", "data": { "type": "transfer", "from": { "operator": "in", "target": [ { "type": "asset_id", "identifier": "asset_123" } ] }, "to": { "operator": "in", "target": [ { "type": "tag", "identifier": "treasury" } ] } }, "created_at": "2026-02-11T12:00:00Z", "added_by": "api" } } }, "headers": {} } }, "security": [{ "APIKey": [] }, { "ClientID": [] }, { "JWT": [] }] } }, "/v0/platform/metrics/{id}": { "patch": { "summary": "Update Metric", "deprecated": false, "description": "Update a metric by ID.", "tags": ["Metrics"], "parameters": [ { "name": "id", "in": "path", "description": "The metric's ID.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Updated display name for the metric." }, "data": { "$ref": "#/components/schemas/MetricsRequest", "description": "Updated metric definition payload." } } }, "examples": { "Update Metric Example": { "summary": "Update metric", "value": { "name": "Outbound Transfer Metric v2", "data": { "type": "transfer", "from": { "operator": "in", "target": [ { "type": "asset_id", "identifier": "asset_123" } ] }, "to": { "operator": "in", "target": [ { "type": "tag", "identifier": "treasury" } ] } } } } } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetricObject" }, "example": { "id": "met_123", "name": "Outbound Transfer Metric v2", "data": { "type": "transfer", "from": { "operator": "in", "target": [ { "type": "asset_id", "identifier": "asset_123" } ] }, "to": { "operator": "in", "target": [ { "type": "tag", "identifier": "treasury" } ] } }, "created_at": "2026-02-11T12:00:00Z", "added_by": "api" } } }, "headers": {} } }, "security": [{ "APIKey": [] }, { "ClientID": [] }, { "JWT": [] }] }, "get": { "summary": "Get Metric", "deprecated": false, "description": "Fetch a single metric by ID.", "tags": ["Metrics"], "parameters": [ { "name": "id", "in": "path", "description": "The metric's ID.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetricObject" }, "example": { "id": "met_123", "name": "Outbound Transfer Metric", "data": { "type": "transfer", "from": { "operator": "in", "target": [ { "type": "asset_id", "identifier": "asset_123" } ] }, "to": { "operator": "in", "target": [ { "type": "tag", "identifier": "treasury" } ] } }, "created_at": "2026-02-11T12:00:00Z", "added_by": "api" } } }, "headers": {} } }, "security": [{ "APIKey": [] }, { "ClientID": [] }, { "JWT": [] }] }, "delete": { "summary": "Delete Metric", "deprecated": false, "description": "Remove a metric by ID.", "tags": ["Metrics"], "parameters": [ { "name": "id", "in": "path", "description": "The metric's ID.", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": false }, "example": {} } }, "headers": {} } }, "security": [{ "APIKey": [] }, { "ClientID": [] }, { "JWT": [] }] } }, "/v0/platform/metrics/search": { "post": { "summary": "Search Metrics", "deprecated": false, "description": "Search metric definitions with pagination and sorting controls.", "tags": ["Metrics"], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "page_size": { "type": "integer", "description": "Number of results returned per page." }, "page": { "type": "integer", "description": "Page number to return." }, "sort": { "type": "array", "description": "Sorting rules applied to the result set.", "items": { "type": "object", "properties": { "field": { "type": "string", "description": "Field to sort by.", "enum": ["id", "created_at"] }, "operator": { "type": "string", "description": "Sort direction.", "enum": ["asc", "desc"] } }, "required": ["field", "operator"] } }, "filter": { "type": "object", "description": "Optional filter criteria.", "properties": { "name": { "type": "object", "description": "Filter by metric name. Exactly one operator must be provided.", "properties": { "eq": { "type": "string", "description": "Exact match." }, "in": { "type": "array", "items": { "type": "string" }, "description": "Match any value in the list." }, "contains": { "type": "string", "description": "Substring match (case-insensitive)." }, "contains_all": { "type": "array", "items": { "type": "string" }, "description": "Must contain all specified words." } } }, "id": { "type": "object", "description": "Filter by metric ID. Only eq and in supported.", "properties": { "eq": { "type": "string", "description": "Exact match." }, "in": { "type": "array", "items": { "type": "string" }, "description": "Match any value in the list." } } } } } }, "required": ["page_size", "page", "sort"] }, "examples": { "Search Metrics Example": { "summary": "Search metrics", "value": { "page_size": 20, "page": 1, "sort": [ { "field": "created_at", "operator": "desc" } ] } } } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/MetricObject" }, "description": "Metric objects returned for this page." }, "page": { "type": "integer", "description": "Current page number in the response." }, "total": { "type": "integer", "description": "Total number of matching results." }, "pages": { "type": "integer", "description": "Total number of pages available." }, "size": { "type": "integer", "description": "Number of objects returned in this page." } }, "required": ["items", "total", "page", "pages", "size"] }, "example": { "items": [ { "id": "met_123", "name": "Outbound Transfer Metric", "data": { "type": "transfer", "from": { "operator": "in", "target": [ { "type": "asset_id", "identifier": "asset_123" } ] }, "to": { "operator": "in", "target": [ { "type": "tag", "identifier": "treasury" } ] } }, "created_at": "2026-02-11T12:00:00Z", "added_by": "api" } ], "page": 1, "total": 1, "pages": 1, "size": 1 } } }, "headers": {} } }, "security": [{ "APIKey": [] }, { "ClientID": [] }, { "JWT": [] }] } }, "/v0/stellar/transaction/scan": { "post": { "tags": ["Stellar"], "summary": "Scan Transaction", "description": "Gets a transaction and returns a full simulation indicating what will happen in the transaction together with a recommended action and some textual reasons of why the transaction was flagged that way.", "operationId": "stellar_single_transaction_scan_transaction_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StellarTransactionScanRequest" }, "examples": { "Transfer 1 XLM to another account": { "summary": "Transfer 1 XLM to another account", "value": { "chain": "pubnet", "options": ["validation", "simulation"], "account_address": "GDPMFLKUGASUTWBN2XGYYKD27QGHCYH4BUFUTER4L23INYQ4JHDWFOIE", "transaction": "AAAAAgAAAADewq1UMCVJ2C3VzYwoevwMcWD8DQtJkjxetobiHEnHYgAAAAEAAAAAAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAAA3sKtVDAlSdgt1c2MKHr8DHFg/A0LSZI8XraG4hxJx2IAAAABAAAAACI40RTBOFEE7uT5mZkoq30mbvxLPJpMUm9cIFHgK9SRAAAAAAAAAAAAmJaAAAAAAAAAAAA=", "metadata": { "type": "wallet", "url": "https://example.com" } } }, "Buy of 5 yXLM for 5 XLM": { "summary": "Buy of 5 yXLM for 5 XLM", "value": { "chain": "pubnet", "options": ["validation", "simulation"], "account_address": "GARDRUIUYE4FCBHO4T4ZTGJIVN6SM3X4JM6JUTCSN5OCAUPAFPKJDB7T", "transaction": "AAAAAgAAAAAiONEUwThRBO7k+ZmZKKt9Jm78SzyaTFJvXCBR4CvUkQAAAAEAAAAAAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAMAAAAAAAAAAF5WExNAAAAACI213D+DT4BUhl11c96xIQrcJXWsanXaNPppjLpmQa+AAAAAAL68IAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAA=", "metadata": { "type": "wallet", "url": "https://example.com" } } }, "Transfer 1 XLM, Then 100 XLM; This example should revert": { "summary": "Transfer 1 XLM, Then 100 XLM; This example should revert", "value": { "chain": "pubnet", "options": ["validation", "simulation"], "account_address": "GDPMFLKUGASUTWBN2XGYYKD27QGHCYH4BUFUTER4L23INYQ4JHDWFOIE", "transaction": "AAAAAgAAAADewq1UMCVJ2C3VzYwoevwMcWD8DQtJkjxetobiHEnHYgAAAAEAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAEAAAAA3sKtVDAlSdgt1c2MKHr8DHFg/A0LSZI8XraG4hxJx2IAAAABAAAAACI40RTBOFEE7uT5mZkoq30mbvxLPJpMUm9cIFHgK9SRAAAAAAAAAAAAmJaAAAAAAQAAAADewq1UMCVJ2C3VzYwoevwMcWD8DQtJkjxetobiHEnHYgAAAAEAAAAAIjjRFME4UQTu5PmZmSirfSZu/Es8mkxSb1wgUeAr1JEAAAAAAAAAADuaygAAAAAAAAAAAA==", "metadata": { "type": "wallet", "url": "https://example.com" } } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StellarTransactionScanResponse", "docs_api_name": "TransactionScanResponse", "title": "Response Schema" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StellarHTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/stellar/transaction/report": { "post": { "tags": ["Stellar"], "summary": "Report Transaction", "operationId": "stellar_report_transaction_transaction_report_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StellarReportTransactionRequest", "docs_api_name": "ReportTransactionRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "integer", "title": "Response Report Transaction Transaction Report Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StellarHTTPValidationError" } } } } }, "deprecated": true, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/bitcoin/transaction-raw/scan": { "post": { "tags": ["Bitcoin"], "summary": "Scan Transaction", "description": "Scan a raw Bitcoin transaction for security risks before signing. Returns a validation verdict (Benign, Warning, or Malicious) and, when requested, a simulation of asset changes.", "operationId": "bitcoin_scan_transaction_v0_transaction_raw_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BitcoinTransactionScanRequest", "docs_api_name": "TransactionScanRequest", "title": "Transaction Request" } } }, "required": true }, "responses": { "200": { "description": "Successful response with validation verdict and, if requested, simulation of asset changes.\n\nFor more information about responses, see the [full response reference](/api-reference/end-user-protection/transaction-scanning/bitcoin/bitcoin-transaction-scanning-response-reference).\n\nNote: HTTP 200 indicates the request was processed. Always check `validation.status` and `simulation.status` (when present), which may be `Error` with an `error` message (e.g. simulation failing due to invalid UTXOs).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BitcoinTransactionScanResponse" }, "examples": { "Benign": { "summary": "Benign transaction", "value": { "validation": { "status": "Success", "result_type": "Benign", "description": "Transaction appears safe", "reason": "No malicious patterns detected", "classification": "Safe to sign", "features": [] }, "simulation": null } }, "Malicious": { "summary": "Malicious transaction", "value": { "validation": { "status": "Success", "result_type": "Malicious", "description": "Known malicious address or pattern", "reason": "drainer", "classification": "Do not sign", "features": [] }, "simulation": null } } } } } }, "422": { "description": "Request validation failed (e.g. missing or invalid request body fields).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BitcoinHTTPValidationError" }, "examples": { "Missing Required Field": { "summary": "Missing required field", "value": { "detail": [ { "loc": ["body", "transaction"], "msg": "field required", "type": "value_error.missing" } ] } }, "Invalid Type": { "summary": "Invalid request body field", "value": { "detail": [ { "loc": ["body", "chain"], "msg": "value is not a valid enumeration member; permitted: 'bitcoin'", "type": "type_error.enum" } ] } } } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/bitcoin/transaction/report": { "post": { "tags": ["Bitcoin"], "summary": "Report Transaction", "description": "Submit an appeal or false-positive report for a Bitcoin transaction scan. Use when you believe a scan result was incorrect (e.g. should_be_benign, should_be_malicious, wrong_simulation_result).", "operationId": "bitcoin_report_transaction_v0_transaction_report_post", "requestBody": { "description": "Appeal event type, report payload (prior scan request_id or full transaction params), and optional details.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BitcoinReportTransactionRequest" } } }, "required": true }, "responses": { "200": { "description": "Report accepted; response body is the HTTP status code (e.g. 201).", "content": { "application/json": { "schema": { "type": "integer", "title": "Response Report Transaction V0 Transaction Report Post" }, "examples": { "Accepted": { "summary": "Report accepted", "value": 201 } } } } }, "422": { "description": "Request validation failed (e.g. missing or invalid request body fields).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BitcoinHTTPValidationError" }, "examples": { "Missing Required Field": { "summary": "Missing required field", "value": { "detail": [ { "loc": ["body", "details"], "msg": "field required", "type": "value_error.missing" } ] } }, "Invalid Event": { "summary": "Invalid event type", "value": { "detail": [ { "loc": ["body", "event"], "msg": "value is not a valid enumeration member; permitted: 'should_be_malicious', 'should_be_benign', 'wrong_simulation_result'", "type": "type_error.enum" } ] } } } } } } }, "deprecated": true, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/bitcoin/address/scan": { "post": { "tags": ["Bitcoin"], "summary": "Scan Address", "description": "Gets an address and returns a full security assessment indicating whether or not this address is malicious as well as textual reasons of why the address was flagged that way.", "operationId": "bitcoin_scan_address_address_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BitcoinAddressScanRequestSchema" }, "examples": { "Benign Address Scan": { "summary": "Benign Address Scan", "value": { "chain": "bitcoin", "address": "bc1qqks2h7dwrhgxvdcm56dvqaymhey3gd0pt9w0ne" } }, "Malicious OFAC Address Scan": { "summary": "Malicious OFAC Address Scan", "value": { "chain": "bitcoin", "address": "39fhoB2DohisGBbHvvfmkdPdShT75CNHdX" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BitcoinAddressScanResponseSchema" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BitcoinHTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/starknet/transaction/scan": { "post": { "tags": ["Starknet"], "summary": "Scan Transactions", "operationId": "starknet_scan_transaction_v0_transaction_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StarknetTransactionScanRequest" }, "examples": { "Assets lost to a drainer": { "summary": "Assets lost to a drainer", "value": { "chain": "mainnet", "options": ["simulation", "validation"], "account_address": "0x62a2959fa6502b30cbfb51199fbbe72e72ee4f5a86ec754b4172c7d7beb6ff4", "transaction": { "version": 3, "nonce": "0xc", "sender_address": "0x1840b3c89a446c74a3962647a2a7fb449d83905c4511027dfa9e099c6886691", "calldata": [ "0x1", "0x4b33a775b537a39c8960120806e815764f173e4fa76546e6706c31aa1b0ac4a", "0x994f23fef04108984d50a4f870723cd46f95d592ed3de9a13f97d5c55846fb", "0x9", "0x1", "0x53c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8", "0x1", "0x62a2959fa6502b30cbfb51199fbbe72e72ee4f5a86ec754b4172c7d7beb6ff4", "0x1", "0x5f612ce", "0x0", "0x0", "0x0" ], "chain_id": "0x534e5f4d41494e", "nonce_data_availability_mode": 0, "paymaster_data": [], "account_deployment_data": [] }, "metadata": { "type": "wallet", "url": "giftnostra.com" }, "block_number": "0xa12e3" } }, "An airdrop of malicious tokens": { "summary": "An airdrop of malicious tokens", "value": { "chain": "mainnet", "options": ["validation", "simulation"], "account_address": "0x636b7483301a66791e4d0437ca0e9f0b4dfdb60e5facbebf73fe61addc0ee08", "transaction": { "version": 3, "nonce": "0x4", "sender_address": "0x636b7483301a66791e4d0437ca0e9f0b4dfdb60e5facbebf73fe61addc0ee08", "calldata": [ "0x1", "0x79171811c2e56015eade41ca078eca64257bb248fbe724923f25755dbdea125", "0x1462e1b8a17a17958e2da7cd66f95dc107f18febea3ba367894050769dfe5e2", "0x4", "0x1ac9d351e649a3abf851246f994191f519780de27e3e384622c51fa969010cc", "0x2", "0x10216c4da528f158da16ddf651b7878c16fe59816f32ead8924ea2dab957f35", "0x5823c1ae122e587efe8e9072da659cdbbd86df895b8ba47fdca1f7f05de9eec" ], "chain_id": "0x534e5f4d41494e", "nonce_data_availability_mode": 0, "paymaster_data": [], "account_deployment_data": [] }, "metadata": { "type": "in_app" }, "block_number": "0xa1b74" } }, "A token swap on sithswap": { "summary": "A token swap on sithswap", "value": { "chain": "mainnet", "options": ["validation", "simulation"], "account_address": "0x480074f93560135bf281b622e4301356c6ea4209603aec03a576449f0ab31b", "transaction": { "version": 1, "nonce": "0x63", "sender_address": "0x480074f93560135bf281b622e4301356c6ea4209603aec03a576449f0ab31b", "calldata": [ "0x2", "0xda114221cb83fa859dbdb4c44beeaa0bb37c7537ad5ae66fe5e0efd20e6eb3", "0x219209e083275171774dab1df80982e9df2096516f06319c5c6d71ae0a8480c", "0x3", "0x28c858a586fa12123a1ccb337a0a3b369281f91ea00544d0c086524b759f627", "0x2a6d9261ce1a3f08", "0x0", "0x28c858a586fa12123a1ccb337a0a3b369281f91ea00544d0c086524b759f627", "0x2c0f7bf2d6cf5304c29171bf493feb222fef84bdaf17805a6574b0c2e8bcc87", "0xa", "0x2a6d9261ce1a3f08", "0x0", "0x2d5f0a", "0x0", "0x1", "0xda114221cb83fa859dbdb4c44beeaa0bb37c7537ad5ae66fe5e0efd20e6eb3", "0x53c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8", "0x1", "0x480074f93560135bf281b622e4301356c6ea4209603aec03a576449f0ab31b", "0x66d84c26" ], "max_fee": "0x0" }, "metadata": { "type": "wallet", "url": "https://app.sithswap.com" }, "block_number": "0xa8c33" } }, "Outside execution - ETH approve via AVNU": { "summary": "Outside execution - ETH approve via AVNU", "value": { "chain": "mainnet", "options": ["simulation", "validation"], "account_address": "0x636b7483301a66791e4d0437ca0e9f0b4dfdb60e5facbebf73fe61addc0ee08", "transaction": { "caller": "0x414e595f43414c4c4552", "nonce": "0x19938eae0e9", "execute_after": "0x68c1e11d", "execute_before": "0x68c3b5dd", "calls": [ { "to": "0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7", "selector": "0x219209e083275171774dab1df80982e9df2096516f06319c5c6d71ae0a8480c", "calldata": [ "0x4270219d365d6b017231b52e92b3fb5d7c8378b05e9abc97724537a80e93b0f", "0x23e1e5803b4005", "0x0" ] } ] }, "metadata": { "type": "wallet", "url": "https://app.avnu.fi" }, "block_number": "0xaae60" } }, "Outside execution - ETH to STRK swap via AVNU": { "summary": "Outside execution - ETH to STRK swap via AVNU", "value": { "chain": "mainnet", "options": ["simulation", "validation"], "account_address": "0xbf7ba278658bb8ddb076939d0d10b96323177a594792285516b2d7b72f9899", "transaction": { "caller": "0x414e595f43414c4c4552", "nonce": "0x19938eae0e9", "execute_after": "0x68c1e11d", "execute_before": "0x68c3b5dd", "calls": [ { "to": "0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7", "selector": "0x219209e083275171774dab1df80982e9df2096516f06319c5c6d71ae0a8480c", "calldata": [ "0x4270219d365d6b017231b52e92b3fb5d7c8378b05e9abc97724537a80e93b0f", "0x23e1e5803b4005", "0x0" ] }, { "to": "0x4270219d365d6b017231b52e92b3fb5d7c8378b05e9abc97724537a80e93b0f", "selector": "0x1171593aa5bdadda4d6b0efde6cc94ee7649c3163d5efeb19da6c16d63a2a63", "calldata": [ "0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7", "0x2386f26fc10000", "0x0", "0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d", "0x11f5e7126de018e241", "0x0", "0x11c7ec70f70441984f", "0x0", "0xbf7ba278658bb8ddb076939d0d10b96323177a594792285516b2d7b72f9899", "0x0", "0x0", "0x1", "0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7", "0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d", "0x5dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", "0xe8d4a51000", "0x6", "0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d", "0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7", "0x20c49ba5e353f80000000000000000", "0x3e8", "0x0", "0x451472b543000000000000000000" ] } ] }, "metadata": { "type": "wallet", "url": "https://app.avnu.fi" }, "block_number": "0x2077c7" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StarknetTransactionScanResponse", "docs_api_name": "TransactionScanResponse", "title": "Response Schema" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StarknetHTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/starknet/transaction/report": { "post": { "tags": ["Starknet"], "summary": "Report Transaction", "operationId": "starknet_report_transaction_v0_transaction_report_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StarknetReportTransactionRequest", "docs_api_name": "ReportTransactionRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "integer", "title": "Response Report Transaction V0 Transaction Report Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StarknetHTTPValidationError" } } } } }, "deprecated": true, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/sui/transaction/scan": { "post": { "tags": ["Sui"], "summary": "Scan Transaction", "description": "Get a risk recommendation with plain-language reasons for a Sui transaction.", "operationId": "sui_scan_transaction_v0_transaction_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuiSuiRequestSchema" }, "examples": { "Send 0.1 SUI": { "summary": "Send 0.1 SUI", "value": { "chain": "mainnet", "options": ["simulation"], "account_address": "0x45e90b3ea2e1920c43d92d224630d6a865c1b58a7b4e770c2ac156eab30eb491", "transaction": "AAACAAgA4fUFAAAAAAAgHvls2mKzo/48s/fPdWP8xKtE4BhIjR2O8gMaZ6bI1+sCAgABAQAAAQECAAABAQBF6Qs+ouGSDEPZLSJGMNaoZcG1intOdwwqwVbqsw60kQFySkLceU6uis9QxxK4CDYqttqK3ilc9/yEcCgxdaeA0cl/xhwAAAAAIEuXU9TpAtIJmbPVFpxdc70+RWUqlSrfyIUKT9q1Au0ERekLPqLhkgxD2S0iRjDWqGXBtYp7TncMKsFW6rMOtJHuAgAAAAAAACAKNQAAAAAAAA==", "metadata": { "type": "wallet", "url": "https://example.com" } } }, "Send SUI to malicious address": { "summary": "Send SUI to malicious address", "value": { "chain": "mainnet", "options": ["simulation", "validation"], "account_address": "0x45e90b3ea2e1920c43d92d224630d6a865c1b58a7b4e770c2ac156eab30eb491", "transaction": "AAADAAgQJwAAAAAAAAEAccWLOm90llYY/eSVPSD8T5lzhxRTrZthL4X2ppzLyKLJf8YcAAAAACCNwzLTpeia++0bnkPAd/Zr3GwqVAZih6j3pAkPqAotGwAgLeLahKiNNxyrIg4pEmg/YFJCzY8/z6q6unpSGXy4KAQCAgEBAAEBAAABAQIAAAECAEXpCz6i4ZIMQ9ktIkYw1qhlwbWKe053DCrBVuqzDrSRARl+wHSiXphwRqyeLYCxEIzpRAFMkqAEDI21eSG+9l21u+YRHAAAAAAgk68l0XG4B9aerTaFl0nZ8N4NgMgx57IUZWamN9MWuwFF6Qs+ouGSDEPZLSJGMNaoZcG1intOdwwqwVbqsw60ke4CAAAAAAAAQEtMAAAAAAAA", "metadata": { "type": "wallet", "url": "https://example.com" } } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuiTransactionScanResponse", "docs_api_name": "TransactionScanResponse", "title": "Response Schema" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuiHTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/sui/post-transaction/scan": { "post": { "tags": ["Sui"], "summary": "Scan Post-Transaction", "description": "Scan a transaction that was already executed on chain, returns validation with features indicating address poisoning entities and malicious operators.", "operationId": "sui_post_transaction_scan_v0_post_transaction_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuiPostTransactionRequestSchema" }, "examples": { "Transfer Sui": { "summary": "Transfer Sui", "value": { "metadata": { "non_dapp": true, "domain": "valid.com" }, "chain": "mainnet", "options": ["simulation"], "data": { "tx_hash": "C8yt17V6fgtXdqoeQ3CMGSkQMh3SUsu8sd3xPD1NwX7a" } } }, "Swap SUI to USDC": { "summary": "Swap SUI to USDC", "value": { "metadata": { "non_dapp": true, "domain": "valid.com" }, "chain": "mainnet", "options": ["simulation", "validation"], "data": { "tx_hash": "6WdxdRpTs4aUzUDsb771BFU4T2QXu8kVw4Astv9j9tX5" } } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuiPostTransactionScanResponse", "docs_api_name": "PostTransactionScanResponse", "title": "Response Schema" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuiHTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/solana/post-transaction/scan": { "post": { "tags": ["Solana"], "summary": "Scan Post-Transaction", "description": "Scan a transaction that was already executed on chain, returns validation with features indicating address poisoning entities and malicious operators.", "operationId": "solana_scan_post_transaction_post_transaction_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SolanaPostTransactionScanRequestSchema" }, "examples": { "Direct $SOL Transfer to Benign Address - BENIGN": { "summary": "Direct $SOL Transfer to Benign Address - BENIGN", "value": { "chain": "mainnet", "options": ["simulation", "validation"], "tx_hash": "3diX8kbXNk6fc6JMpSSFEzvNUhHZxR5sYf68XG77LoWXtHQt4nrTyXpJzeKbMXQ7kfY4MK3Er5FKR7mQxnx6TwqG" } }, "Direct $SOL Transfer - Gas Estimation": { "summary": "Direct $SOL Transfer to Benign Address with Gas Estimation - BENIGN", "value": { "chain": "mainnet", "options": ["gas_estimation"], "tx_hash": "3diX8kbXNk6fc6JMpSSFEzvNUhHZxR5sYf68XG77LoWXtHQt4nrTyXpJzeKbMXQ7kfY4MK3Er5FKR7mQxnx6TwqG" } }, "Direct $SOL Transfer to Drainer Address - MALICIOUS": { "summary": "Direct $SOL Transfer to Drainer Address - MALICIOUS", "value": { "chain": "mainnet", "options": ["simulation", "validation"], "tx_hash": "2iR793oNEhR5vvixih3b63A6YQjRJbXzHX2LxBesn2kiHovKqznj1Pr4FEmHyii9GqhnJmYDZ6mNvKKPPm8GxxVD" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SolanaResponseSchema" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SolanaHTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/solana/message/scan": { "post": { "tags": ["Solana"], "summary": "Scan Transaction", "description": "Gets a transaction and returns a full simulation indicating what will happen in the transaction together with a recommended action and some textual reasons of why the transaction was flagged that way.", "operationId": "solana_scan_message_message_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SolanaMessageScanRequestSchema" }, "examples": { "Direct $SOL Transfer to Benign Address - BENIGN": { "summary": "Direct $SOL Transfer to Benign Address - BENIGN", "value": { "encoding": "base58", "chain": "mainnet", "method": "signAndSendTransaction", "options": ["simulation", "validation"], "account_address": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY", "transactions": [ "vxBNpvao9QJmLKXUThbbjRnxm3ufu4Wku97kHd5a67FDjSqeHwcPrBKTjAHp4ECr61eWwoxvUEVTuuWX65P9bCNDJrTJpX64vjdtpHA8cogA4C92Ubj813wUUA8Ey4Bvcrdj5c1bSTrGZVzb8QmCKyzMu9kMiSWpFtaFrNN8zb9grr81N3R3njrFgxCxNSjboFtomLyZ3iUQBaBkRF1DyzGyc1r1kd8FnptaDWteNCXJHUYFeH8wBDwZJzNZfz71CiugXhxBTJSAqSNC8JEWm7kmCqwjUqLd23L2x2s" ], "metadata": { "url": "https://example.com" } } }, "Direct $SOL Transfer - Gas Estimation": { "summary": "Direct $SOL Transfer - Gas Estimation", "value": { "encoding": "base58", "chain": "mainnet", "method": "signAndSendTransaction", "options": ["gas_estimation"], "account_address": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY", "transactions": [ "vxBNpvao9QJmLKXUThbbjRnxm3ufu4Wku97kHd5a67FDjSqeHwcPrBKTjAHp4ECr61eWwoxvUEVTuuWX65P9bCNDJrTJpX64vjdtpHA8cogA4C92Ubj813wUUA8Ey4Bvcrdj5c1bSTrGZVzb8QmCKyzMu9kMiSWpFtaFrNN8zb9grr81N3R3njrFgxCxNSjboFtomLyZ3iUQBaBkRF1DyzGyc1r1kd8FnptaDWteNCXJHUYFeH8wBDwZJzNZfz71CiugXhxBTJSAqSNC8JEWm7kmCqwjUqLd23L2x2s" ], "metadata": { "url": "https://example.com" } } }, "Direct $SOL Transfer to Drainer Address - MALICIOUS": { "summary": "Direct $SOL Transfer to Drainer Address - MALICIOUS", "value": { "encoding": "base58", "chain": "mainnet", "method": "signAndSendTransaction", "options": ["simulation", "validation"], "account_address": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY", "transactions": [ "vxBNpvao9QJmLKXUThbbjRnxm3ufu4Wku97kHd5a67FDjSqeHwcPrBKTjAHp4ECr61eWwoxvUEVTuuWX65P9bCNDJrTJpX64vjdtpHA8cogA4C92Ubj813wUUA8Ey4Bvcrdj5c1bSTCnwoE8HeFYiyioRLNZTpShx8zkyzXaxkpUvPVRN26363bGvJDNSJt8bihmwAPxfrH7kSV9BvAuhRWsiuUAN4GZzyAiptknHZ1xjzrKAHz68UNJpWnYkaUThye6r3iULZUcp7baBaGAtnUmAdDMGG1UpBusWLF" ], "metadata": { "url": "https://example.com" } } }, "Swap $SOL to malicious rugpull token": { "summary": "Swap $SOL to malicious rugpull token", "value": { "encoding": "base58", "chain": "mainnet", "method": "signAndSendTransaction", "options": ["simulation", "validation"], "account_address": "B1NJhggrcCmm6U7rxaFqyQqW3tyhvEXtmHfzHp5sovD7", "transactions": [ "44gnAK9RG8XKNWB26VcxDDwgivHS4D49Qev76XmSKm9pNTm6zGYX48uuK4A1vDooteNbMguBfoNScQY6amVnBrGXLn9XytSwnpHqBu3rUDMaYqvQbkLVaJC4S2fbweQAsEDUn1eV9jfQFJZFimciXMjmerYecrUYG3WpSCE6FRH31oeJwQq1JeoDcjozyP3GAVsY7MNaFfKe8PCdFRW9WRcpDNG6FptYKc2H3qAXgZJwrXtbi6u4wDe2Ab2957JoANga4Ty74Ty5XRPgdGtdRFYENECJCya9ZxkF9sEaVaXpa5jJ7xBvfMXpwN74eBf6ej2Zg36J6eV5QfWBFFXPJcok5xszKiAJaBT7SnC1ud3hR1ucdhFKKLrpffBnEYNskY6oTVDnmjdqrX7nHFNZp8gjfCZTBiJQpKckt7sjPDSh32gV4ubRQPczxpw6urBEVZcB49gDdx1iN7gJ9uDwphNCFRcES1dnC9QzNaGaMe24CK3BDk8oEUPWK2y8WbeyyYcSNzAwh82kZ3jvgFMYZZXHxuihnsnRLzZtaFEC2weKpfg6Ziov5QBnsmeQ9ZC7R5jk326yJmRGsHgqMosSpZ2u5dxpUQ3E6C9oyR8VNa2CRH7VTVzRVdVab3CyxaF3bw4cmjRvWZLRbeb4BbBRJNt5cbMVTMZ8JY1ZxBQfoNmaeXvxiKFe1zNRxEncw6VoETK8wwEjTpPdnr6kB3fhbAVe2pK3DTbQzzgZQvVmP2XjL4HGSFxnQNeNjui8KRKTqMemmfXgSL8sUDYeBQXpSkfGb1gUyE9Wu" ], "metadata": { "url": "https://example.com" } } }, "SPL Token Transfer to Drainer Address - MALICIOUS": { "summary": "SPL Token Transfer to Drainer Address - MALICIOUS", "value": { "encoding": "base58", "chain": "mainnet", "method": "signAndSendTransaction", "options": ["simulation", "validation"], "account_address": "7kuKG4MaGvAKXoYRKzaoKqzbJS2oXD8F3bB5QFf1pDqc", "transactions": [ "81Qpn3P2kuoBypMmUv3HbzEuvVgoNtkJeWKAKSZyt72ZV63x3hGZS6RncMY2QyXEJaVFxYnaVhTRdKTQK283n46MveXxY2LiTQRcfwjn4bDYDTCVC9FmxxAriYMkVKRt75DZLjnKK5TzhoDArnd7cx46qT8DfDofi1Z53ddhPJEaTNawitsFkVEeeDJBcrQHruwFQviYyDAEnUzZqMabd896RjLJrZM9GS5biY4vCxRUGm8KwM6nKP462DWeW7uxgN3WVJYwLLHoFwF1AHYZei4zC4qCdRqQd2BsQBwbhaTHQFASL3d4KMChpo5KgjnqxEUkfgV23beeT5GYCFaGGBQxjwu3sFx5hSpkKxYYFNncAdaJCyBEdU6GMeFm6Y1xvsassn6d1e5BkcMhe7c2BSAYjtygN3phhWBQCkwDt8pD9xELnuP98NeujWgzQwKT7yat8iknE7gHwXZY1dCRd9GgEkPsFxxoMngyNHVrrKRtBmrXE9Vo13vNXGJ7EJ7HmZn32TtZwMvejqpVyVptRnW3GfhGLDjYQPyytwAX3xGZNR4hEVToDetUko" ], "metadata": { "url": "https://example.com" } } }, "SPL Token Exposure to Benign Address - BENIGN": { "summary": "SPL Token Exposure to Benign Address - BENIGN", "value": { "encoding": "base58", "chain": "mainnet", "method": "signAndSendTransaction", "options": ["simulation", "validation"], "account_address": "BmFdpraQhkiDQE6SnfG5omcA1VwzqfXrwtNYBwWTymy6", "transactions": [ "3T4DHUNXqSgNrtRMsDwQr7oG7756JXW4uNJ7x7RKJLTcSJRe6PqyR5fQffnXh4KTHs4MyRrDhR1K3zCeRrWsJBeoXxrwPxzAVJCmDvMzEZBJH61Umvr3n5PLWD5rB2YerhKvLjDe3piLSwL5DXMBYkL6Zx8HqW1XpHQxYzcpd3CCbuiVBB29bBQR3A3zZFpsAJNYPerseKhAWB7ys3VurqHpe3X5DuvtUtq4SuP5RnVYtQEbQXnknfTPYpGvqhL4jFZbYz2iVywUYi9srLC4waN4NLigV46RqXHiggTwpBcyDtKkLBhZYT7EerJ1zayPWytqvvCyqrtdBd" ], "metadata": { "url": "https://example.com" } } }, "Eclipse - ETH Transfer to Benign Address - BENIGN": { "summary": "Eclipse - ETH Transfer to Benign Address - BENIGN", "value": { "encoding": "base58", "chain": "eclipse_mainnet", "method": "signAndSendTransaction", "options": ["simulation", "validation"], "account_address": "B1NJhggrcCmm6U7rxaFqyQqW3tyhvEXtmHfzHp5sovD7", "transactions": [ "3md7BBV9wFjYGnMWcMNyAZcjca2HGfXWZkrU8vvho66z2sJMZFcx6HZdBiAddjo2kzgBv3uZoac3domBRjJJSXkbBvokxS6XbcMjHkPqeTXhiTtvbKmJFR5Gted8tuNAQHBfXjF8st9KN2TPjhB6qt6QDP1zo33qN27joRDqYekuUUSFcS4rpuVSLDqchuPT31nTZrTFBFUL4ns13CBrhCdRwComhquznpLZhroPzg5Nby5Z19m34jM85fQaHmaTXBvM1jJQ6JACEGHXjfp2H8yrFjkZchHndMmdh" ], "metadata": { "url": "https://example.com" } } }, "Eclipse - 2022 Token Program Transfer to Benign Address - BENIGN": { "summary": "Eclipse - 2022 Token Program Transfer to Benign Address - BENIGN", "value": { "encoding": "base58", "chain": "eclipse_mainnet", "method": "signAndSendTransaction", "options": ["simulation", "validation"], "account_address": "B1NJhggrcCmm6U7rxaFqyQqW3tyhvEXtmHfzHp5sovD7", "transactions": [ "sBkTbqV8HvcFj2vFYXv8mBzKScSTGnRp6XpW32PrjCi6ypjtcH25BwnP3boN1GvD6U2bVr5zNBNENiYGi9E2HSFYNZ1X4TtrJNN4Ss39aPqy1TfBz1EiY6Q43LfhhMFYEDUKmrLbCpgXAr9JfYrxZt6HZtR6PNHHkiMjJBrLWWrW2CGKqDLb3g9XNTW7Q6Hp2Ap1ez5PQ85ENTizbvoQgaaofJk2LTYy6kgiq1zws3tjr71pDmqUvgSF72vEb4R4DX9w5o1d1KHMHsAxKVFWve7rhnd41rY5LbLcK99cHv8VV5ffpdcYLGEo6mNEZcHuKKcZiHevdx7mHcdFXANgWLfyQqhc5JSbNA1RZdpZUvM9ERXTcfoP1tpojrCyM42rR3u5nVtaGU8DEb1RZL4ut1TydEVcs8a4E1Mozv7LWJaAq7LFvF7KXXwxMRuG6a7jvHe7Y35L4Ga6ATCaW66Moff9Tn6pDs7aCndEjWsWU5M4gKQbA6hhk7xsB8SPvxa5qNQ86tttGmtVn7jnMhvyZaGNfzpn72HvEEETovcfLTLqFptAPXy3FcaXYiJ3wtihgwW4Xnk9xZRRXu" ], "metadata": { "url": "https://example.com" } } }, "Eclipse - Token Program Transfer to a Known Malicious Address - MALICIOUS": { "summary": "Eclipse - Token Program Transfer to a Known Malicious Address - MALICIOUS", "value": { "encoding": "base58", "chain": "eclipse_mainnet", "method": "signAndSendTransaction", "options": ["simulation", "validation"], "account_address": "B1NJhggrcCmm6U7rxaFqyQqW3tyhvEXtmHfzHp5sovD7", "transactions": [ "MrxPqMC3VtxFvCKEcR4QGEhkLVHkUeqfx8Hd1cszDDSdYBjVKBWj9YB9jFUKz4uk5LRxhqaQZShU4CXhZEJr5rFyDfAgXgd5QykWPULkXiX9RyAfaLsyyzhipHGv4YwquUuEeW8RH3WVfv8t1XV8UUUAFK9SXpSydHePA93Ro21qN7a19VxpbLYvdTeLB4XxPmzrv7LrUketWEJt7BtqaeGre9SghJmawbVRWmbmVmRitH8NE4Bb6k3FzDfWxPLMxnuDcTuG8r2HcvQq4zz5Tv5uBdaeyZ52tsjxhD3WRzcWcncySREgwJP7mXYLxkVDwG9VCQA59eA5umk5N316f8k7K75yqTQTkVrbyKSNShxe7hiLLH6VMa39P3Sfjj74k1Hk5T6HCcBKhdV2qv4iGdiJ5dtXcudSf2rE5fkaNFXYf11evWmQZs6swY6gjcPKUkZVTXsCqe6xwKye7itotk8fndYQPePkEh5qiHSaZUH4BDS2YSeU5kQ6GKfqhssjyhyLVjX3CYD5ZatEGSFvVBpEwimVY7AwS9BB56NuRv8ea3zt4TbCiJB" ], "metadata": { "url": "https://example.com" } } }, "Sonic - $SOL Transfer to Benign Address - BENIGN": { "summary": "Sonic - $SOL Transfer to Benign Address - BENIGN", "value": { "encoding": "base58", "chain": "sonic_mainnet", "method": "signAndSendTransaction", "options": ["simulation", "validation"], "account_address": "CLam9zyDuGxBPAVSDvtHfQktLNPFhf5yXTmxQTBZyPaW", "transactions": [ "vxBNpvao9QJmLKXUThbbjRnxm3ufu4Wku97kHd5a67FDjSqeHwcPrBKTjAHp4ECr61eWwoxvUEVTuuWX65P9bCNDJrTJpXBGhg6KZBhF1MK7vHxzCgRw9WYECKvGG2U9SGbchzg5e6MwNqxnoqR9whxmJa3rXmNhfYY3mE8KwzBgYe656NJtKXs7G8Gr7MPGE8Sg578hCydVkDHtwJDNrYiSnGebaUrxxUbD8zsSA3hwiUbrMBdr6C5G85iFcXRgTLyj6ULNgMXfBZnZRth1yDKPgU6AdHaP15nJZxK" ], "metadata": { "url": "https://example.com" } } }, "Sonic - SPL Token Transfer to Benign Address - BENIGN": { "summary": "Sonic - SPL Token Transfer to Benign Address - BENIGN", "value": { "encoding": "base58", "chain": "sonic_mainnet", "method": "signAndSendTransaction", "options": ["simulation", "validation"], "account_address": "CLam9zyDuGxBPAVSDvtHfQktLNPFhf5yXTmxQTBZyPaW", "transactions": [ "81Qpn3P2kuoBypMmUv3HbzEuvVgoNtkJeWKAKSZyt72ZV63x3hGZS6RncMY2QyXEJaVFxYnaVhTRdKTQK283n46MveXxY2MSrCiDZhj8x4P2Ygp6AMnmS7zGrgkGRxbq6gsmgB9AUzTmdcPGFcTs7UPe7DVbPuAMKLrVGvXYF9oJ718gm7szjaue2WG6jABvysygES1mNK81cJPPYHD3JSg55DBHaoptKWub8h7sgCrGmVVTFDmMQ1ExH9JXzenePp7XgHWNj7pFER4ipKDxU2Z2D1943yrHDtdR7gxKBmqYWg4yTA8w8DmPqbow2bBRGgbcJVsPeJr66JRpRANmUMpwWZRaHQesMFCXJQHB5M86p1J3CVVH3Ue36MwZSAn2JqNLCdWGL125cCCNTNs7Y2RLKgbdRN3nZ7w5FyXco2jEqf6uw33YN6UiBhNTd8EJ3cLmv1LGXPvB4zS6x7RYqutmBhBiS46CnTh3XNmJhGg9tYy9v1LvUfwXV4jYXNr5wcA71zKGCNn1YrLbrY2DmEeUPymdV7bYBxbjLPkai4LdxoQtY76dJEPdeo" ], "metadata": { "url": "https://example.com" } } }, "Jito Bundle - $SOL Transfer to Benign Address - BENIGN": { "summary": "Jito Bundle - $SOL Transfer to Benign Address - BENIGN", "value": { "encoding": "base58", "chain": "mainnet", "method": "signAllTransactions", "execution_mode": "jito_bundle", "options": ["simulation", "validation"], "account_address": "BnFa6T6Sf7Cd28GW2ror8C88vdH1nPArKh4PnwFEgTmc", "transactions": [ "51f46eijYzqyUy1CLj7ATXjBb7UohtK4RXAq3XGW6HtpvfR1pPMupDZPPZpEEgNysQ6ur2LNd6dZjXG4TRCHoSfiSgY94qhtA7HKW17PuxL41P9SR9nd6JywBTrHu4YbUB22AACKUXmjgn6Jgj47QXK5UjYdhof1sb6xGEmJyT8cuzDtGijT79rXSRuuirgvJ1S9bLz51r6wcr54h7yhwih4zogbKXqEgFpF24isikgwC8jR8BiHe53V9u4JwiffE2pKah4W7KyAb5KJdvmhHcYWqTuUBtsmYGcZD", "ASzpcMc9FiUv3EbWL84xQMvdau9MwVGbZyxXLQxQuQKsaC9M4jegbACnu7rvbH3fDUqYajqsjh5WjVz2cH7ehA6oXpAg72rg7Htsmh5Rmy2wTu8yJTRxmhGUvudj6fRyqro2UmMAyMUXPNrP6hhHErBdtcmcazb7dLGLLT52AmKFq7t1kXcck2LhTshEeNQvM7BQJdZcN7u7qvufVA4yv3t12jFRYPpANKKLDKKYPb4Z7n94YVeZQwXomSsSpHnuhphJWcijcYDgrjw8ePcVqJ2dk5EpCWe1HBeL3ahQbUsqXgBijbU8j8XZJ2ff8tiQu7zVGCLvcrqyt2s9GwEXRVXgwWQbcwgz8U7x9fsPFErFrb1drbR5YFQPhnAabheFEDtfCjZ7SyyE7bxbJ4cxThJMQpPBMyssCVV8jzXq" ], "metadata": { "url": "https://example.com" } } }, "Jito Bundle - $SOL Transfer to Malicious Address - MALICIOUS": { "summary": "Jito Bundle - $SOL Transfer to Malicious Address - MALICIOUS", "value": { "encoding": "base58", "chain": "mainnet", "method": "signTransaction", "execution_mode": "jito_bundle", "options": ["simulation", "validation"], "account_address": "BnFa6T6Sf7Cd28GW2ror8C88vdH1nPArKh4PnwFEgTmc", "transactions": [ "4aKt55Zns792KfXX4d6zQenZtdyBcgzwEsEz8jTweWJPXQtCP8sczdc2L8mNvhq2AyNhLpc6qrQY8hF6TY4eZGS5P4CgYnYVuk4rsFvqstrojJH9JyBUoffX4GqyJZchKfZMX48wWuLecqDoDfkcnGCGr3m6Gr8n16qmhjsj4hY5JSeDSMDsE3SVK52WeK8o8uZS87G3MkFmFPMeRDKznvabRZz7ZLNc2ERQzCMT8CCozsFYHhnJ6bkpqAa5Nbf8zhaMvruiskJVwWk9ZA1QZCychAQy8hN4Ka2R5", "9xob5MMn1zb5JoqiUajypXU4Lo47sSQsN3L6aLPjjCe3kysE6tzq7f6U2CwmhCnUnpthqEcp96oWxqPLR4eCzWQ6nnFWoE7nouPT47BpEqzWxvrwLv4QDQoKj4zxbWiZsv6e9oc2xQUBzN67ofynEGfW9BQL971rF4TnwywGUFey4wwABjE6BDcrYRCBVKNFU1u2dwSua3QReMRah59zWTPkzUsT7AnyZaejBKR6u3rfY7FrbMX9u9tXXTFsR7d1AMM1WvHUuswvS2RDCnqtAoz4LkzTyny3UBft4XNwYUAfwrqwhmFJ1Es3TK5PsRn6iEikYZZXAQo1XxB4sfu94DhrirCAHhNJsH7Nw7LYcCsELumUN9akqUQ3ZCrx3YWMJHsTiThhKTiShkEtDw5v4hx99ogaQqh9eLQ3fHPM" ], "metadata": { "url": "https://app.lpagent.io" } } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SolanaResponseSchema" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SolanaHTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/token/scan": { "post": { "tags": ["Token"], "summary": "Scan Token", "description": "Gets a token address and scan the token to identify any indication of malicious behavior", "operationId": "scan-token", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenValidationRequest" }, "examples": { "Malicious ERC20 Token": { "summary": "Ethereum - Malicious ERC20 Token", "value": { "chain": "ethereum", "address": "0x66587563e933bbf3974b89156b47bb82b921eb35" } }, "Malicious BSC ERC20 Token": { "summary": "BSC - Malicious ERC20 Token", "value": { "chain": "bsc", "address": "0x53da1d6c114d02be5db1c8c37a40a15920f007da" } }, "Benign ERC721 Token": { "summary": "Ethereum - Benign ERC721 Token", "value": { "chain": "ethereum", "address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d" } }, "Malicious ERC721 Token": { "summary": "Polygon - Malicious ERC721 Token", "value": { "chain": "polygon", "address": "0x37f2db133d402d339aaa9202379f15b549077f9a" } }, "Malicious Base Token": { "summary": "Base - Malicious Token", "value": { "chain": "base", "address": "0x7b28085cefd0818e7ed7e8379a20f5cd34d770a7" } }, "Warning ERC20 Token": { "summary": "BSC - Warning ERC20 Token", "value": { "chain": "bsc", "address": "0xcAC0C41a420Fa8AaE94A058E8D328A583F78EE37" } }, "Malicious Impersonator ERC20 Token": { "summary": "BSC - Impersonator ERC20 Token", "value": { "chain": "bsc", "address": "0x53da1d6c114d02be5db1c8c37a40a15920f007da" } }, "Malicious Rugpull Token": { "summary": "Malicious Rugpull Token", "value": { "chain": "base", "address": "0xfb7e4d31e5882826fcca1bf0197ed3c0d91eb3b1" } }, "Malicious Backdoor Token": { "summary": "Token With Malicious Backdoor", "value": { "chain": "base", "address": "0x34b8a376c4547348acc700b751031fed76ed7de9" } }, "Spam Solana Token": { "summary": "Solana - Unstable Token Price", "value": { "chain": "solana", "address": "Ftkcs3GywU2jLjDD2WiFXcMCpQEPz3eCWk856uX7pump" } }, "Spam Starknet Token": { "summary": "Starknet - Airdrop Token", "value": { "chain": "starknet", "address": "0x005b9282d14bcc3c27c34ba16540d11f8252f9121929eeb3ab04d2b93e5357f8" } }, "Benign Sui Token": { "summary": "Sui - Benign Token", "value": { "chain": "sui", "address": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI" } }, "Spam Sui Token": { "summary": "Sui - Spam Token", "value": { "chain": "sui", "address": "0x1decfb4bbe641608e970bad1a9cf953d98177f094fb673096f12ed6ebd88a1e8::rnft::TICKET_NFT" } }, "Malicious Hedera Token": { "summary": "Hedera - Malicious Metadata Token", "value": { "chain": "hedera", "address": "0.0.7910054" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenValidationResponse" } } } }, "404": { "description": "Token scan result is not available. This can occur when:\n1. The token scan result is not yet available — try again later\n2. The address is not a token\n3. For cache-only requests: the token has never been scanned (cache miss); a backend rescan is triggered — retry later or wait for webhook updates.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "examples": { "Token scan not available": { "summary": "Token Scan Result Not Available", "value": { "detail": "Token scan is not available yet. Please try again later." } } } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/hedera/transaction/scan": { "post": { "tags": ["Hedera"], "summary": "Scan Transaction", "description": "Get a risk recommendation with plain-language reasons for a Hedera transaction.", "operationId": "hedera_scan_transaction_v0_transaction_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HederaTransactionRequestSchema" }, "examples": { "HBAR Transfer": { "summary": "HBAR Transfer", "value": { "chain": "mainnet", "options": ["simulation"], "account_address": "0.0.9352077", "transaction": "KmEKXQoVCgwIjvztygYQn6yo3QISBRiawrcDEgIYBhiAwtcvIgIIeDIVSEJBUiB0cmFuc2ZlciBleGFtcGxlciAKHgoNCgUYjee6BBD/p9a5BwoNCgUYha/rARCAqNa5BxIA", "metadata": { "type": "wallet", "url": "https://example.com" } } }, "HBAR Allowance": { "summary": "HBAR Allowance", "value": { "chain": "mainnet", "options": ["simulation"], "account_address": "0.0.9352077", "transaction": "KmIKXgoVCgwIjvztygYQ06G/9AISBRiawrcDEgIYAxiAwtcvIgIIeDIfSEJBUiBhbGxvd2FuY2UgYXBwcm92YWwgZXhhbXBsZYIDFgoUCgUYjee6BBIFGIWv6wEYgMq17gESAA==", "metadata": { "type": "wallet", "url": "https://example.com" } } }, "Token Transfer": { "summary": "Token Transfer", "value": { "chain": "mainnet", "options": ["simulation"], "account_address": "0.0.9352077", "transaction": "KmQKYAoVCgwIjvztygYQtdP9hgMSBRiawrcDEgIYCBiAwtcvIgIIeDIWVG9rZW4gdHJhbnNmZXIgZXhhbXBsZXIiEiAKBBjjtUASCwoFGI3nugQQ/4h6EgsKBRiFr+sBEICJehIA", "metadata": { "type": "wallet", "url": "https://example.com" } } }, "Token Transfer with Malicious Token": { "summary": "Token Transfer with Malicious Token", "value": { "chain": "mainnet", "options": ["simulation"], "account_address": "0.0.9352077", "transaction": "KmUKYQoVCgwIkv7tygYQuKDQjAESBRiawrcDEgIYCRiAwtcvIgIIeDIWVG9rZW4gdHJhbnNmZXIgZXhhbXBsZXIjEiEKBRiX1PkDEgsKBRiN57oEEP+IehILCgUYha/rARCAiXoSAA==", "metadata": { "type": "wallet", "url": "https://example.com" } } }, "Token Allowance": { "summary": "Token Allowance", "value": { "chain": "mainnet", "options": ["simulation"], "account_address": "0.0.1440772", "transaction": "KlUKUQoUCgsI4pPuygYQu+TDPxIFGJrCtwMSAhgJGIDC1y8iAgh4MhBVU0RDIGFwcHJvdmFsICQ1ggMZGhcKBBjjtUASBBiE+FcaBBj18wcgwJaxAhIA", "metadata": { "type": "wallet", "url": "https://example.com" } } }, "NFT Transfer": { "summary": "NFT Transfer", "value": { "chain": "mainnet", "options": ["simulation"], "account_address": "0.0.9352077", "transaction": "KlMKTwoVCgwIrZfuygYQyIHyxQMSBRiawrcDEgIYBRiAwtcvIgIIeDIMTkZUIHRyYW5zZmVychsSGQoEGPjMNRoRCgUYjee6BBIFGIWv6wEY7i8SAA==", "metadata": { "type": "wallet", "url": "https://example.com" } } }, "Unsupported Transaction Example - Token Wipe": { "summary": "Unsupported Transaction Example - Token Wipe", "value": { "chain": "mainnet", "options": ["simulation"], "account_address": "0.0.9352077", "transaction": "KisKJwoGEgQYtcovEgIYAxiAiXoiAgh4ugIQCgQY47VAEgQYtcovGMCEPRIA", "metadata": { "type": "wallet", "url": "https://example.com" } } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HederaTransactionScanResponseSchema" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HederaHTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/token/report": { "post": { "tags": ["Token"], "summary": "Report Token", "description": "Report for misclassification of a token.", "operationId": "token-report", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReportRequest_TokenReportParams_" }, "examples": { "Token report request_id example": { "summary": "Token report request_id example", "value": { "event": "FALSE_POSITIVE", "report": { "type": "request_id", "request_id": "11111111-1111-1111-1111-111111111111" }, "details": "Details about the report" } }, "Token report params example": { "summary": "Token report params example", "value": { "event": "FALSE_POSITIVE", "report": { "type": "params", "params": { "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "chain": "ethereum" } }, "details": "Details about the report" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/token-bulk/scan": { "post": { "tags": ["Token"], "summary": "Scan Token Bulk", "description": "Gets a list of token addresses and scan the tokens to identify any indication of malicious behaviour", "operationId": "scan-token-bulk", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkTokenValidationRequest" }, "examples": { "Ethereum Tokens": { "summary": "Ethereum - Bulk Tokens", "value": { "chain": "ethereum", "tokens": [ "0x66587563e933bbf3974b89156b47bb82b921eb35", "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d" ] } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkTokenValidationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/token/snapshot/full": { "get": { "tags": ["Token"], "summary": "Full Snapshot", "description": "This endpoint provides a state snapshot of all token scans, allowing you to synchronize with the latest state\n\nSpecify your preferred page size to manage response size.\nUse the provided cursor to navigate through the pages.\nThe cursor value will be null on the final page, indicating there are no more results to fetch.\n\nTo retrieve the complete data set, iterate through all pages using the cursors provided in the response", "operationId": "token-snapshot-full", "parameters": [ { "required": true, "deprecated": false, "explode": false, "schema": { "$ref": "#/components/schemas/TokenScanSupportedChains" }, "name": "chain", "in": "query", "allowEmptyValue": false, "allowReserved": false }, { "description": "Cursor to start from, if not provided, the first page will be returned", "required": false, "deprecated": false, "explode": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor", "description": "Cursor to start from, if not provided, the first page will be returned" }, "name": "cursor", "in": "query", "allowEmptyValue": false, "allowReserved": false }, { "description": "Number of tokens to return in a page", "required": false, "deprecated": false, "explode": false, "schema": { "type": "integer", "maximum": 5000.0, "exclusiveMinimum": 0.0, "title": "Size", "description": "Number of tokens to return in a page", "default": 50 }, "name": "size", "in": "query", "allowEmptyValue": false, "allowReserved": false }, { "description": "Filter tokens by type. Allowed values are \"Fungible\" or \"NonFungible\". If not provided, all types will be included.", "required": false, "deprecated": false, "explode": false, "schema": { "anyOf": [ { "type": "string", "enum": ["Fungible", "NonFungible"] }, { "type": "null" } ], "title": "Token Type", "description": "Filter tokens by type. Allowed values are \"Fungible\" or \"NonFungible\". If not provided, all types will be included." }, "name": "token_type", "in": "query", "allowEmptyValue": false, "allowReserved": false } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenCursorPage_TokenValidationResponse_" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/token/snapshot/diff": { "get": { "tags": ["Token"], "summary": "Diff Snapshot", "description": "Retrieve tokens that experienced a state change within the specified timeframe\n\nSpecify your preferred page size to manage response size.\nSpecify the time frame in minutes.\nit is recommended to use timeframes shorter than 30 minutes\n\nUse the provided cursor to navigate through the pages.\nThe cursor value will be null on the final page, indicating there are no more results to fetch.\nTo retrieve the complete data set, iterate through all pages using the cursors provided in the response", "operationId": "token-snapshot-diff", "parameters": [ { "required": true, "deprecated": false, "explode": false, "schema": { "$ref": "#/components/schemas/TokenScanSupportedChains" }, "name": "chain", "in": "query", "allowEmptyValue": false, "allowReserved": false }, { "description": "Timeframe in minutes", "required": false, "deprecated": false, "explode": false, "schema": { "type": "integer", "maximum": 360.0, "exclusiveMinimum": 0.0, "title": "Timeframe", "description": "Timeframe in minutes", "default": 10 }, "name": "timeframe", "in": "query", "allowEmptyValue": false, "allowReserved": false }, { "description": "Cursor to start from, if not provided, the first page will be returned", "required": false, "deprecated": false, "explode": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor", "description": "Cursor to start from, if not provided, the first page will be returned" }, "name": "cursor", "in": "query", "allowEmptyValue": false, "allowReserved": false }, { "description": "Number of tokens to return in a page", "required": false, "deprecated": false, "explode": false, "schema": { "type": "integer", "maximum": 5000.0, "exclusiveMinimum": 0.0, "title": "Size", "description": "Number of tokens to return in a page", "default": 50 }, "name": "size", "in": "query", "allowEmptyValue": false, "allowReserved": false } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenCursorPage_TokenValidationResponse_" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/token/hooks/{chain}": { "get": { "tags": ["Token"], "summary": "Get a webhook", "description": "Get information about an existing webhook for a given chain", "operationId": "get-hook", "parameters": [ { "required": true, "deprecated": false, "explode": false, "schema": { "$ref": "#/components/schemas/TokenScanSupportedChains" }, "name": "chain", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Hook" } } } }, "404": { "description": "Hook not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] }, "post": { "tags": ["Token"], "summary": "Create a new webhook", "description": "Creates a webhook subscription for a chain to receive real-time token scan updates.", "operationId": "create-hook", "parameters": [ { "required": true, "deprecated": false, "explode": false, "schema": { "$ref": "#/components/schemas/TokenScanSupportedChains" }, "name": "chain", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HookRequest" }, "examples": { "Create Hook Filter Example": { "summary": "Create Hook Filter Example", "value": { "url": "https://example.com/", "shared_secret_key": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "filter": { "filter_type": "token_address", "token_addresses": [ "0x1234567890abcdef1234567890abcdef12345678" ] } } } } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Hook" } } } }, "400": { "description": "Host not reachable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] }, "delete": { "tags": ["Token"], "summary": "Delete a webhook", "description": "Deletes the webhook subscription for a chain and stops further token scan updates.", "operationId": "delete-hook", "parameters": [ { "required": true, "deprecated": false, "explode": false, "schema": { "$ref": "#/components/schemas/TokenScanSupportedChains" }, "name": "chain", "in": "path" } ], "responses": { "204": { "description": "Successful Response" }, "404": { "description": "Hook not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/token/hooks/": { "get": { "tags": ["Token"], "summary": "List all webhooks", "description": "List all active webhook subscriptions across all chains", "operationId": "list-hooks", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Hook" }, "type": "array", "title": "Response List-Hooks" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/token/bulk-export/jobs": { "post": { "tags": ["Token"], "summary": "Create Export Job", "description": "Creates an asynchronous job to export token scan data for a chain in the requested format.", "operationId": "create-bulk-export-job", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkExportJobRequest", "description": "Export job request" }, "examples": { "Create Export Job Example": { "summary": "Create Export Job Example", "value": { "chain": "ethereum", "token_type": "fungible", "format": "jsonl_gzip", "sync_start_time": 0 } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkExportJobResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/token/bulk-export/jobs/{job_id}": { "get": { "tags": ["Token"], "summary": "Get Job Status", "description": "Retrieves the current status of the job and download URLs when status is `succeeded`.", "operationId": "get-bulk-export-job-status", "parameters": [ { "description": "The ID of an export job you already created.", "required": true, "deprecated": false, "explode": false, "schema": { "type": "string", "title": "Job Id", "description": "The ID of an export job you already created." }, "name": "job_id", "in": "path" } ], "responses": { "200": { "description": "Job status retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkExportJobStatusResponse" }, "examples": { "Job Status Running": { "summary": "Job Status Running", "value": { "status": "running" } }, "Job Status Succeeded": { "summary": "Job Status Succeeded", "value": { "status": "succeeded", "files": [ "https://s3.amazonaws.com/bucket/path/file1.json.gz?signature=...", "https://s3.amazonaws.com/bucket/path/file2.json.gz?signature=..." ], "expires_in": 86390, "chain": "ethereum", "tokens_count": 150000 } } } } } }, "404": { "description": "Job not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/token/recent-rugpull-risks": { "get": { "tags": ["token"], "summary": "Get Recent Rugpull Risks", "description": "Returns recently detected pre-dump rugpull-risk token addresses for the requested chain.", "operationId": "get-recent-rugpull-risks", "parameters": [ { "description": "Which chain to look at for recent rugpull tokens.", "required": true, "deprecated": false, "explode": false, "schema": { "$ref": "#/components/schemas/TokenScanSupportedChains", "description": "Which chain to look at for recent rugpull tokens." }, "name": "chain", "in": "query", "allowEmptyValue": false, "allowReserved": false }, { "description": "Maximum number of token addresses to return (between 1 and 20)", "required": false, "deprecated": false, "explode": false, "schema": { "type": "integer", "maximum": 20, "minimum": 1, "title": "Results Limit", "description": "Maximum number of token addresses to return (between 1 and 20)", "default": 5 }, "name": "results_limit", "in": "query", "allowEmptyValue": false, "allowReserved": false } ], "responses": { "200": { "description": "List of token addresses identified as recent rugpull risks", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" }, "title": "Response Get-Recent-Rugpull-Risks" }, "examples": { "Rugpull Addresses": { "summary": "List of Rugpull Addresses", "value": [ "0xfb7e4d31e5882826fcca1bf0197ed3c0d91eb3b1", "0x34b8a376c4547348acc700b751031fed76ed7de9" ] } } } } }, "422": { "description": "Validation Error - Invalid chain or parameters", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/solana/address/scan": { "post": { "tags": ["Solana"], "summary": "Scan Address", "description": "Gets an address and returns a full security assessment indicating whether or not this address is malicious as well as textual reasons of why the address was flagged that way.", "operationId": "solana_scan_address_address_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SolanaAddressScanRequestSchema" }, "examples": { "Benign Address Scan": { "summary": "Benign Address Scan", "value": { "chain": "mainnet", "address": "2ojv9BAiHUrvsm9gxDe7fJSzbNZSJcxZvf8dqmWGHG8S", "metadata": { "url": "https://example.com" } } }, "Mint Address Scan": { "summary": "USDC Mint Address Scan", "value": { "chain": "mainnet", "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "metadata": { "url": "https://example.com" } } }, "Token Address Scan": { "summary": "Token Address Scan", "value": { "chain": "mainnet", "address": "DzHkPPfGbg6xmvvmEmx1toxKD91ZzWfNJU2hvP5eVMmT", "metadata": { "url": "https://example.com" } } }, "Contract Address Scan": { "summary": "Contract Address Scan", "value": { "chain": "mainnet", "address": "11111111111111111111111111111111", "metadata": { "url": "https://example.com" } } }, "Malicious Address Scan": { "summary": "Malicious Address Scan", "value": { "chain": "mainnet", "address": "BBQUMqaFELxTFh8r1xSttYMHX6ZKzLWhsmGod2vuxgEc", "metadata": { "url": "https://example.com" } } }, "Stake Account Address Scan": { "summary": "Stake Account Address Scan", "value": { "chain": "mainnet", "address": "Drj6HXFGdir5ijXgGNmptfzDTsKQKmvpYtdj1vVE2SkM" } }, "Mutable Program Address Scan": { "summary": "Mutable Program Address Scan", "value": { "chain": "mainnet", "address": "T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt" } }, "Metaplex Metadata Address Scan": { "summary": "Metaplex Metadata Address Scan", "value": { "chain": "mainnet", "address": "CBadLMgRQYNJUG9oRZnA367ri9ch2xwpLDQ7Y2BqUjhq" } }, "Vote Account Address Scan": { "summary": "Vote Account Address Scan", "value": { "chain": "mainnet", "address": "odc2aCE7yWTcV8ApP1cHmVqQZTkLNduqaYyKE1XhpE3" } }, "Immutable Program Address Scan": { "summary": "Immutable Program Address Scan", "value": { "chain": "mainnet", "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" } }, "Program Derived Address Scan": { "summary": "Program Derived Address Scan", "value": { "chain": "mainnet", "address": "HxkAfaGm9zD5BMTAfVsfWeX8rKVFDpFNxskECkhzij7" } }, "Address Lookup Table Address Scan": { "summary": "Address Lookup Table Address Scan", "value": { "chain": "mainnet", "address": "9JqEwvgiSLd5gvMKtKXTYtmKBuhByGRZe7iPzHNQd4s3" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SolanaAddressScanResponseSchema" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SolanaHTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/hedera/address/scan": { "post": { "tags": ["Hedera"], "summary": "Scan Address", "operationId": "hedera_scan_address_v0_address_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HederaAddressScanRequestSchema" }, "examples": { "Native Coin - Benign": { "value": { "address": "0.0.1456986", "chain": "mainnet" } }, "Malicious Address": { "value": { "address": "0.0.9268759", "chain": "mainnet" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HederaAddressScanResponseSchema" }, "examples": { "Example Response": { "value": { "result_type": "Benign", "features": [ { "type": "Info", "feature_id": "IS_EOA", "description": "This address is an EOA" } ] } } } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HederaHTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/sui/address/scan": { "post": { "tags": ["Sui"], "summary": "Scan Address", "description": "Gets an address and returns a full security assessment indicating whether or not this address is malicious as well as textual reasons of why the address was flagged that way.", "operationId": "sui_scan_address_v0_address_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuiAddressScanRequestSchema" }, "examples": { "Native Coin - Benign": { "summary": "Native Coin - Benign", "value": { "address": "0x2", "chain": "mainnet" } }, "Malicious Address": { "summary": "Malicious Address", "value": { "address": "0x2de2da84a88d371cab220e2912683f605242cd8f3fcfaababa7a52197cb82804", "chain": "mainnet" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuiAddressScanResponseSchema" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuiHTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/stellar/address/scan": { "post": { "tags": ["Stellar"], "summary": "Scan Address", "description": "Get a full security assessment indicating weather or not this address is malicious as well as textual reasons of why the address was flagged that way.", "operationId": "stellar_scan_address_address_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StellarAddressScanRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StellarAddressFeatures" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StellarHTTPValidationError" } } } } }, "deprecated": false, "security": [ { "APIKey": [] }, { "ClientID": [] } ] } }, "/v0/platform/audit-logs/search": { "post": { "summary": "Search Audit Logs", "deprecated": false, "description": "Returns audit events for the organization. Dates are interpreted in UTC. Request/response enums are aligned so values returned can be reused as filters.", "tags": ["Audit Logs"], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuditLogSearchRequest" }, "examples": { "Search Audit Logs Example": { "summary": "Search audit logs with date range and filters", "value": { "start_date": "2024-01-01T00:00:00Z", "end_date": "2024-01-31T23:59:59Z", "sort": "desc", "actor_types": ["user"], "actions": ["create", "edit"], "entity_types": ["monitor", "asset"], "page": 1, "page_size": 100, "timezone": "Asia/Jerusalem" } } } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuditLogSearchResponse" }, "example": { "items": [ { "id": "al_abc123", "actor": "user@example.com", "entity_id": "mon_456", "chain": null, "summary": "Monitor created", "timestamp": "2024-01-15T10:30:00Z", "actor_type": "user", "action": "create", "entity_type": "monitor" } ], "total": 1, "page": 1, "pages": 1, "size": 1 } } }, "headers": {} } }, "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ] } }, "/v0/platform/cosigners/{id}/solana/evaluate": { "post": { "description": "Test your cosigner policies against Solana transactions. You can simulate a transaction before it is sent, look up past transactions by signature, or evaluate everything that happened in a given time range.", "operationId": "evaluate_solana_transaction_route_external_v0_cosigners__id__solana_evaluate_post", "parameters": [ { "description": "Cosigner ID", "in": "path", "name": "id", "required": true, "schema": { "description": "Cosigner ID", "title": "Id", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SolanaEvaluateTransactionRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/EvaluateTransactionResponse" }, { "$ref": "#/components/schemas/EvaluateHistoricalDataResponse" } ], "title": "Response Evaluate Solana Transaction Route External V0 Cosigners Id Solana Evaluate Post" } } }, "description": "Successful Response" }, "404": { "description": "Cosigner not found" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "APIKey": [] }, { "JWT": [] } ], "summary": "Evaluate Solana Transaction", "tags": ["external"] } }, "/v0/platform/organization/configuration/risk-exposure": { "get": { "tags": [ "Organization Risk Config" ], "summary": "Get organization risk configuration", "description": "Returns your organization's current risk exposure settings, including category risk scores and verdict thresholds.", "operationId": "get-organization-risk-config", "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationRiskConfigView" }, "examples": { "With overrides": { "summary": "Org with category and verdict overrides", "value": { "categories": [ { "category": "sanctioned_entity", "default_risk_score": 1.0, "override_risk_score": 0.7 }, { "category": "stolen_funds", "default_risk_score": 0.9, "override_risk_score": null }, { "category": "mixer", "default_risk_score": 0.8, "override_risk_score": null } ], "verdicts": [ { "level": "warning", "default_threshold": 0.26, "override_threshold": 0.3 }, { "level": "high_risk", "default_threshold": 0.51, "override_threshold": 0.6 }, { "level": "malicious", "default_threshold": 0.76, "override_threshold": null } ] } } } } } } } }, "patch": { "tags": [ "Organization Risk Config" ], "summary": "Update organization risk configuration", "description": "Update your organization's risk exposure settings. Pass a category name or verdict level with a new value to override the platform default, or pass null to revert to the default. Any key you omit stays unchanged.", "operationId": "patch-organization-risk-config", "security": [ { "APIKey": [] }, { "ClientID": [] }, { "JWT": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PatchRiskConfigRequest" }, "examples": { "Set and clear overrides": { "summary": "Override two categories and tighten two verdict levels (clearing one)", "value": { "category_overrides": { "sanctioned_entity": 0.7, "stolen_funds": 0.5 }, "verdict_overrides": { "warning": 0.3, "high_risk": 0.6, "malicious": null } } } } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationRiskConfigView" }, "examples": { "Updated config": { "summary": "Result after applying the example request", "value": { "categories": [ { "category": "sanctioned_entity", "default_risk_score": 1.0, "override_risk_score": null }, { "category": "stolen_funds", "default_risk_score": 0.9, "override_risk_score": 0.7 }, { "category": "mixer", "default_risk_score": 0.8, "override_risk_score": null } ], "verdicts": [ { "level": "warning", "default_threshold": 0.26, "override_threshold": 0.3 }, { "level": "high_risk", "default_threshold": 0.51, "override_threshold": 0.6 }, { "level": "malicious", "default_threshold": 0.76, "override_threshold": null } ] } } } } } }, "400": { "description": "Returned when a value is out of the [0, 1] range or the resulting verdict thresholds are not strictly increasing (warning < high_risk < malicious)." }, "404": { "description": "Returned when an unknown category name is provided." } } } } }, "components": { "schemas": { "CrossChainBridgeNativeAsset": { "type": "object", "required": ["type"], "properties": { "type": { "type": "string", "const": "NATIVE", "title": "Type", "description": "Type of the asset (`NATIVE`)", "default": "NATIVE" }, "raw_value": { "type": "string", "description": "Amount to be received in the asset's smallest unit (before decimal division), e.g. wei for ETH." } }, "title": "CrossChainBridgeNativeAsset" }, "CrossChainBridgeFungibleAsset": { "type": "object", "required": ["type", "address"], "properties": { "type": { "type": "string", "const": "FUNGIBLE", "title": "Type", "description": "Type of the asset (`FUNGIBLE`)", "default": "FUNGIBLE" }, "address": { "type": "string", "description": "Token contract address on the destination chain." }, "raw_value": { "type": "string", "description": "Amount to be received in the asset's smallest unit (before decimal division), e.g. base units for ERC-20 tokens." } }, "title": "CrossChainBridgeFungibleAsset" }, "CrossChainBridgeNonFungibleAsset": { "type": "object", "required": ["type", "address", "token_id"], "properties": { "type": { "type": "string", "const": "NON_FUNGIBLE", "title": "Type", "description": "Type of the asset (`NON_FUNGIBLE`)", "default": "NON_FUNGIBLE" }, "address": { "type": "string", "description": "NFT collection contract address on the destination chain." }, "token_id": { "type": "string", "description": "Token ID of the specific NFT being bridged." } }, "title": "CrossChainBridgeNonFungibleAsset" }, "CrossChainBridgeAsset": { "oneOf": [ { "$ref": "#/components/schemas/CrossChainBridgeNativeAsset" }, { "$ref": "#/components/schemas/CrossChainBridgeFungibleAsset" }, { "$ref": "#/components/schemas/CrossChainBridgeNonFungibleAsset" } ], "discriminator": { "propertyName": "type", "mapping": { "NATIVE": "#/components/schemas/CrossChainBridgeNativeAsset", "FUNGIBLE": "#/components/schemas/CrossChainBridgeFungibleAsset", "NON_FUNGIBLE": "#/components/schemas/CrossChainBridgeNonFungibleAsset" } }, "title": "CrossChainBridgeAsset", "description": "The asset the recipient will receive on the destination chain." }, "CrossChainBridgeHint": { "type": "object", "required": ["type"], "properties": { "type": { "type": "string", "const": "cross_chain_bridge", "title": "Type", "description": "Hint type discriminator (`cross_chain_bridge`).", "default": "cross_chain_bridge" }, "destination_address": { "type": "string", "description": "The intended recipient address on the destination chain. Required when the bridge protocol does not emit this on-chain (e.g. Relay, some Across deposit routes)." }, "destination_chain": { "anyOf": [ { "$ref": "#/components/schemas/TransactionScanSupportedChains" }, { "type": "string" } ], "description": "The destination chain for the bridged assets." }, "destination_asset": { "$ref": "#/components/schemas/CrossChainBridgeAsset", "description": "Details of the asset the recipient will receive on the destination chain. May differ from the source asset (e.g. wrapped vs. native, canonical vs. bridged token)." } }, "title": "CrossChainBridgeHint", "description": "Customer-supplied context for a cross-chain bridge deposit where the protocol does not emit the destination on-chain." }, "GenericTransactionHint": { "type": "object", "required": ["type"], "properties": { "type": { "type": "string", "title": "Type", "description": "Hint type identifier for unrecognized or future hint types." } }, "title": "GenericTransactionHint", "description": "Fallback for unrecognized or future hint types. Accepts any hint with a `type` field." }, "TransactionHint": { "oneOf": [ { "$ref": "#/components/schemas/CrossChainBridgeHint" }, { "$ref": "#/components/schemas/GenericTransactionHint" } ], "discriminator": { "propertyName": "type", "mapping": { "cross_chain_bridge": "#/components/schemas/CrossChainBridgeHint" } }, "title": "TransactionHint", "description": "A single customer-supplied hint about transaction intent. The `type` field identifies which hint variant this is." }, "TransactionHints": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionHint" }, "title": "TransactionHints", "description": "Customer-supplied hints about transaction intent that cannot be derived from on-chain simulation alone. Each element is a typed hint identified by its `type` field." }, "Action": { "type": "string", "enum": ["approve", "reject"], "title": "Action", "description": "What the cosigner should do when a transaction is proposed (e.g. sign, reject)." }, "ExternalIntegrationType": { "type": "string", "enum": [ "fireblocks", "fordefi", "slack", "telegram", "response_wallet" ], "title": "ExternalIntegrationType", "description": "Type of external platform integration (Fireblocks, Fordefi, Slack, Telegram, or response wallet)." }, "FireblocksIntegration": { "description": "Fireblocks integration instance (vaults provider).", "properties": { "type": { "type": "string", "enum": ["fireblocks"], "const": "fireblocks", "title": "Type", "default": "fireblocks" }, "integrationInstanceId": { "type": "string", "title": "Integrationinstanceid" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": ["integrationInstanceId", "name"], "title": "FireblocksIntegration" }, "FordefiIntegration": { "description": "Fordefi integration instance (MPC wallet provider).", "properties": { "type": { "type": "string", "enum": ["fordefi"], "const": "fordefi", "title": "Type", "default": "fordefi" }, "integrationInstanceId": { "type": "string", "title": "Integrationinstanceid" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": ["integrationInstanceId", "name"], "title": "FordefiIntegration" }, "IntegrationFilterRequest": { "description": "Optional filters for integration search (type and/or name).", "properties": { "type": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ExternalIntegrationType" }, "type": "array" }, { "type": "null" } ], "title": "Type", "default": [ "fireblocks", "fordefi", "slack", "telegram", "response_wallet" ] }, "name": { "anyOf": [ { "$ref": "#/components/schemas/IntegrationNameFilter" }, { "type": "null" } ] } }, "type": "object", "title": "IntegrationFilterRequest" }, "IntegrationNameFilter": { "properties": { "contains": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Contains" } }, "type": "object", "title": "IntegrationNameFilter" }, "IntegrationSearchRequest": { "description": "Request body for searching integrations (pagination, sort, and optional filter).", "properties": { "pageSize": { "type": "integer", "maximum": 1000, "minimum": 1, "title": "Pagesize", "default": 50 }, "page": { "type": "integer", "minimum": 1, "title": "Page", "default": 1 }, "sort": { "anyOf": [ { "items": { "$ref": "#/components/schemas/IntegrationSortRequest" }, "type": "array" }, { "type": "null" } ], "title": "Sort" }, "filter": { "anyOf": [ { "$ref": "#/components/schemas/IntegrationFilterRequest" }, { "type": "null" } ] } }, "type": "object", "title": "IntegrationSearchRequest" }, "IntegrationSortField": { "type": "string", "enum": ["created_at", "name", "type"], "title": "IntegrationSortField" }, "IntegrationSortOperator": { "type": "string", "enum": ["asc", "desc"], "title": "IntegrationSortOperator" }, "IntegrationSortRequest": { "description": "Sort specification (field and direction) for integration search.", "properties": { "field": { "$ref": "#/components/schemas/IntegrationSortField" }, "operator": { "$ref": "#/components/schemas/IntegrationSortOperator" } }, "type": "object", "required": ["field", "operator"], "title": "IntegrationSortRequest" }, "Page_Annotated_Union_FireblocksIntegration__SlackIntegration__FordefiIntegration__TelegramIntegration__ResponseWalletIntegration___FieldInfo_annotation_NoneType__required_True__discriminator__type____": { "description": "Paginated response containing a list of integrations (Fireblocks, Fordefi, Slack, Telegram, or response wallet).", "properties": { "items": { "items": { "oneOf": [ { "$ref": "#/components/schemas/FireblocksIntegration" }, { "$ref": "#/components/schemas/SlackIntegration" }, { "$ref": "#/components/schemas/FordefiIntegration" }, { "$ref": "#/components/schemas/TelegramIntegration" }, { "$ref": "#/components/schemas/ResponseWalletIntegration" } ], "discriminator": { "propertyName": "type", "mapping": { "fireblocks": "#/components/schemas/FireblocksIntegration", "fordefi": "#/components/schemas/FordefiIntegration", "response_wallet": "#/components/schemas/ResponseWalletIntegration", "slack": "#/components/schemas/SlackIntegration", "telegram": "#/components/schemas/TelegramIntegration" } } }, "type": "array", "title": "Items" }, "total": { "anyOf": [ { "type": "integer", "minimum": 0 }, { "type": "null" } ], "title": "Total" }, "page": { "anyOf": [ { "type": "integer", "minimum": 1 }, { "type": "null" } ], "title": "Page" }, "size": { "anyOf": [ { "type": "integer", "minimum": 1 }, { "type": "null" } ], "title": "Size" }, "pages": { "anyOf": [ { "type": "integer", "minimum": 0 }, { "type": "null" } ], "title": "Pages" } }, "type": "object", "required": ["items", "total", "page", "size"], "title": "Page[Annotated[Union[FireblocksIntegration, SlackIntegration, FordefiIntegration, TelegramIntegration, ResponseWalletIntegration], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]" }, "ResponseWalletChain": { "properties": { "chain": { "type": "string", "title": "Chain" }, "nativeBalanceUsd": { "type": "number", "title": "Nativebalanceusd", "description": "Native token balance in USD", "default": 0 }, "totalBalanceUsd": { "type": "number", "title": "Totalbalanceusd", "description": "Total balance across all assets in USD", "default": 0 }, "status": { "allOf": [ { "$ref": "#/components/schemas/ResponseWalletChainStatus" } ], "description": "Health status of wallet on this chain" } }, "type": "object", "required": ["chain", "status"], "title": "ResponseWalletChain" }, "ResponseWalletChainResourceResponse": { "description": "Paginated response containing wallet chain balances and status per chain.", "properties": { "type": { "type": "string", "enum": ["response_wallet_chains_resource"], "const": "response_wallet_chains_resource", "title": "Type", "default": "response_wallet_chains_resource" }, "total": { "type": "integer", "title": "Total" }, "page": { "type": "integer", "title": "Page" }, "pages": { "type": "integer", "title": "Pages" }, "size": { "type": "integer", "title": "Size" }, "items": { "items": { "$ref": "#/components/schemas/ResponseWalletChain" }, "type": "array", "title": "Items" } }, "type": "object", "required": ["total", "page", "pages", "size", "items"], "title": "ResponseWalletChainResourceResponse" }, "ResponseWalletChainStatus": { "type": "string", "enum": ["active", "low_funds"], "title": "ResponseWalletChainStatus" }, "ResponseWalletIntegration": { "description": "Response wallet integration (generic wallet type).", "properties": { "type": { "type": "string", "enum": ["response_wallet"], "const": "response_wallet", "title": "Type", "default": "response_wallet" }, "integrationInstanceId": { "type": "string", "title": "Integrationinstanceid" }, "name": { "type": "string", "title": "Name", "description": "Display name of the response wallet" }, "address": { "type": "string", "title": "Address", "description": "The blockchain address of the response wallet" } }, "type": "object", "required": ["integrationInstanceId", "name", "address"], "title": "ResponseWalletIntegration" }, "SlackChannel": { "properties": { "name": { "type": "string", "title": "Name" } }, "type": "object", "required": ["name"], "title": "SlackChannel" }, "SlackIntegration": { "description": "Slack integration instance (workspace and channels).", "properties": { "type": { "type": "string", "enum": ["slack"], "const": "slack", "title": "Type", "default": "slack" }, "integrationInstanceId": { "type": "string", "title": "Integrationinstanceid" }, "workspace": { "$ref": "#/components/schemas/SlackWorkspace" } }, "type": "object", "required": ["integrationInstanceId", "workspace"], "title": "SlackIntegration" }, "SlackResourceResponse": { "description": "Paginated response containing Slack channels for an integration.", "properties": { "type": { "type": "string", "enum": ["slack_resource"], "const": "slack_resource", "title": "Type", "default": "slack_resource" }, "total": { "type": "integer", "title": "Total" }, "page": { "type": "integer", "title": "Page" }, "pages": { "type": "integer", "title": "Pages" }, "size": { "type": "integer", "title": "Size" }, "items": { "items": { "$ref": "#/components/schemas/SlackChannel" }, "type": "array", "title": "Items" } }, "type": "object", "required": ["total", "page", "pages", "size", "items"], "title": "SlackResourceResponse" }, "SlackWorkspace": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": ["id", "name"], "title": "SlackWorkspace" }, "TelegramChannel": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": ["id", "name"], "title": "TelegramChannel" }, "TelegramIntegration": { "description": "Telegram integration instance.", "properties": { "type": { "type": "string", "enum": ["telegram"], "const": "telegram", "title": "Type", "default": "telegram" }, "integrationInstanceId": { "type": "string", "title": "Integrationinstanceid" } }, "type": "object", "required": ["integrationInstanceId"], "title": "TelegramIntegration" }, "TelegramResourceResponse": { "description": "Paginated response containing Telegram channels for an integration.", "properties": { "type": { "type": "string", "enum": ["telegram_resource"], "const": "telegram_resource", "title": "Type", "default": "telegram_resource" }, "total": { "type": "integer", "title": "Total" }, "page": { "type": "integer", "title": "Page" }, "pages": { "type": "integer", "title": "Pages" }, "size": { "type": "integer", "title": "Size" }, "items": { "items": { "$ref": "#/components/schemas/TelegramChannel" }, "type": "array", "title": "Items" } }, "type": "object", "required": ["total", "page", "pages", "size", "items"], "title": "TelegramResourceResponse" }, "VaultsResourceResponse": { "description": "Paginated response containing vault details or errors (e.g. for Fireblocks/Fordefi).", "properties": { "type": { "type": "string", "enum": ["vaults_resource"], "const": "vaults_resource", "title": "Type", "default": "vaults_resource" }, "total": { "type": "integer", "title": "Total" }, "page": { "type": "integer", "title": "Page" }, "pages": { "type": "integer", "title": "Pages" }, "size": { "type": "integer", "title": "Size" }, "items": { "items": { "anyOf": [ { "$ref": "#/components/schemas/VaultDetails" }, { "$ref": "#/components/schemas/VaultError" } ] }, "type": "array", "title": "Items" } }, "type": "object", "required": ["total", "page", "pages", "size", "items"], "title": "VaultsResourceResponse" }, "ApprovedGainingAddresses": { "properties": { "operator": { "$ref": "#/components/schemas/InclutionOperator" }, "value": { "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/UnknownTarget" } ] }, "type": "array", "title": "Value" } }, "type": "object", "required": ["operator", "value"], "title": "ApprovedGainingAddresses" }, "BaseCompositePolicyResponse": { "description": "Composite policy response; rules may be various policy response types or unknown.", "properties": { "type": { "type": "string", "enum": ["composite"], "const": "composite", "title": "Type", "default": "composite" }, "operator": { "type": "string", "enum": ["and", "or"], "title": "Operator" }, "rules": { "items": {}, "type": "array", "title": "Rules" } }, "type": "object", "required": ["operator", "rules"], "title": "BaseCompositePolicyResponse" }, "BitcoinCompositePolicyRequest": { "properties": { "type": { "type": "string", "enum": ["composite"], "const": "composite", "title": "Type", "default": "composite" }, "operator": { "type": "string", "enum": ["and", "or"], "title": "Operator" }, "rules": { "items": { "oneOf": [ { "$ref": "#/components/schemas/GainingAddressesPolicyRequest" }, { "$ref": "#/components/schemas/TransactionUSDValuePolicyRequest" }, { "$ref": "#/components/schemas/BitcoinCompositePolicyRequest" } ], "discriminator": { "propertyName": "type", "mapping": { "composite": "#/components/schemas/BitcoinCompositePolicyRequest", "gaining_addresses": "#/components/schemas/GainingAddressesPolicyRequest", "transaction_usd_value": "#/components/schemas/TransactionUSDValuePolicyRequest" } } }, "type": "array", "title": "Rules" } }, "type": "object", "required": ["operator", "rules"], "title": "BitcoinCompositePolicyRequest" }, "BitcoinPolicyRequest": { "description": "A single Bitcoin chain policy for request (gaining addresses, transaction USD value, or composite).", "properties": { "name": { "type": "string", "title": "Name" }, "action": { "$ref": "#/components/schemas/Action" }, "policy": { "oneOf": [ { "$ref": "#/components/schemas/GainingAddressesPolicyRequest" }, { "$ref": "#/components/schemas/TransactionUSDValuePolicyRequest" }, { "$ref": "#/components/schemas/BitcoinCompositePolicyRequest" } ], "title": "Policy", "discriminator": { "propertyName": "type", "mapping": { "composite": "#/components/schemas/BitcoinCompositePolicyRequest", "gaining_addresses": "#/components/schemas/GainingAddressesPolicyRequest", "transaction_usd_value": "#/components/schemas/TransactionUSDValuePolicyRequest" } } } }, "type": "object", "required": ["name", "action", "policy"], "title": "BitcoinPolicyRequest" }, "BitcoinPolicyResponse": { "description": "A single Bitcoin chain policy as returned by the API.", "properties": { "name": { "type": "string", "title": "Name" }, "action": { "$ref": "#/components/schemas/Action" }, "policy": { "anyOf": [ { "$ref": "#/components/schemas/GainingAddressesPolicyResponse" }, { "$ref": "#/components/schemas/TransactionUSDValuePolicyResponse" }, { "$ref": "#/components/schemas/BaseCompositePolicyResponse" }, { "$ref": "#/components/schemas/UnknownPolicyResponse" } ], "title": "Policy" } }, "type": "object", "required": ["name", "action", "policy"], "title": "BitcoinPolicyResponse" }, "CalledAddressPolicyRequest": { "properties": { "type": { "type": "string", "enum": ["called_address"], "const": "called_address", "title": "Type" }, "rules": { "$ref": "#/components/schemas/CalledAddressRules-Input" } }, "type": "object", "required": ["type", "rules"], "title": "CalledAddressPolicyRequest" }, "CalledAddressPolicyResponse": { "properties": { "type": { "type": "string", "enum": ["called_address"], "const": "called_address", "title": "Type" }, "rules": { "$ref": "#/components/schemas/CalledAddressRules-Output" } }, "type": "object", "required": ["type", "rules"], "title": "CalledAddressPolicyResponse" }, "CalledAddressRules-Input": { "properties": { "called_addresses": { "title": "Called Addresses", "$ref": "#/components/schemas/CalledAddressesRule" } }, "type": "object", "required": ["called_addresses"], "title": "CalledAddressRules" }, "CalledAddressRules-Output": { "properties": { "called_addresses": { "title": "Called Addresses", "$ref": "#/components/schemas/CalledAddressesRule" } }, "type": "object", "required": ["called_addresses"], "title": "CalledAddressRules" }, "CalledAddressesRule": { "properties": { "operator": { "$ref": "#/components/schemas/InclutionOperator" }, "value": { "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/UnknownTarget" } ] }, "type": "array", "title": "Value" } }, "type": "object", "required": ["operator", "value"], "title": "CalledAddressesRule" }, "EVMCompositePolicyRequest": { "description": "Composite EVM policy that combines multiple sub-policies with AND/OR logic.", "properties": { "type": { "type": "string", "enum": ["composite"], "const": "composite", "title": "Type", "default": "composite" }, "operator": { "type": "string", "enum": ["and", "or"], "title": "Operator" }, "rules": { "items": { "oneOf": [ { "$ref": "#/components/schemas/CalledAddressPolicyRequest" }, { "$ref": "#/components/schemas/Eip712SignaturePolicyRequest" }, { "$ref": "#/components/schemas/EventEmittedPolicyRequest" }, { "$ref": "#/components/schemas/FunctionCallPolicyRequest" }, { "$ref": "#/components/schemas/GainingAddressesPolicyRequest" }, { "$ref": "#/components/schemas/MerklCampaignPolicyRequest" }, { "$ref": "#/components/schemas/MovedAssetsPolicyRequest" }, { "$ref": "#/components/schemas/RiskExposurePolicyRequest" }, { "$ref": "#/components/schemas/RollingUsdLimitPolicyRequest" }, { "$ref": "#/components/schemas/TokenSpendApprovalPolicyRequest" }, { "$ref": "#/components/schemas/TransactionUSDValuePolicyRequest" }, { "$ref": "#/components/schemas/EVMCompositePolicyRequest" } ], "discriminator": { "propertyName": "type", "mapping": { "called_address": "#/components/schemas/CalledAddressPolicyRequest", "composite": "#/components/schemas/EVMCompositePolicyRequest", "event_emitted": "#/components/schemas/EventEmittedPolicyRequest", "function_call": "#/components/schemas/FunctionCallPolicyRequest", "gaining_addresses": "#/components/schemas/GainingAddressesPolicyRequest", "transaction_usd_value": "#/components/schemas/TransactionUSDValuePolicyRequest", "eip_712_signature": "#/components/schemas/Eip712SignaturePolicyRequest", "merkl_campaign": "#/components/schemas/MerklCampaignPolicyRequest", "moved_assets": "#/components/schemas/MovedAssetsPolicyRequest", "risk_exposure": "#/components/schemas/RiskExposurePolicyRequest", "rolling_usd_limit": "#/components/schemas/RollingUsdLimitPolicyRequest", "token_spend_approval": "#/components/schemas/TokenSpendApprovalPolicyRequest" } } }, "type": "array", "title": "Rules" } }, "type": "object", "required": ["operator", "rules"], "title": "EVMCompositePolicyRequest" }, "EVMPolicyRequest": { "description": "A single EVM chain policy definition for request (e.g. called address, event emitted, function call, gaining addresses, transaction USD value, or composite).", "properties": { "name": { "type": "string", "title": "Name" }, "action": { "$ref": "#/components/schemas/Action" }, "policy": { "oneOf": [ { "$ref": "#/components/schemas/CalledAddressPolicyRequest" }, { "$ref": "#/components/schemas/Eip712SignaturePolicyRequest" }, { "$ref": "#/components/schemas/EventEmittedPolicyRequest" }, { "$ref": "#/components/schemas/FunctionCallPolicyRequest" }, { "$ref": "#/components/schemas/GainingAddressesPolicyRequest" }, { "$ref": "#/components/schemas/MerklCampaignPolicyRequest" }, { "$ref": "#/components/schemas/MovedAssetsPolicyRequest" }, { "$ref": "#/components/schemas/RiskExposurePolicyRequest" }, { "$ref": "#/components/schemas/RollingUsdLimitPolicyRequest" }, { "$ref": "#/components/schemas/TokenSpendApprovalPolicyRequest" }, { "$ref": "#/components/schemas/TransactionUSDValuePolicyRequest" }, { "$ref": "#/components/schemas/EVMCompositePolicyRequest" } ], "title": "Policy", "discriminator": { "propertyName": "type", "mapping": { "called_address": "#/components/schemas/CalledAddressPolicyRequest", "composite": "#/components/schemas/EVMCompositePolicyRequest", "event_emitted": "#/components/schemas/EventEmittedPolicyRequest", "function_call": "#/components/schemas/FunctionCallPolicyRequest", "gaining_addresses": "#/components/schemas/GainingAddressesPolicyRequest", "transaction_usd_value": "#/components/schemas/TransactionUSDValuePolicyRequest", "eip_712_signature": "#/components/schemas/Eip712SignaturePolicyRequest", "merkl_campaign": "#/components/schemas/MerklCampaignPolicyRequest", "moved_assets": "#/components/schemas/MovedAssetsPolicyRequest", "risk_exposure": "#/components/schemas/RiskExposurePolicyRequest", "rolling_usd_limit": "#/components/schemas/RollingUsdLimitPolicyRequest", "token_spend_approval": "#/components/schemas/TokenSpendApprovalPolicyRequest" } } } }, "type": "object", "required": ["name", "action", "policy"], "title": "EVMPolicyRequest" }, "EVMPolicyResponse": { "description": "A single EVM chain policy as returned by the API (may include unknown policy types).", "properties": { "name": { "type": "string", "title": "Name" }, "action": { "$ref": "#/components/schemas/Action" }, "policy": { "anyOf": [ { "$ref": "#/components/schemas/CalledAddressPolicyResponse" }, { "$ref": "#/components/schemas/Eip712SignaturePolicyResponse" }, { "$ref": "#/components/schemas/EventEmittedPolicyResponse" }, { "$ref": "#/components/schemas/FunctionCallPolicyResponse" }, { "$ref": "#/components/schemas/GainingAddressesPolicyResponse" }, { "$ref": "#/components/schemas/MerklCampaignPolicyResponse" }, { "$ref": "#/components/schemas/MovedAssetsPolicyResponse" }, { "$ref": "#/components/schemas/RiskExposurePolicyResponse" }, { "$ref": "#/components/schemas/RollingUsdLimitPolicyResponse" }, { "$ref": "#/components/schemas/TokenSpendApprovalPolicyResponse" }, { "$ref": "#/components/schemas/TransactionUSDValuePolicyResponse" }, { "$ref": "#/components/schemas/BaseCompositePolicyResponse" }, { "$ref": "#/components/schemas/UnknownPolicyResponse" } ], "title": "Policy" } }, "type": "object", "required": ["name", "action", "policy"], "title": "EVMPolicyResponse" }, "EqualityOperator": { "type": "string", "enum": ["eq", "ne"], "title": "EqualityOperator" }, "EventEmittedPolicyRequest": { "properties": { "type": { "type": "string", "enum": ["event_emitted"], "const": "event_emitted", "title": "Type" }, "rules": { "$ref": "#/components/schemas/EventEmittedRules-Input" }, "target": { "items": { "$ref": "#/components/schemas/AssetIDTarget" }, "title": "Target", "type": "array" } }, "type": "object", "required": ["type", "target", "rules"], "title": "EventEmittedPolicyRequest" }, "EventEmittedPolicyResponse": { "properties": { "type": { "type": "string", "enum": ["event_emitted"], "const": "event_emitted", "title": "Type" }, "rules": { "$ref": "#/components/schemas/EventEmittedRules-Output" }, "target": { "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/MissingAssetIDTarget" }, { "$ref": "#/components/schemas/UnknownTarget" } ] }, "title": "Target", "type": "array" } }, "type": "object", "required": ["type", "target", "rules"], "title": "EventEmittedPolicyResponse" }, "EventEmittedRules-Input": { "properties": { "event_name": { "$ref": "#/components/schemas/EventName" }, "event_parameters": { "anyOf": [ { "items": { "$ref": "#/components/schemas/EventParameter" }, "type": "array" }, { "type": "null" } ], "title": "Event Parameters" } }, "type": "object", "required": ["event_name"], "title": "EventEmittedRules" }, "EventEmittedRules-Output": { "properties": { "event_name": { "$ref": "#/components/schemas/EventName" }, "event_parameters": { "anyOf": [ { "items": { "$ref": "#/components/schemas/EventParameter" }, "type": "array" }, { "type": "null" } ], "title": "Event Parameters" } }, "type": "object", "required": ["event_name"], "title": "EventEmittedRules" }, "EventName": { "properties": { "operator": { "$ref": "#/components/schemas/EqualityOperator" }, "value": { "type": "string", "title": "Value" } }, "type": "object", "required": ["operator", "value"], "title": "EventName" }, "EventParameter": { "properties": { "operator": { "anyOf": [ { "$ref": "#/components/schemas/EqualityOperator" }, { "$ref": "#/components/schemas/LessThanComparisonOperator" }, { "$ref": "#/components/schemas/GreaterThanComparisonOperator" } ], "title": "Operator" }, "value": { "type": "string", "title": "Value" }, "parameter": { "type": "string", "title": "Parameter" } }, "type": "object", "required": ["operator", "value", "parameter"], "title": "EventParameter" }, "FunctionCallPolicyRequest": { "properties": { "type": { "type": "string", "enum": ["function_call"], "const": "function_call", "title": "Type" }, "rules": { "$ref": "#/components/schemas/FunctionCallRules-Input" }, "target": { "items": { "$ref": "#/components/schemas/AssetIDTarget" }, "title": "Target", "type": "array" } }, "type": "object", "required": ["type", "target", "rules"], "title": "FunctionCallPolicyRequest" }, "FunctionCallPolicyResponse": { "properties": { "type": { "type": "string", "enum": ["function_call"], "const": "function_call", "title": "Type" }, "rules": { "$ref": "#/components/schemas/FunctionCallRules-Output" }, "target": { "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/MissingAssetIDTarget" }, { "$ref": "#/components/schemas/UnknownTarget" } ] }, "title": "Target", "type": "array" } }, "type": "object", "required": ["type", "target", "rules"], "title": "FunctionCallPolicyResponse" }, "FunctionCallRules-Input": { "properties": { "function_name": { "$ref": "#/components/schemas/FunctionName" }, "function_parameters": { "anyOf": [ { "items": { "$ref": "#/components/schemas/FunctionParameter" }, "type": "array" }, { "type": "null" } ], "title": "Function Parameters" } }, "type": "object", "required": ["function_name"], "title": "FunctionCallRules" }, "FunctionCallRules-Output": { "properties": { "function_name": { "$ref": "#/components/schemas/FunctionName" }, "function_parameters": { "anyOf": [ { "items": { "$ref": "#/components/schemas/FunctionParameter" }, "type": "array" }, { "type": "null" } ], "title": "Function Parameters" } }, "type": "object", "required": ["function_name"], "title": "FunctionCallRules" }, "FunctionName": { "properties": { "operator": { "$ref": "#/components/schemas/EqualityOperator" }, "value": { "type": "string", "title": "Value" } }, "type": "object", "required": ["operator", "value"], "title": "FunctionName" }, "FunctionParameter": { "properties": { "operator": { "anyOf": [ { "$ref": "#/components/schemas/EqualityOperator" }, { "$ref": "#/components/schemas/LessThanComparisonOperator" }, { "$ref": "#/components/schemas/GreaterThanComparisonOperator" } ], "title": "Operator" }, "value": { "type": "string", "title": "Value" }, "parameter": { "type": "string", "title": "Parameter" } }, "type": "object", "required": ["operator", "value", "parameter"], "title": "FunctionParameter" }, "GainingAddressesPolicyRequest": { "description": "Policy that evaluates based on approved gaining addresses and transaction filters.", "properties": { "type": { "type": "string", "enum": ["gaining_addresses"], "const": "gaining_addresses", "title": "Type" }, "rules": { "$ref": "#/components/schemas/GainingAddressesRules-Input" } }, "type": "object", "required": ["type", "rules"], "title": "GainingAddressesPolicyRequest" }, "GainingAddressesPolicyResponse": { "properties": { "type": { "type": "string", "enum": ["gaining_addresses"], "const": "gaining_addresses", "title": "Type" }, "rules": { "$ref": "#/components/schemas/GainingAddressesRules-Output" } }, "type": "object", "required": ["type", "rules"], "title": "GainingAddressesPolicyResponse" }, "GainingAddressesRules-Input": { "properties": { "approved_gaining_addresses": { "title": "Approved Gaining Addresses", "$ref": "#/components/schemas/ApprovedGainingAddresses" }, "transaction_filter": { "$ref": "#/components/schemas/TransactionFilter" }, "ignore_threshold": { "anyOf": [ { "$ref": "#/components/schemas/IgnoreThresholdRule" }, { "type": "null" } ] }, "non_approved_gaining_percentage": { "anyOf": [ { "$ref": "#/components/schemas/NonApprovedGainingPercentage" }, { "type": "null" } ] } }, "type": "object", "required": ["approved_gaining_addresses", "transaction_filter"], "title": "GainingAddressesRules" }, "GainingAddressesRules-Output": { "properties": { "approved_gaining_addresses": { "title": "Approved Gaining Addresses", "$ref": "#/components/schemas/ApprovedGainingAddresses" }, "transaction_filter": { "$ref": "#/components/schemas/TransactionFilter" }, "ignore_threshold": { "anyOf": [ { "$ref": "#/components/schemas/IgnoreThresholdRule" }, { "type": "null" } ] }, "non_approved_gaining_percentage": { "anyOf": [ { "$ref": "#/components/schemas/NonApprovedGainingPercentage" }, { "type": "null" } ] } }, "type": "object", "required": ["approved_gaining_addresses", "transaction_filter"], "title": "GainingAddressesRules" }, "GetPoliciesResponse": { "description": "Response containing all policies for a cosigner (per chain).", "properties": { "policies": { "$ref": "#/components/schemas/PoliciesResponse" } }, "type": "object", "required": ["policies"], "title": "GetPoliciesResponse" }, "GreaterThanComparisonOperator": { "type": "string", "enum": ["gt", "gte"], "title": "GreaterThanComparisonOperator" }, "IgnoreThresholdRule": { "properties": { "operator": { "$ref": "#/components/schemas/LessThanComparisonOperator" }, "value": { "type": "integer", "title": "Value" } }, "type": "object", "required": ["operator", "value"], "title": "IgnoreThresholdRule" }, "InclutionOperator": { "type": "string", "enum": ["in", "not_in"], "title": "InclutionOperator" }, "LessThanComparisonOperator": { "type": "string", "enum": ["lt", "lte"], "title": "LessThanComparisonOperator" }, "MissingAssetIDTarget": { "properties": { "type": { "type": "string", "enum": ["asset_id"], "const": "asset_id", "title": "Type" }, "identifier": { "type": "string", "title": "Identifier" }, "chain": { "type": "string", "title": "Chain" }, "runtime": { "type": "string", "title": "Runtime" } }, "type": "object", "required": ["type", "identifier", "chain", "runtime"], "title": "MissingAssetIDTarget" }, "NonApprovedGainingPercentage": { "properties": { "operator": { "$ref": "#/components/schemas/LessThanComparisonOperator" }, "value": { "type": "number", "title": "Value" } }, "type": "object", "required": ["operator", "value"], "title": "NonApprovedGainingPercentage" }, "OtherChainPolicyRequest": { "description": "Policy for chains that do not have specific policy types; uses unsupported_chain policy.", "properties": { "name": { "type": "string", "title": "Name" }, "action": { "$ref": "#/components/schemas/Action" }, "policy": { "$ref": "#/components/schemas/UnsupportedChainPolicyRequest" } }, "type": "object", "required": ["name", "action", "policy"], "title": "OtherChainPolicyRequest" }, "OtherChainPolicyResponse": { "description": "Policy response for other/unsupported chains as returned by the API.", "properties": { "name": { "type": "string", "title": "Name" }, "action": { "$ref": "#/components/schemas/Action" }, "policy": { "$ref": "#/components/schemas/UnsupportedChainPolicyResponse" } }, "type": "object", "required": ["name", "action", "policy"], "title": "OtherChainPolicyResponse" }, "PersonalSignPolicy": { "description": "Policy that applies to personal sign (message signing) operations.", "properties": { "type": { "type": "string", "enum": ["personal_sign"], "const": "personal_sign", "title": "Type" } }, "type": "object", "required": ["type"], "title": "PersonalSignPolicy" }, "PoliciesRequest": { "description": "Request body containing policy arrays per chain (EVM, Solana, Bitcoin, Sui, other).", "properties": { "evm": { "anyOf": [ { "items": { "$ref": "#/components/schemas/EVMPolicyRequest" }, "type": "array" }, { "type": "null" } ], "title": "Evm" }, "solana": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaPolicyRequest" }, "type": "array" }, { "type": "null" } ], "title": "Solana" }, "bitcoin": { "anyOf": [ { "items": { "$ref": "#/components/schemas/BitcoinPolicyRequest" }, "type": "array" }, { "type": "null" } ], "title": "Bitcoin" }, "sui": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SuiPolicyRequest" }, "type": "array" }, { "type": "null" } ], "title": "Sui" }, "other": { "anyOf": [ { "items": { "$ref": "#/components/schemas/OtherChainPolicyRequest" }, "type": "array" }, { "type": "null" } ], "title": "Other" } }, "type": "object", "title": "PoliciesRequest" }, "PoliciesResponse": { "description": "Response containing policy arrays per chain as returned by the API.", "properties": { "evm": { "anyOf": [ { "items": { "$ref": "#/components/schemas/EVMPolicyResponse" }, "type": "array" }, { "type": "null" } ], "title": "Evm" }, "solana": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaPolicyResponse" }, "type": "array" }, { "type": "null" } ], "title": "Solana" }, "bitcoin": { "anyOf": [ { "items": { "$ref": "#/components/schemas/BitcoinPolicyResponse" }, "type": "array" }, { "type": "null" } ], "title": "Bitcoin" }, "sui": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SuiPolicyResponse" }, "type": "array" }, { "type": "null" } ], "title": "Sui" }, "other": { "anyOf": [ { "items": { "$ref": "#/components/schemas/OtherChainPolicyResponse" }, "type": "array" }, { "type": "null" } ], "title": "Other" } }, "type": "object", "title": "PoliciesResponse" }, "SetPoliciesRequest": { "description": "Request body for setting cosigner policies (wraps PoliciesRequest).", "properties": { "policies": { "$ref": "#/components/schemas/PoliciesRequest" } }, "type": "object", "required": ["policies"], "title": "SetPoliciesRequest" }, "SetPoliciesResponse": { "description": "Response returned after successfully setting cosigner policies.", "properties": { "policies": { "$ref": "#/components/schemas/PoliciesResponse" } }, "type": "object", "required": ["policies"], "title": "SetPoliciesResponse" }, "SolanaCompositePolicyRequest": { "properties": { "type": { "type": "string", "enum": ["composite"], "const": "composite", "title": "Type", "default": "composite" }, "operator": { "type": "string", "enum": ["and", "or"], "title": "Operator" }, "rules": { "items": { "oneOf": [ { "$ref": "#/components/schemas/FunctionCallPolicyRequest" }, { "$ref": "#/components/schemas/GainingAddressesPolicyRequest" }, { "$ref": "#/components/schemas/RollingUsdLimitPolicyRequest" }, { "$ref": "#/components/schemas/SquadsConfigTransactionPolicyRequest" }, { "$ref": "#/components/schemas/TransactionUSDValuePolicyRequest" }, { "$ref": "#/components/schemas/SolanaCompositePolicyRequest" } ], "discriminator": { "propertyName": "type", "mapping": { "composite": "#/components/schemas/SolanaCompositePolicyRequest", "gaining_addresses": "#/components/schemas/GainingAddressesPolicyRequest", "transaction_usd_value": "#/components/schemas/TransactionUSDValuePolicyRequest", "function_call": "#/components/schemas/FunctionCallPolicyRequest", "rolling_usd_limit": "#/components/schemas/RollingUsdLimitPolicyRequest", "squads_config_transaction": "#/components/schemas/SquadsConfigTransactionPolicyRequest" } } }, "type": "array", "title": "Rules" } }, "type": "object", "required": ["operator", "rules"], "title": "SolanaCompositePolicyRequest" }, "SolanaPolicyRequest": { "description": "A single Solana chain policy for request (gaining addresses, transaction USD value, or composite).", "properties": { "name": { "type": "string", "title": "Name" }, "action": { "$ref": "#/components/schemas/Action" }, "policy": { "oneOf": [ { "$ref": "#/components/schemas/FunctionCallPolicyRequest" }, { "$ref": "#/components/schemas/GainingAddressesPolicyRequest" }, { "$ref": "#/components/schemas/RollingUsdLimitPolicyRequest" }, { "$ref": "#/components/schemas/SquadsConfigTransactionPolicyRequest" }, { "$ref": "#/components/schemas/TransactionUSDValuePolicyRequest" }, { "$ref": "#/components/schemas/SolanaCompositePolicyRequest" } ], "title": "Policy", "discriminator": { "propertyName": "type", "mapping": { "composite": "#/components/schemas/SolanaCompositePolicyRequest", "gaining_addresses": "#/components/schemas/GainingAddressesPolicyRequest", "transaction_usd_value": "#/components/schemas/TransactionUSDValuePolicyRequest", "function_call": "#/components/schemas/FunctionCallPolicyRequest", "rolling_usd_limit": "#/components/schemas/RollingUsdLimitPolicyRequest", "squads_config_transaction": "#/components/schemas/SquadsConfigTransactionPolicyRequest" } } } }, "type": "object", "required": ["name", "action", "policy"], "title": "SolanaPolicyRequest" }, "SolanaPolicyResponse": { "description": "A single Solana chain policy as returned by the API.", "properties": { "name": { "type": "string", "title": "Name" }, "action": { "$ref": "#/components/schemas/Action" }, "policy": { "anyOf": [ { "$ref": "#/components/schemas/FunctionCallPolicyResponse" }, { "$ref": "#/components/schemas/GainingAddressesPolicyResponse" }, { "$ref": "#/components/schemas/SquadsConfigTransactionPolicyResponse" }, { "$ref": "#/components/schemas/TransactionUSDValuePolicyResponse" }, { "$ref": "#/components/schemas/RollingUsdLimitPolicyResponse" }, { "$ref": "#/components/schemas/BaseCompositePolicyResponse" }, { "$ref": "#/components/schemas/UnknownPolicyResponse" } ], "title": "Policy" } }, "type": "object", "required": ["name", "action", "policy"], "title": "SolanaPolicyResponse" }, "SuiCompositePolicyRequest": { "properties": { "type": { "type": "string", "enum": ["composite"], "const": "composite", "title": "Type", "default": "composite" }, "operator": { "type": "string", "enum": ["and", "or"], "title": "Operator" }, "rules": { "items": { "oneOf": [ { "$ref": "#/components/schemas/GainingAddressesPolicyRequest" }, { "$ref": "#/components/schemas/RollingUsdLimitPolicyRequest" }, { "$ref": "#/components/schemas/TransactionUSDValuePolicyRequest" }, { "$ref": "#/components/schemas/SuiCompositePolicyRequest" } ], "discriminator": { "propertyName": "type", "mapping": { "composite": "#/components/schemas/SuiCompositePolicyRequest", "gaining_addresses": "#/components/schemas/GainingAddressesPolicyRequest", "transaction_usd_value": "#/components/schemas/TransactionUSDValuePolicyRequest", "rolling_usd_limit": "#/components/schemas/RollingUsdLimitPolicyRequest" } } }, "type": "array", "title": "Rules" } }, "type": "object", "required": ["operator", "rules"], "title": "SuiCompositePolicyRequest" }, "SuiPolicyRequest": { "description": "A single Sui chain policy for request (gaining addresses, transaction USD value, or composite).", "properties": { "name": { "type": "string", "title": "Name" }, "action": { "$ref": "#/components/schemas/Action" }, "policy": { "oneOf": [ { "$ref": "#/components/schemas/GainingAddressesPolicyRequest" }, { "$ref": "#/components/schemas/RollingUsdLimitPolicyRequest" }, { "$ref": "#/components/schemas/TransactionUSDValuePolicyRequest" }, { "$ref": "#/components/schemas/SuiCompositePolicyRequest" } ], "title": "Policy", "discriminator": { "propertyName": "type", "mapping": { "composite": "#/components/schemas/SuiCompositePolicyRequest", "gaining_addresses": "#/components/schemas/GainingAddressesPolicyRequest", "transaction_usd_value": "#/components/schemas/TransactionUSDValuePolicyRequest", "rolling_usd_limit": "#/components/schemas/RollingUsdLimitPolicyRequest" } } } }, "type": "object", "required": ["name", "action", "policy"], "title": "SuiPolicyRequest" }, "SuiPolicyResponse": { "description": "A single Sui chain policy as returned by the API.", "properties": { "name": { "type": "string", "title": "Name" }, "action": { "$ref": "#/components/schemas/Action" }, "policy": { "anyOf": [ { "$ref": "#/components/schemas/GainingAddressesPolicyResponse" }, { "$ref": "#/components/schemas/TransactionUSDValuePolicyResponse" }, { "$ref": "#/components/schemas/RollingUsdLimitPolicyResponse" }, { "$ref": "#/components/schemas/BaseCompositePolicyResponse" }, { "$ref": "#/components/schemas/UnknownPolicyResponse" } ], "title": "Policy" } }, "type": "object", "required": ["name", "action", "policy"], "title": "SuiPolicyResponse" }, "TransactionFilter": { "properties": { "operator": { "type": "string", "enum": ["is"], "const": "is", "title": "Operator" }, "value": { "$ref": "#/components/schemas/TransactionFilterValue" } }, "type": "object", "required": ["operator", "value"], "title": "TransactionFilter" }, "TransactionFilterValue": { "type": "string", "enum": ["all_actions", "transfers", "approvals"], "title": "TransactionFilterValue" }, "TransactionUSDValuePolicyRequest": { "description": "Policy that evaluates based on transaction USD value thresholds.", "properties": { "type": { "type": "string", "enum": ["transaction_usd_value"], "const": "transaction_usd_value", "title": "Type" }, "rules": { "$ref": "#/components/schemas/TransactionUSDValueRules-Input" } }, "type": "object", "required": ["type", "rules"], "title": "TransactionUSDValuePolicyRequest" }, "TransactionUSDValuePolicyResponse": { "properties": { "type": { "type": "string", "enum": ["transaction_usd_value"], "const": "transaction_usd_value", "title": "Type" }, "rules": { "$ref": "#/components/schemas/TransactionUSDValueRules-Output" } }, "type": "object", "required": ["type", "rules"], "title": "TransactionUSDValuePolicyResponse" }, "TransactionUSDValueRule": { "properties": { "operator": { "anyOf": [ { "$ref": "#/components/schemas/LessThanComparisonOperator" }, { "$ref": "#/components/schemas/GreaterThanComparisonOperator" }, { "$ref": "#/components/schemas/EqualityOperator" } ], "title": "Operator" }, "value": { "type": "string", "title": "Value" } }, "type": "object", "required": ["operator", "value"], "title": "TransactionUSDValueRule" }, "TransactionUSDValueRules-Input": { "properties": { "transaction_usd_value": { "$ref": "#/components/schemas/TransactionUSDValueRule" } }, "type": "object", "required": ["transaction_usd_value"], "title": "TransactionUSDValueRules" }, "TransactionUSDValueRules-Output": { "properties": { "transaction_usd_value": { "$ref": "#/components/schemas/TransactionUSDValueRule" } }, "type": "object", "required": ["transaction_usd_value"], "title": "TransactionUSDValueRules" }, "UnknownPolicyResponse": { "description": "Policy response for an unknown or future policy type; clients should handle gracefully.", "properties": { "type": { "type": "string", "title": "Type" }, "rules": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Rules" }, "target": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Target" } }, "additionalProperties": true, "type": "object", "required": ["type"], "title": "UnknownPolicyResponse" }, "UnknownTarget": { "properties": { "type": { "type": "string", "title": "Type", "default": "unknown" } }, "additionalProperties": true, "type": "object", "title": "UnknownTarget", "description": "Unknown target type - client should handle gracefully." }, "UnsupportedChainPolicyRequest": { "description": "Placeholder policy for chains that do not support granular policy types.", "properties": { "type": { "type": "string", "enum": ["unsupported_chain"], "const": "unsupported_chain", "title": "Type" } }, "type": "object", "required": ["type"], "title": "UnsupportedChainPolicyRequest" }, "UnsupportedChainPolicyResponse": { "properties": { "type": { "type": "string", "enum": ["unsupported_chain"], "const": "unsupported_chain", "title": "Type" } }, "type": "object", "required": ["type"], "title": "UnsupportedChainPolicyResponse" }, "AddressDetails": { "properties": { "address": { "type": "string", "title": "Address" }, "chain": { "type": "string", "title": "Chain" } }, "type": "object", "required": ["address", "chain"], "title": "AddressDetails" }, "ApproverSigningMode": { "type": "string", "enum": ["active_approval", "reporting_only"], "title": "ApproverSigningMode", "description": "This Cosigner's participation level in transaction approval: \n\n - `active_approval` - Cosigner actively approves or rejects transactions. \n - `reporting_only` - Cosigner approves all transactions." }, "CosignerExternalResponse": { "properties": { "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags" }, "proposal_actions": { "items": { "oneOf": [ { "$ref": "#/components/schemas/TelegramExternalAction" }, { "$ref": "#/components/schemas/SlackExternalAction" }, { "$ref": "#/components/schemas/EmailExternalAction" } ], "discriminator": { "propertyName": "type", "mapping": { "email": "#/components/schemas/EmailExternalAction", "slack": "#/components/schemas/SlackExternalAction", "telegram": "#/components/schemas/TelegramExternalAction" } } }, "type": "array", "minItems": 1, "title": "Proposal Actions" }, "rejection_actions": { "items": { "oneOf": [ { "$ref": "#/components/schemas/TelegramExternalAction" }, { "$ref": "#/components/schemas/SlackExternalAction" }, { "$ref": "#/components/schemas/EmailExternalAction" } ], "discriminator": { "propertyName": "type", "mapping": { "email": "#/components/schemas/EmailExternalAction", "slack": "#/components/schemas/SlackExternalAction", "telegram": "#/components/schemas/TelegramExternalAction" } } }, "type": "array", "minItems": 1, "title": "Rejection Actions" }, "approval_actions": { "items": { "oneOf": [ { "$ref": "#/components/schemas/TelegramExternalAction" }, { "$ref": "#/components/schemas/SlackExternalAction" }, { "$ref": "#/components/schemas/EmailExternalAction" } ], "discriminator": { "propertyName": "type", "mapping": { "email": "#/components/schemas/EmailExternalAction", "slack": "#/components/schemas/SlackExternalAction", "telegram": "#/components/schemas/TelegramExternalAction" } } }, "type": "array", "minItems": 1, "title": "Approval Actions" }, "malicious_actions": { "anyOf": [ { "items": { "discriminator": { "mapping": { "email": "#/components/schemas/EmailExternalAction", "slack": "#/components/schemas/SlackExternalAction", "telegram": "#/components/schemas/TelegramExternalAction" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/components/schemas/TelegramExternalAction" }, { "$ref": "#/components/schemas/SlackExternalAction" }, { "$ref": "#/components/schemas/EmailExternalAction" } ] }, "minItems": 1, "type": "array" }, { "type": "null" } ], "title": "Malicious Actions" }, "id": { "type": "string", "title": "Id", "order": 1, "description": "The Cosigner's assigned unique ID." }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "The Cosigner name as defined upon creation.", "order": 2 }, "status": { "allOf": [ { "$ref": "#/components/schemas/CosignerStatusExternal" } ], "order": 3 }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error", "description": "If the Cosigner status is `error`, this field will show more information about the error.", "order": 4 }, "created_at": { "type": "string", "format": "date-time", "title": "Created At", "description": "The timestamp the Cosigner was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" }, "updated_by": { "title": "Updated By", "description": "The user who last updated the Cosigner.", "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "data": { "oneOf": [ { "$ref": "#/components/schemas/FireblocksCosignerResponseExternal" }, { "$ref": "#/components/schemas/FordefiCosignerResponseExternal" }, { "$ref": "#/components/schemas/CosignerSafeResponseExternal" }, { "$ref": "#/components/schemas/CosignerSquadsResponseExternal" }, { "$ref": "#/components/schemas/UtilaCosignerResponseExternal" } ], "title": "Data", "discriminator": { "propertyName": "type", "mapping": { "fireblocks": "#/components/schemas/FireblocksCosignerResponseExternal", "fordefi": "#/components/schemas/FordefiCosignerResponseExternal", "safe": "#/components/schemas/CosignerSafeResponseExternal", "squads": "#/components/schemas/CosignerSquadsResponseExternal", "utila": "#/components/schemas/UtilaCosignerResponseExternal" } } }, "created_by": { "title": "Created By", "type": "string" }, "selected_chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Selected Chains" } }, "type": "object", "required": [ "tags", "proposal_actions", "rejection_actions", "approval_actions", "id", "name", "status", "created_at", "updated_at", "updated_by", "created_by", "data" ], "title": "CosignerExternalResponse" }, "CosignerPage_CosignerExternalResponse_": { "properties": { "items": { "items": { "$ref": "#/components/schemas/CosignerExternalResponse" }, "type": "array", "title": "Items", "description": "The list of Cosigners returned in the page." }, "total": { "anyOf": [ { "minimum": 0.0, "type": "integer" }, { "type": "null" } ], "title": "Total", "description": "The total number of Cosigners across all pages." }, "page": { "anyOf": [ { "minimum": 1.0, "type": "integer" }, { "type": "null" } ], "title": "Page", "description": "Current page index (1-based)." }, "size": { "anyOf": [ { "minimum": 1.0, "type": "integer" }, { "type": "null" } ], "title": "Size", "description": "Number of Cosigners per page." }, "pages": { "anyOf": [ { "minimum": 0.0, "type": "integer" }, { "type": "null" } ], "title": "Pages", "description": "Total number of pages available given the current page size and total." }, "status_summary": { "$ref": "#/components/schemas/SummaryStatus" } }, "type": "object", "required": ["items", "total", "page", "size", "status_summary"], "title": "CosignerPage[CosignerExternalResponse]" }, "CosignerSafeDataExternal": { "properties": { "chain": { "type": "string", "title": "Chain" }, "type": { "type": "string", "enum": ["safe"], "const": "safe", "title": "Type" }, "override_address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Override Address" }, "involvement_level": { "$ref": "#/components/schemas/SignerSigningMode" }, "security_policy": { "$ref": "#/components/schemas/ExternalPolicyOption" }, "wallet_address": { "title": "Wallet Address", "type": "string" } }, "type": "object", "required": [ "involvement_level", "chain", "security_policy", "type", "override_address", "wallet_address" ], "title": "CosignerSafeDataExternal" }, "CosignerSafeResponseExternal": { "properties": { "chain": { "type": "string", "title": "Chain" }, "type": { "type": "string", "enum": ["safe"], "const": "safe", "title": "Type" }, "override_address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Override Address" }, "cosigner_address": { "type": "string", "title": "Cosigner Address" }, "involvement_level": { "$ref": "#/components/schemas/SignerSigningMode" }, "security_policy": { "$ref": "#/components/schemas/ExternalPolicyOption" }, "wallet_address": { "title": "Wallet Address", "type": "string" } }, "type": "object", "required": [ "involvement_level", "chain", "security_policy", "type", "override_address", "wallet_address", "cosigner_address" ], "title": "CosignerSafeResponseExternal" }, "CosignerSafeUpdateDataExternal": { "properties": { "type": { "type": "string", "enum": ["safe"], "const": "safe", "title": "Type" }, "override_address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Override Address" }, "involvement_level": { "anyOf": [ { "$ref": "#/components/schemas/SignerSigningMode" }, { "type": "null" } ] }, "security_policy": { "anyOf": [ { "$ref": "#/components/schemas/ExternalPolicyOption" }, { "type": "null" } ] }, "wallet_address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Wallet Address" } }, "type": "object", "required": ["type"], "title": "CosignerSafeUpdateDataExternal" }, "CosignerSearchRequest": { "properties": { "page": { "type": "integer", "minimum": 1.0, "title": "Page", "default": 1 }, "page_size": { "type": "integer", "maximum": 100.0, "minimum": 1.0, "title": "Page Size", "default": 50 }, "sort": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SortByField" }, "type": "array" }, { "type": "null" } ], "title": "Sort" } }, "type": "object", "title": "CosignerSearchRequest" }, "CosignerSquadsDataExternal": { "properties": { "chain": { "type": "string", "enum": ["solana-mainnet"], "const": "solana-mainnet", "title": "Chain" }, "type": { "type": "string", "enum": ["squads"], "const": "squads", "title": "Type" }, "involvement_level": { "$ref": "#/components/schemas/SignerSigningMode" }, "security_policy": { "$ref": "#/components/schemas/ExternalPolicyOption" }, "wallet_address": { "title": "Wallet Address", "type": "string" } }, "type": "object", "required": [ "involvement_level", "chain", "security_policy", "type", "wallet_address" ], "title": "CosignerSquadsDataExternal" }, "CosignerSquadsResponseExternal": { "properties": { "chain": { "type": "string", "enum": ["solana-mainnet"], "const": "solana-mainnet", "title": "Chain" }, "type": { "type": "string", "enum": ["squads"], "const": "squads", "title": "Type" }, "cosigner_address": { "type": "string", "title": "Cosigner Address" }, "involvement_level": { "$ref": "#/components/schemas/SignerSigningMode" }, "security_policy": { "$ref": "#/components/schemas/ExternalPolicyOption" }, "wallet_address": { "title": "Wallet Address", "type": "string" } }, "type": "object", "required": [ "involvement_level", "chain", "security_policy", "type", "wallet_address", "cosigner_address" ], "title": "CosignerSquadsResponseExternal" }, "CosignerSquadsUpdateDataExternal": { "properties": { "type": { "type": "string", "enum": ["squads"], "const": "squads", "title": "Type" }, "involvement_level": { "anyOf": [ { "$ref": "#/components/schemas/SignerSigningMode" }, { "type": "null" } ] }, "security_policy": { "anyOf": [ { "$ref": "#/components/schemas/ExternalPolicyOption" }, { "type": "null" } ] }, "wallet_address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Wallet Address" } }, "type": "object", "required": ["type"], "title": "CosignerSquadsUpdateDataExternal" }, "CosignerStatusExternal": { "type": "string", "enum": ["pending", "ok", "error"], "description": "The current status of the Cosigner. \n\n - `ok` - The Cosigner is active. \n - `pending` - The Cosigner is waiting for the final activation steps in the multisig wallet to be completed. \n - `error` - Something went wrong and the Cosigner is not working properly.", "title": "CosignerStatusExternal" }, "CreateCosignerExternalRequest": { "properties": { "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags" }, "proposal_actions": { "items": { "oneOf": [ { "$ref": "#/components/schemas/TelegramExternalAction" }, { "$ref": "#/components/schemas/SlackExternalAction" }, { "$ref": "#/components/schemas/EmailExternalAction" } ], "discriminator": { "propertyName": "type", "mapping": { "email": "#/components/schemas/EmailExternalAction", "slack": "#/components/schemas/SlackExternalAction", "telegram": "#/components/schemas/TelegramExternalAction" } } }, "type": "array", "minItems": 1, "title": "Proposal Actions" }, "rejection_actions": { "items": { "oneOf": [ { "$ref": "#/components/schemas/TelegramExternalAction" }, { "$ref": "#/components/schemas/SlackExternalAction" }, { "$ref": "#/components/schemas/EmailExternalAction" } ], "discriminator": { "propertyName": "type", "mapping": { "email": "#/components/schemas/EmailExternalAction", "slack": "#/components/schemas/SlackExternalAction", "telegram": "#/components/schemas/TelegramExternalAction" } } }, "type": "array", "minItems": 1, "title": "Rejection Actions" }, "approval_actions": { "items": { "oneOf": [ { "$ref": "#/components/schemas/TelegramExternalAction" }, { "$ref": "#/components/schemas/SlackExternalAction" }, { "$ref": "#/components/schemas/EmailExternalAction" } ], "discriminator": { "propertyName": "type", "mapping": { "email": "#/components/schemas/EmailExternalAction", "slack": "#/components/schemas/SlackExternalAction", "telegram": "#/components/schemas/TelegramExternalAction" } } }, "type": "array", "minItems": 1, "title": "Approval Actions" }, "malicious_actions": { "anyOf": [ { "items": { "discriminator": { "mapping": { "email": "#/components/schemas/EmailExternalAction", "slack": "#/components/schemas/SlackExternalAction", "telegram": "#/components/schemas/TelegramExternalAction" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/components/schemas/TelegramExternalAction" }, { "$ref": "#/components/schemas/SlackExternalAction" }, { "$ref": "#/components/schemas/EmailExternalAction" } ] }, "minItems": 1, "type": "array" }, { "type": "null" } ], "title": "Malicious Actions" }, "name": { "type": "string", "title": "Name" }, "data": { "oneOf": [ { "$ref": "#/components/schemas/FireblocksCosignerDataExternal" }, { "$ref": "#/components/schemas/FordefiCosignerDataExternal" }, { "$ref": "#/components/schemas/UtilaCosignerDataExternal" }, { "$ref": "#/components/schemas/CosignerSafeDataExternal" }, { "$ref": "#/components/schemas/CosignerSquadsDataExternal" } ], "title": "Data", "discriminator": { "propertyName": "type", "mapping": { "fireblocks": "#/components/schemas/FireblocksCosignerDataExternal", "fordefi": "#/components/schemas/FordefiCosignerDataExternal", "safe": "#/components/schemas/CosignerSafeDataExternal", "squads": "#/components/schemas/CosignerSquadsDataExternal", "utila": "#/components/schemas/UtilaCosignerDataExternal" } } } }, "type": "object", "required": [ "tags", "proposal_actions", "rejection_actions", "approval_actions", "name", "data" ], "title": "CreateCosignerExternalRequest" }, "EmailExternalAction": { "properties": { "type": { "type": "string", "enum": ["email"], "const": "email", "title": "Type" }, "to": { "items": { "type": "string" }, "type": "array", "minItems": 1, "title": "To" }, "cc": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Cc", "description": "Optional CC email addresses." }, "bcc": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Bcc", "description": "Optional BCC email addresses." }, "body": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Body" } }, "type": "object", "required": ["type", "to"], "title": "EmailExternalAction" }, "FireblocksCosignerDataExternal": { "properties": { "type": { "type": "string", "enum": ["fireblocks"], "const": "fireblocks", "title": "Type" }, "integration_instance_id": { "type": "string", "title": "Integration Instance Id" }, "scope": { "type": "string", "enum": ["specific_vaults"], "const": "specific_vaults", "title": "Scope", "description": "Defines whether the Cosigner applies to the entire workspace or only to specific vaults." }, "vault_ids": { "items": { "type": "string" }, "type": "array", "minItems": 1, "title": "Vault Ids", "description": "Vaults that Cosigner will be applied to. Required when scope is `specific_vaults` " }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "involvement_level": { "$ref": "#/components/schemas/ApproverSigningMode" }, "security_policy": { "$ref": "#/components/schemas/ExternalPolicyOption" }, "unsupported_chain_behavior": { "$ref": "#/components/schemas/DecisionAction" } }, "type": "object", "required": [ "type", "unsupported_chain_behavior", "security_policy", "integration_instance_id", "scope", "involvement_level", "vault_ids" ], "title": "FireblocksCosignerDataExternal", "description": "Configuration required to connect and operate a Fireblocks cosigner." }, "FireblocksCosignerResponseExternal": { "properties": { "type": { "type": "string", "enum": ["fireblocks"], "const": "fireblocks", "title": "Type" }, "integration_instance_id": { "type": "string", "title": "Integration Instance Id", "description": "The ID of the integration instance used to connect to the Fireblocks workspace. Acquired using the Search Integrations endpoint." }, "scope": { "type": "string", "enum": ["specific_vaults"], "const": "specific_vaults", "title": "Scope", "default": "specific_vaults" }, "vaults": { "items": { "anyOf": [ { "$ref": "#/components/schemas/VaultDetails" }, { "$ref": "#/components/schemas/VaultError" } ] }, "type": "array", "title": "Vaults" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "involvement_level": { "$ref": "#/components/schemas/ApproverSigningMode" }, "security_policy": { "$ref": "#/components/schemas/ExternalPolicyOption" }, "unsupported_chain_behavior": { "$ref": "#/components/schemas/DecisionAction" } }, "type": "object", "required": [ "type", "unsupported_chain_behavior", "security_policy", "integration_instance_id", "involvement_level", "vaults" ], "title": "FireblocksCosignerResponseExternal" }, "FireblocksCosignerUpdateExternal": { "properties": { "type": { "type": "string", "enum": ["fireblocks"], "const": "fireblocks", "title": "Type" }, "vault_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Vault Ids" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "involvement_level": { "anyOf": [ { "$ref": "#/components/schemas/ApproverSigningMode" }, { "type": "null" } ] }, "security_policy": { "anyOf": [ { "$ref": "#/components/schemas/ExternalPolicyOption" }, { "type": "null" } ] }, "unsupported_chain_behavior": { "anyOf": [ { "$ref": "#/components/schemas/DecisionAction" }, { "type": "null" } ] } }, "type": "object", "required": ["type"], "title": "FireblocksCosignerUpdateExternal" }, "FordefiCosignerDataExternal": { "properties": { "type": { "type": "string", "enum": ["fordefi"], "const": "fordefi", "title": "Type" }, "integration_instance_id": { "type": "string", "title": "Integration Instance Id" }, "scope": { "$ref": "#/components/schemas/WorkspaceScope" }, "vault_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Vault Ids" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "involvement_level": { "$ref": "#/components/schemas/SignerSigningMode" }, "security_policy": { "$ref": "#/components/schemas/ExternalPolicyOption" }, "unsupported_chain_behavior": { "$ref": "#/components/schemas/DecisionAction" } }, "type": "object", "required": [ "type", "unsupported_chain_behavior", "security_policy", "integration_instance_id", "scope", "involvement_level" ], "title": "FordefiCosignerDataExternal" }, "FordefiCosignerResponseExternal": { "properties": { "type": { "type": "string", "enum": ["fordefi"], "const": "fordefi", "title": "Type" }, "integration_instance_id": { "type": "string", "title": "Integration Instance Id" }, "scope": { "$ref": "#/components/schemas/WorkspaceScope" }, "vaults": { "items": { "anyOf": [ { "$ref": "#/components/schemas/VaultDetails" }, { "$ref": "#/components/schemas/VaultError" } ] }, "type": "array", "title": "Vaults" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "involvement_level": { "$ref": "#/components/schemas/SignerSigningMode" }, "security_policy": { "$ref": "#/components/schemas/ExternalPolicyOption" }, "unsupported_chain_behavior": { "$ref": "#/components/schemas/DecisionAction" } }, "type": "object", "required": [ "type", "unsupported_chain_behavior", "security_policy", "integration_instance_id", "scope", "involvement_level", "vaults" ], "title": "FordefiCosignerResponseExternal" }, "FordefiCosignerUpdateExternal": { "properties": { "type": { "type": "string", "enum": ["fordefi"], "const": "fordefi", "title": "Type" }, "vault_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Vault Ids" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "involvement_level": { "anyOf": [ { "$ref": "#/components/schemas/SignerSigningMode" }, { "type": "null" } ] }, "security_policy": { "anyOf": [ { "$ref": "#/components/schemas/ExternalPolicyOption" }, { "type": "null" } ] }, "unsupported_chain_behavior": { "anyOf": [ { "$ref": "#/components/schemas/DecisionAction" }, { "type": "null" } ] } }, "type": "object", "required": ["type"], "title": "FordefiCosignerUpdateExternal" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "ImpersonationSource": { "type": "string", "enum": ["TOP_TOKEN", "USER_DEFINED"], "title": "ImpersonationSource", "description": "Source of the impersonation match" }, "ImpersonationTarget": { "properties": { "chain": { "type": "string", "title": "Chain", "description": "Blockchain network of the target token" }, "address": { "type": "string", "title": "Address", "description": "Address of the token being impersonated" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "Name of the token being impersonated" }, "symbol": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Symbol", "description": "Symbol of the token being impersonated" }, "source": { "anyOf": [ { "$ref": "#/components/schemas/ImpersonationSource" }, { "type": "null" } ], "description": "Source of the impersonation match - either from top tokens or user-defined baseline" } }, "type": "object", "required": ["chain", "address"], "title": "ImpersonationTarget" }, "PolicyOption": { "type": "string", "enum": ["blockaid_engine", "labels", "policy_engine"], "title": "PolicyOption", "description": "The method by which transaction decisions are made for this Cosigner: \n\n - `blockaid_engine` - Automatically rejects malicious transactions and approves safe ones. \n - `policy_engine` - Add custom rules on top of Blockaid’s Default Policy for granular control. Custom policies are set using the GetPolicies and SetPolicies endpoints." }, "SignerSigningMode": { "type": "string", "enum": ["active_approval", "reporting_only"], "title": "SignerSigningMode", "description": "This Cosigner's participation level in transaction approval: \n\n - `active_approval` - Cosigner actively approves or rejects transactions. \n - `reporting_only` - Cosigner reviews transactions without approving or signing." }, "SlackExternalAction": { "properties": { "type": { "type": "string", "enum": ["slack"], "const": "slack", "title": "Type" }, "message_format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Message Format", "description": "Customization of the message to send in the Slack notification." }, "channels": { "items": { "type": "string" }, "minItems": 1, "title": "Channels", "type": "array" } }, "type": "object", "required": ["type", "channels"], "title": "SlackExternalAction" }, "SortByField": { "properties": { "field": { "type": "string", "enum": ["id", "created_at"], "title": "Field" }, "operator": { "type": "string", "enum": ["asc", "desc"], "title": "Operator" } }, "type": "object", "required": ["field", "operator"], "title": "SortByField" }, "SummaryStatus": { "properties": { "ok": { "type": "integer", "title": "Ok" }, "pending": { "type": "integer", "title": "Pending" }, "error": { "type": "integer", "title": "Error" } }, "type": "object", "required": ["ok", "pending", "error"], "title": "SummaryStatus" }, "TelegramExternalAction": { "properties": { "type": { "type": "string", "enum": ["telegram"], "const": "telegram", "title": "Type" }, "chats": { "items": { "$ref": "#/components/schemas/TelegramExternalChannel" }, "type": "array", "minItems": 1, "title": "Chats" }, "message_format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Message Format" } }, "type": "object", "required": ["type", "chats"], "title": "TelegramExternalAction" }, "TelegramExternalChannel": { "properties": { "chat_id": { "type": "string", "title": "Chat Id", "description": "Telegram channel ID." }, "topic_ids": { "items": { "type": "integer" }, "type": "array", "title": "Topic Ids", "description": "Optional topic IDs within the channel where the message should be posted." } }, "type": "object", "required": ["chat_id", "topic_ids"], "title": "TelegramExternalChannel" }, "UpdateCosignerExternalRequest": { "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags", "description": "Tags assigned to the Cosigner." }, "proposal_actions": { "anyOf": [ { "items": { "discriminator": { "mapping": { "email": "#/components/schemas/EmailExternalAction", "slack": "#/components/schemas/SlackExternalAction", "telegram": "#/components/schemas/TelegramExternalAction" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/components/schemas/TelegramExternalAction" }, { "$ref": "#/components/schemas/SlackExternalAction" }, { "$ref": "#/components/schemas/EmailExternalAction" } ] }, "type": "array" }, { "type": "null" } ], "title": "Proposal Actions", "description": "Actions to trigger when a transaction proposal is submitted." }, "rejection_actions": { "anyOf": [ { "items": { "discriminator": { "mapping": { "email": "#/components/schemas/EmailExternalAction", "slack": "#/components/schemas/SlackExternalAction", "telegram": "#/components/schemas/TelegramExternalAction" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/components/schemas/TelegramExternalAction" }, { "$ref": "#/components/schemas/SlackExternalAction" }, { "$ref": "#/components/schemas/EmailExternalAction" } ] }, "type": "array" }, { "type": "null" } ], "title": "Rejection Actions", "description": "Actions to trigger when a transaction proposal is rejected." }, "approval_actions": { "anyOf": [ { "items": { "discriminator": { "mapping": { "email": "#/components/schemas/EmailExternalAction", "slack": "#/components/schemas/SlackExternalAction", "telegram": "#/components/schemas/TelegramExternalAction" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/components/schemas/TelegramExternalAction" }, { "$ref": "#/components/schemas/SlackExternalAction" }, { "$ref": "#/components/schemas/EmailExternalAction" } ] }, "type": "array" }, { "type": "null" } ], "title": "Approval Actions", "description": "Actions to trigger when a transaction proposal is approved." }, "malicious_actions": { "anyOf": [ { "items": { "discriminator": { "mapping": { "email": "#/components/schemas/EmailExternalAction", "slack": "#/components/schemas/SlackExternalAction", "telegram": "#/components/schemas/TelegramExternalAction" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/components/schemas/TelegramExternalAction" }, { "$ref": "#/components/schemas/SlackExternalAction" }, { "$ref": "#/components/schemas/EmailExternalAction" } ] }, "type": "array" }, { "type": "null" } ], "title": "Malicious Actions" }, "data": { "oneOf": [ { "$ref": "#/components/schemas/FireblocksCosignerUpdateExternal" }, { "$ref": "#/components/schemas/FordefiCosignerUpdateExternal" }, { "$ref": "#/components/schemas/UtilaCosignerUpdateExternal" }, { "$ref": "#/components/schemas/CosignerSafeUpdateDataExternal" }, { "$ref": "#/components/schemas/CosignerSquadsUpdateDataExternal" } ], "title": "Data", "discriminator": { "propertyName": "type", "mapping": { "fireblocks": "#/components/schemas/FireblocksCosignerUpdateExternal", "fordefi": "#/components/schemas/FordefiCosignerUpdateExternal", "safe": "#/components/schemas/CosignerSafeUpdateDataExternal", "squads": "#/components/schemas/CosignerSquadsUpdateDataExternal", "utila": "#/components/schemas/UtilaCosignerUpdateExternal" } } } }, "type": "object", "required": ["data"], "title": "UpdateCosignerExternalRequest" }, "UtilaCosignerResponseExternal": { "properties": { "type": { "type": "string", "enum": ["utila"], "const": "utila", "title": "Type" }, "integration_instance_id": { "type": "string", "title": "Integration Instance Id" }, "addresses": { "items": { "$ref": "#/components/schemas/AddressDetails" }, "type": "array", "title": "Addresses" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "involvement_level": { "$ref": "#/components/schemas/SignerSigningMode" }, "security_policy": { "$ref": "#/components/schemas/ExternalPolicyOption" }, "unsupported_chain_behavior": { "$ref": "#/components/schemas/DecisionAction" } }, "type": "object", "required": [ "type", "unsupported_chain_behavior", "security_policy", "integration_instance_id", "involvement_level", "addresses" ], "title": "UtilaCosignerResponseExternal" }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError" }, "VaultDetails": { "properties": { "vault_id": { "type": "string", "title": "Vault Id" }, "name": { "type": "string", "title": "Name" }, "addresses": { "items": { "$ref": "#/components/schemas/AddressDetails" }, "type": "array", "title": "Addresses" } }, "type": "object", "required": ["vault_id", "name", "addresses"], "title": "VaultDetails" }, "VaultError": { "properties": { "vault_id": { "type": "string", "title": "Vault Id" }, "error": { "type": "string", "title": "Error" } }, "type": "object", "required": ["vault_id", "error"], "title": "VaultError" }, "WorkspaceScope": { "type": "string", "enum": ["all_vaults", "specific_vaults"], "title": "WorkspaceScope" }, "ABIConstructor": { "properties": { "type": { "type": "string", "enum": ["constructor"], "title": "Type" }, "inputs": { "items": { "$ref": "#/components/schemas/ABIParameter" }, "type": "array", "title": "Inputs" }, "stateMutability": { "type": "string", "enum": ["nonpayable", "payable"], "title": "Statemutability" } }, "type": "object", "required": ["type"], "title": "ABIConstructor" }, "ABIError": { "properties": { "type": { "type": "string", "enum": ["error"], "title": "Type" }, "name": { "type": "string", "title": "Name" }, "inputs": { "items": { "$ref": "#/components/schemas/ABIParameter" }, "type": "array", "title": "Inputs", "default": [] } }, "type": "object", "required": ["type", "name"], "title": "ABIError" }, "ABIEvent": { "properties": { "type": { "type": "string", "enum": ["event"], "title": "Type" }, "name": { "type": "string", "title": "Name" }, "inputs": { "items": { "$ref": "#/components/schemas/ABIParameter" }, "type": "array", "title": "Inputs" }, "anonymous": { "type": "boolean", "title": "Anonymous", "default": false } }, "type": "object", "required": ["type", "name"], "title": "ABIEvent" }, "ABIFallback": { "properties": { "type": { "type": "string", "enum": ["fallback"], "title": "Type" }, "stateMutability": { "type": "string", "enum": ["nonpayable", "payable"], "title": "Statemutability" } }, "type": "object", "required": ["type"], "title": "ABIFallback" }, "ABIFunction": { "properties": { "type": { "type": "string", "enum": ["function"], "title": "Type" }, "name": { "type": "string", "title": "Name" }, "inputs": { "items": { "$ref": "#/components/schemas/ABIParameter" }, "type": "array", "title": "Inputs" }, "outputs": { "items": { "$ref": "#/components/schemas/ABIParameter" }, "type": "array", "title": "Outputs" }, "stateMutability": { "type": "string", "enum": ["pure", "view", "nonpayable", "payable"], "title": "Statemutability" }, "constant": { "type": "boolean", "title": "Constant" }, "payable": { "type": "boolean", "title": "Payable" } }, "type": "object", "required": ["type", "name", "stateMutability"], "title": "ABIFunction" }, "ABIParameter": { "properties": { "name": { "type": "string", "title": "Name" }, "type": { "type": "string", "title": "Type" }, "internalType": { "type": "string", "title": "Internaltype" }, "components": { "items": { "$ref": "#/components/schemas/ABIParameter" }, "type": "array", "title": "Components" } }, "type": "object", "required": ["name", "type"], "title": "ABIParameter" }, "ABIReceive": { "properties": { "type": { "type": "string", "enum": ["receive"], "title": "Type" }, "stateMutability": { "type": "string", "enum": ["payable"], "title": "Statemutability" } }, "type": "object", "required": ["type", "stateMutability"], "title": "ABIReceive" }, "AddressScanRequest": { "properties": { "address": { "type": "string", "title": "Address", "description": "The address to scan." }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "chain": { "$ref": "#/components/schemas/AddressScanSupportedChains" } }, "type": "object", "required": ["address", "chain"], "title": "AddressScanRequest" }, "AddressScanSupportedChains": { "enum": [ "ethereum", "arbitrum", "polygon", "base", "bsc", "avalanche", "optimism", "gnosis", "megaeth", "solana" ], "title": "AddressScanSupportedChains", "type": "string", "description": "Supported chains for address scanning" }, "RiskExposureSupportedChains": { "enum": [ "ethereum", "base", "bsc", "arbitrum", "optimism", "aster", "polygon", "hyperevm", "hyperliquid", "lighter", "tron", "bitcoin", "solana", "polymarket" ], "title": "RiskExposureSupportedChains", "type": "string", "description": "Supported chains for risk exposure" }, "RiskExposureAddressScanRequest": { "properties": { "address": { "type": "string", "title": "Address", "description": "The address to scan." }, "metadata": { "$ref": "#/components/schemas/ScanRequestMetadata" }, "chain": { "$ref": "#/components/schemas/RiskExposureSupportedChains" } }, "type": "object", "required": ["address", "chain"], "title": "RiskExposureAddressScanRequest" }, "AddressFeature": { "properties": { "entity": { "type": "string", "enum": ["address"], "title": "Entity", "description": "Type of entity associated with the feature", "default": "address" }, "type": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__response__FeatureType" } ], "description": "Type of feature detected in the address scan" }, "feature_id": { "type": "string", "title": "Feature Id", "description": "Unique identifier for the detected feature" }, "description": { "type": "string", "title": "Description", "description": "Detailed description of the detected feature" }, "address": { "type": "string", "title": "Address", "description": "The blockchain address where the feature was detected" }, "associated_urls": { "items": { "type": "string" }, "type": "array", "title": "Associated Urls", "description": "List of URLs associated with this address" } }, "type": "object", "required": [ "type", "feature_id", "description", "address", "associated_urls" ], "title": "AddressFeature" }, "AddressReportParams": { "properties": { "address": { "type": "string", "title": "Address", "description": "The address to report on." }, "domain": { "type": "string", "title": "Domain", "description": "The domain related to this address." }, "chain": { "allOf": [ { "$ref": "#/components/schemas/AddressReportSupportedChains" } ], "description": "The chain name" } }, "type": "object", "required": ["address", "domain", "chain"], "title": "AddressReportParams" }, "AddressReportSupportedChains": { "type": "string", "enum": [ "arbitrum", "avalanche", "base", "base-sepolia", "lordchain", "lordchain-testnet", "metacade", "metacade-testnet", "bsc", "ethereum", "optimism", "polygon", "zksync", "zksync-sepolia", "zora", "linea", "blast", "scroll", "ethereum-sepolia", "degen", "avalanche-fuji", "gnosis", "worldchain", "soneium-minato", "ronin", "apechain", "berachain", "berachain-bartio", "ink", "ink-sepolia", "abstract", "abstract-testnet", "soneium", "unichain", "sei", "flow-evm", "hyperevm", "katana", "plume", "xlayer", "monad", "monad-testnet", "hedera", "tempo", "tempo-testnet", "kite-ai", "kaia", "solana", "eclipse", "sonic", "starknet", "sui", "bitcoin", "stellar", "plasma", "mantle", "robinhood", "arc" ], "title": "AddressReportSupportedChains", "description": "The chain name" }, "AddressRequest": { "properties": { "identifier_type": { "type": "string", "enum": ["address"], "title": "Identifier Type", "default": "address" }, "identifier": { "type": "string", "title": "Identifier", "description": "The contract or wallet address for this asset." }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags", "description": "Group your assets by tags to filter by them.", "default": [] }, "alias": { "type": "string", "title": "Alias", "description": "A friendly name for this asset so you can spot it quickly; the UI shows this instead of the raw address or domain." }, "runtime": { "allOf": [ { "$ref": "#/components/schemas/MonitoringSupportedRuntimes" } ], "description": "Deprecated. This field is optional and kept for backward compatibility only. It should not be used." }, "chain_name": { "allOf": [ { "$ref": "#/components/schemas/MonitoringSupportedChains" } ], "description": "The chain where the asset resides in." }, "contract_interface": { "items": { "$ref": "#/components/schemas/ContractInterface" }, "type": "array", "title": "Contract Interface", "description": "The contract interfaces for the asset (for evm the ABI file).\n If the asset is a proxy, include the implementation contract interface as well.\n Will be auto-fetched if not provided.\n " } }, "type": "object", "required": ["identifier", "chain_name"], "title": "AddressRequest" }, "AddressResponse": { "properties": { "identifier_type": { "type": "string", "enum": ["address"], "title": "Identifier Type", "default": "address", "description": "The asset type." }, "identifier": { "type": "string", "title": "Identifier", "description": "The contract or wallet address for this asset." }, "asset_id": { "type": "string" }, "alias": { "type": "string", "title": "Alias", "description": "The alias of the asset." }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags", "description": "Tags assigned to this asset." }, "added_by": { "type": "string", "title": "Added By", "description": "The user who added the asset." }, "created_at": { "type": "string", "format": "date-time", "title": "Created At", "description": "The date and time the asset was created." }, "address_details": { "$ref": "#/components/schemas/BaseAddressDetails" } }, "type": "object", "required": [ "identifier", "tags", "added_by", "created_at", "address_details", "identifier_type", "asset_id" ], "title": "AddressResponse" }, "AddressValidation": { "properties": { "result_type": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__models__ValidationResultType" } ], "description": "A string indicating if the transaction is safe to sign or not." }, "features": { "anyOf": [ { "items": { "$ref": "#/components/schemas/Feature" }, "type": "array" }, { "items": { "type": "string" }, "type": "array" } ], "title": "Features", "description": "A list of features explaining the scan result (each feature includes a type, feature_id, and description)." }, "error": { "type": "string", "title": "Error", "description": "An error message returned when `result_type` is `Error`." } }, "type": "object", "required": ["result_type"], "title": "AddressValidation" }, "AddressValidationExtended": { "properties": { "result_type": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__models__ValidationResultType" } ], "description": "A string indicating if the address is malicious or not." }, "features": { "items": { "$ref": "#/components/schemas/Feature" }, "type": "array", "title": "Features", "description": "A list of textual features about this address that can be presented to the user." } }, "type": "object", "required": ["result_type"], "title": "AddressValidationExtended" }, "Allowance": { "properties": { "usd_price": { "type": "string", "title": "Usd Price" }, "value": { "type": "string", "title": "Value" } }, "type": "object", "title": "Allowance" }, "Approval": { "properties": { "allowance": { "$ref": "#/components/schemas/Allowance" }, "asset": { "$ref": "#/components/schemas/Asset" }, "exposure": { "$ref": "#/components/schemas/Exposure" }, "spender": { "$ref": "#/components/schemas/Spender" }, "verdict": { "$ref": "#/components/schemas/routers__evm__models__ValidationResultType" } }, "type": "object", "required": ["allowance", "asset", "exposure", "spender", "verdict"], "title": "Approval" }, "ApprovalsRequest": { "properties": { "address": { "type": "string", "pattern": "^0x[0-9A-Fa-f]{40}$", "title": "Address", "description": "The address to validate." }, "chain": { "anyOf": [ { "$ref": "#/components/schemas/ApprovalsSupportedChains" }, { "type": "string" } ], "title": "Chain", "description": "The chain to validate against." }, "metadata": { "allOf": [ { "$ref": "#/components/schemas/NewMetadata" } ], "title": "Metadata", "description": "Metadata about the end user's session and identity within the integrating wallet application. These fields help investigate user sessions inside the platform and detect anomalies such as account takeover attempts." } }, "type": "object", "required": ["address", "chain", "metadata"], "title": "ApprovalsRequest" }, "ApprovalsResponse": { "properties": { "approvals": { "items": { "$ref": "#/components/schemas/Approval" }, "type": "array", "title": "Approvals" } }, "type": "object", "title": "ApprovalsResponse" }, "ApprovalsSupportedChains": { "type": "string", "enum": [ "ethereum", "polygon", "bsc", "avalanche", "arbitrum", "base", "linea", "kaia", "optimism" ], "title": "ApprovalsSupportedChains", "description": "Supported chain identifiers for the approvals endpoints." }, "Asset": { "properties": { "address": { "type": "string", "title": "Address" }, "decimals": { "type": "integer", "title": "Decimals" }, "logo_url": { "type": "string", "title": "Logo Url" }, "name": { "type": "string", "title": "Name" }, "symbol": { "type": "string", "title": "Symbol" }, "type": { "type": "string", "title": "Type" } }, "type": "object", "required": ["address", "decimals", "name", "symbol", "type"], "title": "Asset" }, "AssetAddress": { "properties": { "address": { "type": "string", "title": "Address", "description": "The address of the asset" } }, "type": "object", "required": ["address"], "title": "AssetAddress" }, "AssetErrorResponse": { "properties": { "error_code": { "$ref": "#/components/schemas/AssetsErrorCode" }, "description": { "type": "string", "title": "Description" }, "identifier": { "type": "string", "title": "Identifier" } }, "type": "object", "required": ["error_code", "description"], "title": "AssetErrorResponse" }, "AssetSymbol": { "properties": { "symbol": { "type": "string", "title": "Symbol", "description": "The symbol of the asset" } }, "type": "object", "required": ["symbol"], "title": "AssetSymbol" }, "AssetUpdateRequest": { "properties": { "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags", "description": "Group your assets by tags to filter by them.", "default": [] }, "alias": { "type": "string", "title": "Alias", "description": "A friendly name for this asset so you can spot it quickly; the UI shows this instead of the raw address or domain." } }, "type": "object", "title": "AssetUpdateRequest" }, "AssetsErrorCode": { "type": "string", "enum": [ "missing_abi", "type_mismatch", "generic_error", "already_exists", "unsupported_runtime", "attached_system_rule", "inconsistent_runtime", "implementation_missing_abi", "not_found" ], "title": "AssetsErrorCode", "description": "The error code returned by the Assets API in case of an error." }, "AttackEntry": { "properties": { "score": { "type": "number", "title": "Score" }, "threshold": { "type": "number", "title": "Threshold" } }, "type": "object", "required": ["score", "threshold"], "title": "AttackEntry" }, "Authorization": { "properties": { "address": { "type": "string", "title": "Address", "description": "The delegation designation address" }, "chainId": { "type": "string", "title": "Chainid", "description": "The chain ID as hex string" }, "nonce": { "type": "string", "title": "Nonce", "description": "The nonce value as hex string" }, "yParity": { "type": "string", "title": "Yparity", "description": "The yParity value as hex string" }, "r": { "type": "string", "title": "R", "description": "The r value as hex string" }, "s": { "type": "string", "title": "S", "description": "The s value as hex string" }, "eoa": { "type": "string", "title": "Eoa", "description": "The authority address of the delegation, should be provided when the signature (r,s,yParity) is not provided in order to simulate the transaction with the correct delegation" } }, "type": "object", "required": ["address"], "title": "Authorization" }, "BaseAddressDetails": { "properties": { "chain": { "type": "string", "title": "Chain", "description": "The chain of the asset." }, "runtime": { "allOf": [ { "$ref": "#/components/schemas/MonitoringSupportedRuntimes" } ], "description": "The runtime of the asset." }, "properties": { "items": { "type": "string" }, "type": "array", "title": "Properties", "description": "The properties list of the asset." }, "address": { "type": "string", "title": "Address", "description": "The address of the asset." } }, "type": "object", "required": ["chain", "runtime", "properties", "address"], "title": "BaseAddressDetails" }, "ChainParam": { "anyOf": [ { "$ref": "#/components/schemas/TransactionScanSupportedChains" }, { "$ref": "#/components/schemas/TransactionScanChainID" } ], "title": "ChainParam" }, "ChainTransactionHashParams": { "properties": { "chain": { "allOf": [ { "$ref": "#/components/schemas/TransactionScanSupportedChains" } ], "description": "The chain name" }, "tx_hash": { "type": "string", "title": "Tx Hash", "description": "The transaction hash to report on." } }, "type": "object", "required": ["chain", "tx_hash"], "title": "ChainTransactionHashParams" }, "Chains": { "type": "string", "enum": [ "arbitrum", "avalanche", "base", "base-sepolia", "bsc", "ethereum", "ethereum-sepolia", "optimism", "polygon", "zksync", "zksync-sepolia", "zora", "linea", "blast", "scroll", "avalanche-fuji", "degen", "gnosis", "worldchain", "soneium-minato", "ronin", "apechain", "berachain", "ink-sepolia", "ink", "abstract", "abstract-testnet", "metacade", "metacade-testnet", "soneium", "unichain", "lordchain-testnet", "lordchain", "sei", "flow-evm", "hyperevm", "megaeth", "katana", "plume", "solana", "bitcoin", "xlayer", "monad", "monad-testnet", "tron", "kaia", "plasma", "mantle", "robinhood", "arc" ], "title": "Chains", "description": "The chain name" }, "ContractInterface": { "properties": { "address": { "type": "string", "title": "Address", "description": "The address of the contract." }, "abi_json": { "items": { "anyOf": [ { "$ref": "#/components/schemas/ABIFunction" }, { "$ref": "#/components/schemas/ABIConstructor" }, { "$ref": "#/components/schemas/ABIFallback" }, { "$ref": "#/components/schemas/ABIReceive" }, { "$ref": "#/components/schemas/ABIEvent" }, { "$ref": "#/components/schemas/ABIError" } ] }, "type": "array", "title": "Abi Json", "description": "The ABI of the contract." } }, "type": "object", "required": ["address", "abi_json"], "title": "ContractInterface" }, "ContractOperations": { "properties": { "contract_addresses": { "items": { "type": "string" }, "type": "array", "title": "Contract Addresses" }, "functions": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "type": "object", "title": "Functions" } }, "type": "object", "required": ["contract_addresses", "functions"], "title": "ContractOperations" }, "Data": { "properties": { "chain": { "allOf": [ { "$ref": "#/components/schemas/Chains" } ], "description": "Blockchain network where the transaction will be executed" }, "transaction_action": { "type": "string", "enum": ["deposit", "withdrawal"], "title": "Transaction Action", "description": "Action the transaction is making" }, "from": { "type": "string", "title": "From", "description": "Source address or identifier for the transaction" }, "to": { "type": "string", "title": "To", "description": "Destination address or identifier for the transaction" }, "amount": { "type": "number", "exclusiveMinimum": 0.0, "title": "Amount", "description": "Amount of the transaction in the specified asset" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/AssetAddress" }, { "$ref": "#/components/schemas/AssetSymbol" } ], "title": "Asset", "description": "Asset information" } }, "type": "object", "required": ["chain", "to", "amount", "asset"], "title": "Data" }, "DomainRequest": { "properties": { "identifier_type": { "type": "string", "enum": ["domain"], "title": "Identifier Type", "default": "domain" }, "identifier": { "type": "string", "title": "Identifier", "description": "The domain name for this asset." }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags", "description": "Group your assets by tags to filter by them.", "default": [] }, "alias": { "type": "string", "title": "Alias", "description": "A friendly name for this asset so you can spot it quickly; the UI shows this instead of the raw address or domain." } }, "type": "object", "required": ["identifier"], "title": "DomainRequest" }, "PerpRequest": { "properties": { "identifier_type": { "type": "string", "enum": ["perp"], "title": "Identifier Type", "default": "perp" }, "identifier": { "type": "string", "title": "Identifier", "description": "The perp identifier." }, "chain_name": { "type": "string", "enum": ["hyperliquid", "aster", "lighter"], "title": "Chain Name", "description": "The perpetuals protocol. Supported values: \"hyperliquid\", \"aster\", \"lighter\"." }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags", "description": "Group your assets by tags to filter by them.", "default": [] }, "alias": { "type": "string", "title": "Alias", "description": "A friendly name for this asset so you can spot it quickly; the UI shows this instead of the raw address." } }, "type": "object", "required": ["identifier", "chain_name"], "title": "PerpRequest" }, "MarketRequest": { "properties": { "identifier_type": { "type": "string", "enum": ["market"], "title": "Identifier Type", "default": "market" }, "identifier": { "type": "string", "title": "Identifier", "description": "The market slug for this asset." }, "chain_name": { "type": "string", "enum": ["polymarket"], "title": "Chain Name", "default": "polymarket", "description": "Must be \"polymarket\" for prediction market assets." }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags", "description": "Group your assets by tags to filter by them.", "default": [] }, "alias": { "type": "string", "title": "Alias", "description": "A friendly name for this asset so you can spot it quickly; the UI shows this instead of the raw address." } }, "type": "object", "required": ["identifier", "chain_name"], "title": "MarketRequest" }, "DomainResponse": { "properties": { "identifier_type": { "type": "string", "enum": ["domain"], "title": "Identifier Type", "default": "domain", "description": "The asset type." }, "identifier": { "type": "string", "title": "Identifier", "description": "The domain name for this asset." }, "asset_id": { "type": "string" }, "alias": { "type": "string", "title": "Alias", "description": "The alias of the asset." }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags", "description": "Tags assigned to the asset." }, "added_by": { "type": "string", "title": "Added By", "description": "The user who added the asset." }, "created_at": { "type": "string", "format": "date-time", "title": "Created At", "description": "The date and time the asset was created." } }, "type": "object", "required": [ "identifier", "tags", "added_by", "created_at", "identifier_type", "asset_id" ], "title": "DomainResponse" }, "PerpResponse": { "properties": { "identifier_type": { "type": "string", "enum": ["perp"], "title": "Identifier Type", "default": "perp", "description": "The asset type." }, "identifier": { "type": "string", "title": "Identifier", "description": "The perp identifier (e.g. \"btc-usdc\")." }, "asset_id": { "type": "string" }, "alias": { "type": "string", "title": "Alias", "description": "The alias of the asset." }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags", "description": "Tags assigned to this asset." }, "added_by": { "type": "string", "title": "Added By", "description": "The user who added the asset." }, "created_at": { "type": "string", "format": "date-time", "title": "Created At", "description": "The date and time the asset was created." }, "address_details": { "$ref": "#/components/schemas/BaseAddressDetails" } }, "type": "object", "required": [ "identifier", "tags", "added_by", "created_at", "address_details", "identifier_type", "asset_id" ], "title": "PerpResponse" }, "MarketResponse": { "properties": { "identifier_type": { "type": "string", "enum": ["market"], "title": "Identifier Type", "default": "market", "description": "The asset type." }, "identifier": { "type": "string", "title": "Identifier", "description": "The market slug for this asset." }, "asset_id": { "type": "string" }, "alias": { "type": "string", "title": "Alias", "description": "The alias of the asset." }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags", "description": "Tags assigned to this asset." }, "added_by": { "type": "string", "title": "Added By", "description": "The user who added the asset." }, "created_at": { "type": "string", "format": "date-time", "title": "Created At", "description": "The date and time the asset was created." }, "address_details": { "$ref": "#/components/schemas/BaseAddressDetails" } }, "type": "object", "required": [ "identifier", "tags", "added_by", "created_at", "address_details", "identifier_type", "asset_id" ], "title": "MarketResponse" }, "EVMAddressReportParams": { "properties": { "address": { "type": "string", "title": "Address", "description": "The address to report on." }, "domain": { "type": "string", "title": "Domain", "description": "The domain related to this address." }, "chain": { "allOf": [ { "$ref": "#/components/schemas/EVMAddressReportSupportedChains" } ], "description": "The chain name" } }, "type": "object", "required": ["address", "domain", "chain"], "title": "EVMAddressReportParams" }, "EVMAddressReportSupportedChains": { "type": "string", "enum": [ "arbitrum", "avalanche", "base", "base-sepolia", "lordchain", "lordchain-testnet", "metacade", "metacade-testnet", "bsc", "ethereum", "optimism", "polygon", "zksync", "zksync-sepolia", "zora", "linea", "blast", "scroll", "ethereum-sepolia", "degen", "avalanche-fuji", "gnosis", "worldchain", "soneium-minato", "ronin", "apechain", "berachain", "berachain-bartio", "ink", "ink-sepolia", "abstract", "abstract-testnet", "soneium", "unichain", "sei", "flow-evm", "hyperevm", "katana", "plume", "xlayer", "monad", "monad-testnet", "hedera", "tempo", "tempo-testnet", "kite-ai", "kaia", "plasma", "mantle", "robinhood", "arc" ], "title": "EVMAddressReportSupportedChains", "description": "The chain name" }, "EnrichmentReportAccount": { "properties": { "account_id": { "type": "string", "title": "Account Id" }, "account_creation_timestamp": { "type": "string", "title": "Account Creation Timestamp" }, "user_age": { "type": "integer", "exclusiveMinimum": 0.0, "title": "User Age" }, "user_country_code": { "type": "string", "title": "User Country Code" } }, "type": "object", "required": ["account_id", "user_country_code"], "title": "EnrichmentReportAccount" }, "EnrichmentReportAddress": { "properties": { "chain": { "$ref": "#/components/schemas/SupportedChains" }, "address": { "type": "string", "title": "Address" } }, "type": "object", "required": ["chain", "address"], "title": "EnrichmentReportAddress" }, "EnrichmentReportAddresses": { "properties": { "source": { "allOf": [ { "$ref": "#/components/schemas/EnrichmentReportSource" } ], "description": "The source of the fraud report", "default": "user_report" }, "addresses": { "items": { "$ref": "#/components/schemas/EnrichmentReportAddress" }, "type": "array", "title": "Addresses" }, "fraud_urls": { "items": { "type": "string" }, "type": "array", "title": "Fraud Urls", "description": "URLs that are associated with the fraud report" } }, "type": "object", "required": ["addresses"], "title": "EnrichmentReportAddresses" }, "EnrichmentReportMetadata": { "properties": { "account": { "$ref": "#/components/schemas/EnrichmentReportAccount" } }, "type": "object", "required": ["account"], "title": "EnrichmentReportMetadata" }, "EnrichmentReportSource": { "type": "string", "enum": ["user_report", "internal_system_report", "manual_report"], "title": "EnrichmentReportSource", "description": "Source of an enrichment report." }, "EnrichmentRequest": { "properties": { "report": { "$ref": "#/components/schemas/EnrichmentReportAddresses" }, "metadata": { "$ref": "#/components/schemas/EnrichmentReportMetadata" } }, "type": "object", "required": ["report", "metadata"], "title": "EnrichmentRequest" }, "EventEnum": { "type": "string", "enum": ["FALSE_POSITIVE", "FALSE_NEGATIVE"], "title": "EventEnum" }, "GenericReportRequest": { "type": "object", "required": ["event", "request_id", "details", "metadata"], "title": "GenericReportRequest", "properties": { "event": { "allOf": [ { "$ref": "#/components/schemas/EventEnum" } ], "description": "The event type of the report. Could be `FALSE_POSITIVE` or `FALSE_NEGATIVE`." }, "request_id": { "type": "string", "title": "Request Id", "description": "The request ID of a previous scan. This can be found in the value of the `x-request-id` field in the headers of the response of the previous request. For instance: `6c3cf6c1-a80d-4927-91b9-03d841ea61fe`." }, "details": { "type": "string", "title": "Details", "description": "Details about the report." }, "metadata": { "allOf": [ { "$ref": "#/components/schemas/ScanRequestMetadata" } ], "title": "Metadata", "description": "Client-side context: the originating dApp domain, end-user account info, and connection details." } } }, "Exposure": { "properties": { "raw_value": { "type": "string", "title": "Raw Value" }, "usd_price": { "type": "string", "title": "Usd Price" }, "value": { "type": "string", "title": "Value" } }, "type": "object", "required": ["raw_value", "value"], "title": "Exposure" }, "Feature": { "properties": { "feature_id": { "$ref": "#/components/schemas/FeatureID", "description": "Feature identifier" }, "type": { "$ref": "#/components/schemas/FeatureType", "description": "Type of the feature" }, "description": { "type": "string", "title": "Description", "description": "Description of the feature" } }, "type": "object", "required": ["feature_id", "type", "description"], "title": "Feature" }, "JsonRPCRequest": { "properties": { "chain": { "allOf": [ { "$ref": "#/components/schemas/ChainParam" } ], "title": "Chain", "description": "The chain name or chain ID" }, "options": { "items": { "$ref": "#/components/schemas/routers__evm__models__ValidationOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "description": "List of one or more of options for the desired output. \"simulation\" - include simulation output in your response. \"validation\" - include security validation of the transaction in your response. \"gas_estimation\" - include gas estimation result in your response. Default is [\"validation\"]", "default": ["validation"] }, "metadata": { "allOf": [ { "$ref": "#/components/schemas/ScanRequestMetadata" } ], "title": "Metadata", "description": "Additional context for the scan (e.g., dapp URL/domain, integration source). Used to enrich results and reduce false positives/negatives." }, "block": { "anyOf": [ { "type": "integer" }, { "type": "string", "pattern": "^(0[Xx][0-9A-Fa-f]+|-?[1-9][0-9]*|latest)$" } ], "title": "Block", "description": "The relative block for the block validation. Can be \"latest\" or a block number.", "default": "latest" }, "state_override": { "additionalProperties": { "$ref": "#/components/schemas/routers__evm__models__AddressStateOverride" }, "type": "object", "title": "State Override", "description": "Override the state of the chain. This is useful for testing purposes." }, "simulate_with_estimated_gas": { "type": "boolean", "title": "Simulate With Estimated Gas", "description": "Simulate transactions using gas estimation result. This requires \"gas_estimation\" option to be enabled.", "default": false }, "account_address": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]{40}|)$", "title": "Account Address", "description": "The address of the account (wallet) that received the request, in hex string format", "default": "" }, "data": { "allOf": [ { "$ref": "#/components/schemas/JsonRpc" } ], "title": "Data", "description": "JSON-RPC request that was received by the wallet." }, "transaction_hints": { "$ref": "#/components/schemas/TransactionHints", "title": "Transaction Hints", "description": "Optional customer-supplied hints about transaction intent that cannot be inferred from on-chain simulation." } }, "type": "object", "required": ["chain", "metadata", "data"], "title": "JsonRPCRequest" }, "JsonRpc": { "properties": { "method": { "allOf": [ { "$ref": "#/components/schemas/JsonRpcSupportedMethod" } ], "description": "The method of the JSON-RPC request" }, "params": { "items": { "anyOf": [ { "type": "object" }, { "type": "string" } ] }, "type": "array", "title": "Params", "description": "The parameters of the JSON-RPC request in JSON format" } }, "type": "object", "required": ["method", "params"], "title": "JsonRpc" }, "JsonRpcSupportedMethod": { "type": "string", "enum": [ "eth_sendTransaction", "eth_sendRawTransaction", "eth_signTransaction", "eth_signTypedData", "eth_signTypedData_v1", "eth_signTypedData_v2", "eth_signTypedData_v3", "eth_signTypedData_v4", "eth_sendUserOperation", "personal_sign", "eth_sign", "wallet_sendCalls" ], "title": "JsonRpcSupportedMethod", "description": "Supported JSON-RPC methods that can be scanned." }, "LogAccountLoginRequest": { "properties": { "account": { "$ref": "#/components/schemas/routers__exchange_protection__account__models__Account" }, "event_time": { "type": "string", "format": "date-time", "title": "Event Time" }, "connection": { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Connection" } }, "type": "object", "required": ["account", "event_time"], "title": "LogAccountLoginRequest" }, "Metadata": { "properties": { "account": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Account" } ], "title": "Account", "description": "Account information associated with the request" }, "connection": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Connection" } ], "title": "Connection", "description": "Connection metadata including user agent and IP information" } }, "type": "object", "title": "Metadata" }, "ModifyPaymentMethodRequest": { "properties": { "access_request_type": { "type": "string", "enum": ["ADD_PAYMENT_METHOD"], "title": "Access Request Type" }, "account": { "$ref": "#/components/schemas/routers__exchange_protection__account__models__Account" }, "payment_method": { "$ref": "#/components/schemas/Payment" }, "event_time": { "type": "string", "format": "date-time", "title": "Event Time" }, "connection": { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Connection" } }, "type": "object", "required": [ "access_request_type", "account", "payment_method", "event_time" ], "title": "ModifyPaymentMethodRequest" }, "ModifyWithdrawalAddressRequest": { "properties": { "access_request_type": { "type": "string", "enum": ["ADD_WITHDRAWAL_ADDRESS"], "title": "Access Request Type" }, "account": { "$ref": "#/components/schemas/routers__exchange_protection__account__models__Account" }, "address_details": { "$ref": "#/components/schemas/routers__exchange_protection__account__models__AddressDetails" }, "event_time": { "type": "string", "format": "date-time", "title": "Event Time" }, "connection": { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Connection" } }, "type": "object", "required": [ "access_request_type", "account", "address_details", "event_time" ], "title": "ModifyWithdrawalAddressRequest" }, "MonitoringSupportedChains": { "type": "string", "enum": [ "abstract", "apechain", "arbitrum", "avalanche", "avalanche-fuji", "base", "berachain", "bitcoin", "blast", "bsc", "degen", "ethereum", "ethereum-sepolia", "gnosis", "hedera", "hyperevm", "hyperliquid", "aster", "lighter", "ink", "kaia", "katana", "kite-ai", "linea", "monad", "optimism", "plume", "polymarket", "polygon", "ronin", "scroll", "sei", "solana", "soneium", "soneium-minato", "stellar", "sui", "unichain", "worldchain", "zksync", "mainnet", "kaia", "tron", "robinhood", "arc", "xlayer" ], "title": "MonitoringSupportedChains", "description": "The chain name" }, "MonitoringSupportedRuntimes": { "type": "string", "enum": ["evm", "sui", "solana", "stellar", "hedera", "bitcoin", "hyperliquid", "polymarket", "aster", "lighter", "tron"], "title": "MonitoringSupportedRuntimes", "description": "The runtime name" }, "NewMetadata": { "properties": { "account": { "$ref": "#/components/schemas/routers__evm__models__Account" }, "connection": { "$ref": "#/components/schemas/routers__evm__models__Connection" } }, "type": "object", "required": ["account", "connection"], "title": "NewMetadata" }, "Options": { "type": "string", "enum": ["validation"], "title": "Options", "description": "Requested output section to include in the response." }, "ParamReport_AddressReportParams_": { "properties": { "type": { "type": "string", "enum": ["params"], "title": "Type" }, "params": { "$ref": "#/components/schemas/AddressReportParams" } }, "type": "object", "required": ["type", "params"], "title": "ParamReport[AddressReportParams]" }, "ParamReport_ChainTransactionHashParams_": { "properties": { "type": { "type": "string", "enum": ["params"], "title": "Type" }, "params": { "$ref": "#/components/schemas/ChainTransactionHashParams" } }, "type": "object", "required": ["type", "params"], "title": "ParamReport[ChainTransactionHashParams]" }, "ParamReport_EVMAddressReportParams_": { "properties": { "type": { "type": "string", "enum": ["params"], "title": "Type" }, "params": { "$ref": "#/components/schemas/EVMAddressReportParams" } }, "type": "object", "required": ["type", "params"], "title": "ParamReport[EVMAddressReportParams]" }, "ParamReport_SiteReportParams_": { "properties": { "type": { "type": "string", "enum": ["params"], "title": "Type" }, "params": { "$ref": "#/components/schemas/SiteReportParams" } }, "type": "object", "required": ["type", "params"], "title": "ParamReport[SiteReportParams]" }, "ParamReport_TransactionReportParams_": { "properties": { "type": { "type": "string", "enum": ["params"], "title": "Type" }, "params": { "$ref": "#/components/schemas/TransactionReportParams" } }, "type": "object", "required": ["type", "params"], "title": "ParamReport[TransactionReportParams]" }, "Payment": { "properties": { "payment_method": { "$ref": "#/components/schemas/PaymentMethod" }, "currency": { "type": "string", "title": "Currency" } }, "type": "object", "required": ["payment_method", "currency"], "title": "Payment" }, "PaymentMethod": { "type": "string", "enum": ["credit_card", "wire", "swift", "iban"], "title": "PaymentMethod", "description": "Payment method used for billing." }, "PostTransactionBulkRequest": { "properties": { "chain": { "allOf": [ { "$ref": "#/components/schemas/ChainParam" } ], "title": "Chain", "description": "The chain name or chain ID" }, "options": { "items": { "$ref": "#/components/schemas/routers__evm__models__ValidationOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "description": "List of one or both of options for the desired output. \"simulation\" - include simulation output in your response. \"validation\" - include security validation of the transaction in your response. Default is [\"validation\"]", "default": ["validation"] }, "metadata": { "allOf": [ { "$ref": "#/components/schemas/ScanRequestMetadata" } ], "title": "Metadata", "description": "Additional context for the scan (e.g., dapp URL/domain, integration source). Used to enrich results and reduce false positives/negatives." }, "block": { "anyOf": [ { "type": "integer" }, { "type": "string", "pattern": "^(0[Xx][0-9A-Fa-f]+|-?[1-9][0-9]*|latest)$" } ], "title": "Block", "description": "The relative block for the block validation. Can be \"latest\" or a block number.", "default": "latest" }, "state_override": { "additionalProperties": { "$ref": "#/components/schemas/routers__evm__models__AddressStateOverride" }, "type": "object", "title": "State Override", "description": "Override the state of the chain. This is useful for testing purposes." }, "simulate_with_estimated_gas": { "type": "boolean", "title": "Simulate With Estimated Gas", "description": "Simulate transactions using gas estimation result. This requires \"gas_estimation\" option to be enabled.", "default": false }, "data": { "items": { "type": "string" }, "type": "array", "title": "Data", "description": "Transaction hashes to scan" } }, "type": "object", "required": ["chain", "metadata", "data"], "title": "PostTransactionBulkRequest" }, "PostTransactionData": { "properties": { "tx_hash": { "type": "string", "title": "Tx Hash", "description": "The transaction hash to scan" } }, "type": "object", "required": ["tx_hash"], "title": "PostTransactionData" }, "PostTransactionRequest": { "properties": { "chain": { "allOf": [ { "$ref": "#/components/schemas/ChainParam" } ], "title": "Chain", "description": "The chain name or chain ID" }, "options": { "items": { "$ref": "#/components/schemas/routers__evm__models__ValidationOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "description": "List of one or more of options for the desired output. \"simulation\" - include simulation output in your response. \"validation\" - include security validation of the transaction in your response. \"gas_estimation\" - include gas estimation result in your response. Default is [\"validation\"]", "default": ["validation"] }, "metadata": { "allOf": [ { "$ref": "#/components/schemas/ScanRequestMetadata" } ], "title": "Metadata", "description": "Additional context for the scan (e.g., dapp URL/domain, integration source). Used to enrich results and reduce false positives/negatives." }, "block": { "anyOf": [ { "type": "integer" }, { "type": "string", "pattern": "^(0[Xx][0-9A-Fa-f]+|-?[1-9][0-9]*|latest)$" } ], "title": "Block", "description": "The relative block for the block validation. Can be \"latest\" or a block number.", "default": "latest" }, "state_override": { "additionalProperties": { "$ref": "#/components/schemas/routers__evm__models__AddressStateOverride" }, "type": "object", "title": "State Override", "description": "Override the state of the chain. This is useful for testing purposes." }, "simulate_with_estimated_gas": { "type": "boolean", "title": "Simulate With Estimated Gas", "description": "Simulate transactions using gas estimation result. This requires \"gas_estimation\" option to be enabled.", "default": false }, "data": { "$ref": "#/components/schemas/PostTransactionData" }, "transaction_hints": { "$ref": "#/components/schemas/TransactionHints", "title": "Transaction Hints", "description": "Optional customer-supplied hints about transaction intent that cannot be inferred from on-chain simulation." } }, "type": "object", "required": ["chain", "metadata", "data"], "title": "PostTransactionRequest" }, "RawTransactionRequest": { "properties": { "chain": { "allOf": [ { "$ref": "#/components/schemas/ChainParam" } ], "title": "Chain", "description": "The chain name or chain ID" }, "options": { "items": { "$ref": "#/components/schemas/routers__evm__models__ValidationOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "description": "List of one or more of options for the desired output. \"simulation\" - include simulation output in your response. \"validation\" - include security validation of the transaction in your response. \"gas_estimation\" - include gas estimation result in your response. Default is [\"validation\"]", "default": ["validation"] }, "metadata": { "allOf": [ { "$ref": "#/components/schemas/ScanRequestMetadata" } ], "title": "Metadata", "description": "Additional context for the scan (e.g., dapp URL/domain, integration source). Used to enrich results and reduce false positives/negatives." }, "block": { "anyOf": [ { "type": "integer" }, { "type": "string", "pattern": "^(0[Xx][0-9A-Fa-f]+|-?[1-9][0-9]*|latest)$" } ], "title": "Block", "description": "The relative block for the block validation. Can be \"latest\" or a block number.", "default": "latest" }, "state_override": { "additionalProperties": { "$ref": "#/components/schemas/routers__evm__models__AddressStateOverride" }, "type": "object", "title": "State Override", "description": "Override the state of the chain. This is useful for testing purposes." }, "simulate_with_estimated_gas": { "type": "boolean", "title": "Simulate With Estimated Gas", "description": "Simulate transactions using gas estimation result. This requires \"gas_estimation\" option to be enabled.", "default": false }, "account_address": { "type": "string", "title": "Account Address", "description": "The address to relate the transaction to. Account address determines in which perspective the transaction is simulated and validated." }, "data": { "type": "string", "pattern": "^0[Xx][0-9A-Fa-f]+$", "title": "Data", "description": "Hex string of the raw transaction data" }, "transaction_hints": { "$ref": "#/components/schemas/TransactionHints", "title": "Transaction Hints", "description": "Optional customer-supplied hints about transaction intent that cannot be inferred from on-chain simulation." } }, "type": "object", "required": ["chain", "metadata", "account_address", "data"], "title": "RawTransactionRequest" }, "ReportRequest_AddressReportParams_": { "properties": { "event": { "allOf": [ { "$ref": "#/components/schemas/EventEnum" } ], "description": "The event type of the report. Could be `FALSE_POSITIVE` or `FALSE_NEGATIVE`." }, "report": { "anyOf": [ { "$ref": "#/components/schemas/ParamReport_AddressReportParams_" }, { "$ref": "#/components/schemas/RequestIDReport" } ], "title": "Report", "description": "Parameters identifying the address to report, provided either as address details (address, domain, and chain) or as a request ID from a previous scan." }, "details": { "type": "string", "title": "Details", "description": "Details about the report." } }, "type": "object", "required": ["event", "report", "details"], "title": "ReportRequest[AddressReportParams]" }, "ReportRequest_ChainTransactionHashParams_": { "properties": { "event": { "allOf": [ { "$ref": "#/components/schemas/EventEnum" } ], "description": "The event type of the report. Could be `FALSE_POSITIVE` or `FALSE_NEGATIVE`." }, "report": { "anyOf": [ { "$ref": "#/components/schemas/ParamReport_ChainTransactionHashParams_" }, { "$ref": "#/components/schemas/RequestIDReport" } ], "title": "Report", "description": "Parameters identifying the transaction to report, provided either as transaction details (chain and transaction hash) or as a request ID from a previous scan." }, "details": { "type": "string", "title": "Details", "description": "Details about the report." } }, "type": "object", "required": ["event", "report", "details"], "title": "ReportRequest[ChainTransactionHashParams]" }, "ReportRequest_EVMAddressReportParams_": { "properties": { "event": { "allOf": [ { "$ref": "#/components/schemas/EventEnum" } ], "description": "The event type of the report. Could be `FALSE_POSITIVE` or `FALSE_NEGATIVE`." }, "report": { "anyOf": [ { "$ref": "#/components/schemas/ParamReport_EVMAddressReportParams_" }, { "$ref": "#/components/schemas/RequestIDReport" } ], "title": "Report", "description": "Parameters identifying the address to report, provided either as address details (address, domain, and chain) or as a request ID from a previous scan." }, "details": { "type": "string", "title": "Details", "description": "Details about the report." } }, "type": "object", "required": ["event", "report", "details"], "title": "ReportRequest[EVMAddressReportParams]" }, "ReportRequest_SiteReportParams_": { "properties": { "event": { "allOf": [ { "$ref": "#/components/schemas/EventEnum" } ], "description": "The event type of the report. Could be `FALSE_POSITIVE` or `FALSE_NEGATIVE`." }, "report": { "anyOf": [ { "$ref": "#/components/schemas/ParamReport_SiteReportParams_" }, { "$ref": "#/components/schemas/RequestIDReport" } ], "title": "Report", "description": "Parameters identifying the site to report, provided either as site details (url) or as a request ID from a previous scan." }, "details": { "type": "string", "title": "Details", "description": "Details about the report." } }, "type": "object", "required": ["event", "report", "details"], "title": "ReportRequest[SiteReportParams]" }, "ReportRequest_TransactionReportParams_": { "properties": { "event": { "allOf": [ { "$ref": "#/components/schemas/EventEnum" } ], "description": "The event type of the report. Could be `FALSE_POSITIVE` or `FALSE_NEGATIVE`." }, "report": { "anyOf": [ { "$ref": "#/components/schemas/ParamReport_TransactionReportParams_" }, { "$ref": "#/components/schemas/RequestIDReport" } ], "title": "Report", "description": "Parameters identifying the transaction to report, provided either as transaction details (chain, account address, and transaction data) or as a request ID from a previous scan." }, "details": { "type": "string", "title": "Details", "description": "Details about the report." } }, "type": "object", "required": ["event", "report", "details"], "title": "ReportRequest[TransactionReportParams]" }, "ReportSiteRequest": { "properties": { "url": { "type": "string", "title": "Url" }, "classification": { "$ref": "#/components/schemas/SiteClassification" } }, "type": "object", "required": ["url", "classification"], "title": "ReportSiteRequest" }, "ReportTxRequest": { "properties": { "domain": { "type": "string", "title": "Domain" }, "jsonRpcMethod": { "type": "string", "title": "Jsonrpcmethod" }, "jsonRpcParams": { "type": "string", "title": "Jsonrpcparams" }, "chain": { "$ref": "#/components/schemas/TransactionScanSupportedChains" }, "blockNumber": { "type": "string", "title": "Blocknumber" }, "classification": { "type": "string", "title": "Classification" }, "resultType": { "type": "string", "title": "Resulttype" }, "features": { "type": "string", "title": "Features" }, "details": { "type": "string", "title": "Details" }, "reporter": { "type": "string", "title": "Reporter" } }, "type": "object", "required": ["jsonRpcMethod", "jsonRpcParams"], "title": "ReportTxRequest" }, "RequestIDReport": { "properties": { "type": { "type": "string", "const": "request_id", "title": "Type", "description": "The type identifier indicating that a request ID from a previous scan is being used." }, "request_id": { "type": "string", "title": "Request Id", "description": "The request ID of a previous request. This can be found in the value of the `x-request-id` field in the headers of the response of the previous request. For instance: `6c3cf6c1-a80d-4927-91b9-03d841ea61fe`." } }, "type": "object", "required": ["type", "request_id"], "title": "RequestIDReport" }, "RiskExposure": { "description": "An exposure category contributing to the address's compliance risk profile.", "properties": { "category": { "type": "string", "title": "Category", "description": "Exposure category name (e.g., sanctioned_entity, scam_investment_fraud, stolen_funds)." }, "amount_usd": { "type": "number", "title": "Amount Usd", "description": "Estimated exposure amount in USD for this category." }, "percentage": { "type": "number", "title": "Percentage", "description": "Percentage of total exposure attributed to this category." }, "risk_level": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__response__ValidationResultType" } ], "description": "Compliance risk level associated with this exposure category." } }, "type": "object", "required": ["category", "amount_usd", "percentage", "risk_level"], "title": "RiskExposure" }, "RiskProfilingResponse": { "description": "Compliance risk exposure for an address, including an overall risk summary and exposure breakdown.", "properties": { "address": { "type": "string", "title": "Address", "description": "The address being profiled." }, "blocklist": { "type": "boolean", "title": "Blocklist", "description": "Whether the address is explicitly blocklisted.", "default": false }, "name": { "type": "string", "title": "Name", "description": "Resolved entity name associated with the address, if known." }, "risk_summary": { "$ref": "#/components/schemas/RiskSummary" }, "exposures": { "items": { "$ref": "#/components/schemas/RiskExposure" }, "type": "array", "title": "Exposures", "description": "Exposure breakdown by category." } }, "type": "object", "required": ["address", "risk_summary"], "title": "RiskProfilingResponse" }, "RiskSummary": { "description": "Aggregated compliance risk summary for the profiled address.", "properties": { "risk_level": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__response__ValidationResultType" } ], "description": "Overall compliance risk level for the address." }, "total_usd": { "type": "number", "title": "Total Usd", "description": "Total estimated USD exposure considered in the profile." }, "total_malicious_exposure": { "type": "number", "title": "Total Malicious Exposure", "description": "Total estimated USD exposure associated with malicious risk." } }, "type": "object", "required": ["risk_level", "total_usd", "total_malicious_exposure"], "title": "RiskSummary" }, "ScanResult": { "properties": { "validation": { "allOf": [ { "$ref": "#/components/schemas/ValidationResult" } ], "title": "Validation", "description": "Complete validation result containing all scan details and findings" }, "platform_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Platform Url", "description": "Deep-link URL to the Blockaid platform address overview page for the scanned `to` address. Null if no URL is available for the given chain." } }, "type": "object", "required": ["validation"], "title": "ScanResult" }, "ScanStatus": { "type": "string", "enum": ["accepted", "rejected"], "title": "ScanStatus", "description": "Status of a scan-status lookup request." }, "ScanStatusRequest": { "properties": { "request_id": { "type": "string", "title": "Request Id", "description": "The x-request-id header returned from the previous Blockaid api request" }, "status": { "$ref": "#/components/schemas/ScanStatus" } }, "type": "object", "required": ["request_id", "status"], "title": "ScanStatusRequest" }, "SiteClassification": { "type": "string", "enum": ["Malicious", "Benign"], "title": "SiteClassification", "description": "Classification result for a scanned URL." }, "SiteReportParams": { "properties": { "url": { "type": "string", "title": "Url", "description": "The url of the site to report on." } }, "type": "object", "required": ["url"], "title": "SiteReportParams" }, "SiteScanHitResponse": { "properties": { "status": { "type": "string", "enum": ["hit"], "title": "Status" }, "url": { "type": "string", "title": "Url" }, "scan_start_time": { "type": "string", "format": "date-time", "title": "Scan Start Time" }, "scan_end_time": { "type": "string", "format": "date-time", "title": "Scan End Time" }, "malicious_score": { "type": "number", "title": "Malicious Score" }, "is_reachable": { "type": "boolean", "title": "Is Reachable" }, "is_web3_site": { "type": "boolean", "title": "Is Web3 Site" }, "is_malicious": { "type": "boolean", "title": "Is Malicious" }, "attack_types": { "additionalProperties": { "$ref": "#/components/schemas/AttackEntry" }, "type": "object", "title": "Attack Types" }, "network_operations": { "items": { "type": "string" }, "type": "array", "title": "Network Operations" }, "json_rpc_operations": { "items": { "type": "string" }, "type": "array", "title": "Json Rpc Operations" }, "contract_write": { "$ref": "#/components/schemas/ContractOperations" }, "contract_read": { "$ref": "#/components/schemas/ContractOperations" } }, "type": "object", "required": [ "status", "url", "scan_start_time", "scan_end_time", "malicious_score", "is_reachable", "is_web3_site", "is_malicious", "attack_types", "network_operations", "json_rpc_operations", "contract_write", "contract_read" ], "title": "SiteScanHitResponse" }, "SiteScanMissResponse": { "properties": { "status": { "type": "string", "enum": ["miss"], "title": "Status" } }, "type": "object", "required": ["status"], "title": "SiteScanMissResponse" }, "ScanRequestMetadata": { "properties": { "domain": { "type": "string", "title": "Domain", "description": "The full URL of the DApp or website that initiated the request, for cross-reference. Must use the https or http scheme and contain a valid hostname. Cannot contain JSON, braces, or other embedded data structures." }, "non_dapp": { "type": "boolean", "title": "Non Dapp", "description": "Set to true when the request was not initiated by a dapp. Dapp requests should provide the `domain` field." }, "account": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Account" } ], "title": "Account", "description": "End-user account context (id, age, country, creation time, and account_addresses)." }, "connection": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Connection" } ], "title": "Connection", "description": "Connection metadata including user agent, IP information, and origin." } }, "type": "object", "title": "ScanRequestMetadata" }, "SiteScanRequest": { "properties": { "url": { "type": "string", "title": "Url" }, "metadata": { "allOf": [ { "$ref": "#/components/schemas/ScanRequestMetadata" } ], "title": "Metadata", "description": "Request metadata: site catalog/wallet context, end-user account, and connection details." } }, "type": "object", "required": ["url"], "title": "SiteScanRequest" }, "Spender": { "properties": { "address": { "type": "string", "title": "Address" }, "features": { "items": { "$ref": "#/components/schemas/Feature" }, "type": "array", "title": "Features" }, "label": { "type": "string", "title": "Label", "description": "Alias name of the spender, if known" } }, "type": "object", "required": ["address", "label"], "title": "Spender" }, "SupportedChains": { "type": "string", "enum": [ "arbitrum", "avalanche", "base", "base-sepolia", "bsc", "ethereum", "ethereum-sepolia", "optimism", "polygon", "zksync", "zksync-sepolia", "zora", "linea", "blast", "scroll", "avalanche-fuji", "degen", "gnosis", "worldchain", "soneium-minato", "ronin", "apechain", "berachain", "unknown", "ink-sepolia", "ink", "abstract", "abstract-testnet", "metacade", "metacade-testnet", "soneium", "unichain", "lordchain-testnet", "lordchain", "sei", "flow-evm", "hyperevm", "katana", "plume", "solana", "stellar", "bitcoin", "xlayer", "monad", "monad-testnet", "tempo", "tempo-testnet", "kite-ai", "kaia", "plasma", "mantle", "robinhood", "arc" ], "title": "SupportedChains", "description": "Supported chain identifiers." }, "TransactionBulkRequest": { "properties": { "chain": { "allOf": [ { "$ref": "#/components/schemas/ChainParam" } ], "title": "Chain", "description": "The chain name or chain ID" }, "options": { "items": { "$ref": "#/components/schemas/routers__evm__models__ValidationOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "description": "List of one or both of options for the desired output. \"simulation\" - include simulation output in your response. \"validation\" - include security validation of the transaction in your response. Default is [\"validation\"]", "default": ["validation"] }, "metadata": { "allOf": [ { "$ref": "#/components/schemas/ScanRequestMetadata" } ], "title": "Metadata", "description": "Additional context for the scan (e.g., dapp URL/domain, integration source). Used to enrich results and reduce false positives/negatives." }, "block": { "anyOf": [ { "type": "integer" }, { "type": "string", "pattern": "^(0[Xx][0-9A-Fa-f]+|-?[1-9][0-9]*|latest)$" } ], "title": "Block", "description": "The relative block for the block validation. Can be \"latest\" or a block number.", "default": "latest" }, "state_override": { "additionalProperties": { "$ref": "#/components/schemas/routers__evm__models__AddressStateOverride" }, "type": "object", "title": "State Override", "description": "Override the state of the chain. This is useful for testing purposes." }, "simulate_with_estimated_gas": { "type": "boolean", "title": "Simulate With Estimated Gas", "description": "Simulate transactions using gas estimation result. This requires \"gas_estimation\" option to be enabled.", "default": false }, "data": { "items": { "$ref": "#/components/schemas/routers__evm__transaction__models__Transaction" }, "type": "array", "title": "Data", "description": "Transaction bulk parameters" }, "aggregated": { "type": "boolean", "title": "Aggregated", "description": "Should aggregate the results to one result", "default": false } }, "type": "object", "required": ["chain", "metadata", "data"], "title": "TransactionBulkRequest" }, "TransactionFeature": { "properties": { "entity": { "type": "string", "enum": ["transaction"], "title": "Entity", "description": "Type of entity associated with the feature", "default": "transaction" }, "type": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__response__FeatureType" } ], "description": "Type of feature detected in the transaction scan" }, "feature_id": { "type": "string", "title": "Feature Id", "description": "Unique identifier for the detected feature" }, "description": { "type": "string", "title": "Description", "description": "Detailed description of the detected feature" } }, "type": "object", "required": ["type", "feature_id", "description"], "title": "TransactionFeature" }, "TransactionReportParams": { "properties": { "chain": { "allOf": [ { "$ref": "#/components/schemas/TransactionScanSupportedChains" } ], "description": "The chain name" }, "account_address": { "type": "string", "title": "Account Address", "description": "The address to relate the transaction to. Account address determines in which perspective the transaction is simulated and validated." }, "data": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__transaction__models__Transaction" }, { "$ref": "#/components/schemas/JsonRpc" } ], "format": "json", "title": "Data", "description": "Transaction parameters" }, "metadata": { "allOf": [ { "$ref": "#/components/schemas/ScanRequestMetadata" } ], "title": "Metadata", "description": "Additional context for the scan (e.g., dapp URL/domain, integration source). Used to enrich results and reduce false positives/negatives." } }, "type": "object", "required": ["chain", "account_address", "data", "metadata"], "title": "TransactionReportParams" }, "TransactionScanChainID": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]+|\\d+)$", "title": "TransactionScanChainID", "description": "The chain ID as hex or decimal string", "default": "0x1" }, "TransactionScanRequest": { "properties": { "options": { "items": { "$ref": "#/components/schemas/Options" }, "type": "array", "description": "List of options to apply during the transaction scan" }, "data": { "allOf": [ { "$ref": "#/components/schemas/Data" } ], "title": "Data", "description": "Transaction data" }, "metadata": { "allOf": [ { "$ref": "#/components/schemas/ScanRequestMetadata" } ], "title": "Metadata", "description": "Additional metadata about the request including account and connection information" } }, "type": "object", "required": ["options", "data", "metadata"], "title": "TransactionScanRequest" }, "TransactionScanStatus": { "type": "string", "enum": ["Success", "Error"], "title": "TransactionScanStatus", "description": "The status of the transaction scan" }, "TransactionScanSupportedChains": { "type": "string", "enum": [ "arbitrum", "avalanche", "base", "base-sepolia", "lordchain", "lordchain-testnet", "metacade", "metacade-testnet", "bsc", "ethereum", "optimism", "polygon", "zksync", "zksync-sepolia", "zora", "linea", "blast", "scroll", "ethereum-sepolia", "degen", "avalanche-fuji", "gnosis", "worldchain", "soneium-minato", "ronin", "apechain", "berachain", "berachain-bartio", "ink", "ink-sepolia", "abstract", "abstract-testnet", "soneium", "unichain", "sei", "flow-evm", "hyperevm", "megaeth", "katana", "plume", "xlayer", "monad", "monad-testnet", "tempo", "tempo-testnet", "kite-ai", "kaia", "plasma", "mantle", "robinhood", "arc" ], "title": "TransactionScanSupportedChains", "description": "The chain name" }, "UrlFeature": { "properties": { "entity": { "type": "string", "enum": ["url"], "title": "Entity", "description": "Type of entity associated with the feature", "default": "url" }, "type": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__response__FeatureType" } ], "description": "Type of feature detected in the URL scan" }, "feature_id": { "type": "string", "title": "Feature Id", "description": "Unique identifier for the detected feature" }, "description": { "type": "string", "title": "Description", "description": "Detailed description of the detected feature" }, "url": { "type": "string", "title": "Url", "description": "The URL where the feature was detected" } }, "type": "object", "required": ["type", "feature_id", "description", "url"], "title": "UrlFeature" }, "UserOperationData": { "properties": { "operation": { "anyOf": [ { "$ref": "#/components/schemas/UserOperationV6" }, { "$ref": "#/components/schemas/UserOperationV7" } ], "title": "Operation", "description": "The operation parameters of the user operation request" }, "entrypoint": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]{40})$", "title": "Entrypoint", "description": "The address of the entrypoint receiving the request in hex string format", "default": "" } }, "type": "object", "required": ["operation"], "title": "UserOperationData" }, "UserOperationRequest": { "properties": { "chain": { "allOf": [ { "$ref": "#/components/schemas/ChainParam" } ], "title": "Chain", "description": "The chain name or chain ID" }, "options": { "items": { "$ref": "#/components/schemas/routers__evm__models__ValidationOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "description": "List of one or more of options for the desired output. \"simulation\" - include simulation output in your response. \"validation\" - include security validation of the transaction in your response. \"gas_estimation\" - include gas estimation result in your response. Default is [\"validation\"]", "default": ["validation"] }, "metadata": { "allOf": [ { "$ref": "#/components/schemas/ScanRequestMetadata" } ], "title": "Metadata", "description": "Additional context for the scan (e.g., dapp URL/domain, integration source). Used to enrich results and reduce false positives/negatives." }, "block": { "anyOf": [ { "type": "integer" }, { "type": "string", "pattern": "^(0[Xx][0-9A-Fa-f]+|-?[1-9][0-9]*|latest)$" } ], "title": "Block", "description": "The relative block for the block validation. Can be \"latest\" or a block number.", "default": "latest" }, "state_override": { "additionalProperties": { "$ref": "#/components/schemas/routers__evm__models__AddressStateOverride" }, "type": "object", "title": "State Override", "description": "Override the state of the chain. This is useful for testing purposes." }, "simulate_with_estimated_gas": { "type": "boolean", "title": "Simulate With Estimated Gas", "description": "Simulate transactions using gas estimation result. This requires \"gas_estimation\" option to be enabled.", "default": false }, "account_address": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]{40}|)$", "title": "Account Address", "description": "The address of the account (wallet) sending the request in hex string format", "default": "" }, "data": { "allOf": [ { "$ref": "#/components/schemas/UserOperationData" } ], "title": "Data", "description": "The user operation request that was received by the wallet" }, "should_calculate_missing_balance": { "type": "boolean", "title": "Should Calculate Missing Balance", "description": "For simulations, determine whether to calculate missing balances in user operations.", "default": false } }, "type": "object", "required": ["chain", "metadata", "data"], "title": "UserOperationRequest" }, "UserOperationV6": { "properties": { "sender": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]{40})$", "title": "Sender", "description": "The sender address of the operation in hex string format", "default": "0x" }, "nonce": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Nonce", "description": "The nonce value in hex string format.", "default": "0x0" }, "init_code": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Init Code", "description": "The init code value in hex string format.", "default": "0x" }, "call_data": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Call Data", "description": "The call data value in hex string format.", "default": "0x" }, "call_gas_limit": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Call Gas Limit", "description": "The call gas limit value in hex string format.", "default": "0x0" }, "verification_gas_limit": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Verification Gas Limit", "description": "The verification gas limit value in hex string format.", "default": "0x0" }, "pre_verification_gas": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Pre Verification Gas", "description": "The pre verification gas value in hex string format.", "default": "0x0" }, "max_fee_per_gas": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Max Fee Per Gas", "description": "The max fee per gas value in hex string format.", "default": "0x0" }, "max_priority_fee_per_gas": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Max Priority Fee Per Gas", "description": "The max priority fee per gas value in hex string format.", "default": "0x0" }, "paymaster_and_data": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Paymaster And Data", "description": "The paymaster and data value in hex string format.", "default": "0x" }, "signature": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*|)$", "title": "Signature", "description": "The signature value in hex string format." }, "eip7702_auth": { "allOf": [ { "$ref": "#/components/schemas/Authorization" } ], "title": "Eip7702 Auth", "description": "The EIP-7702 authorization tuple for the user operation (optional)" } }, "type": "object", "title": "UserOperationV6" }, "UserOperationV7": { "properties": { "sender": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]{40})$", "title": "Sender", "description": "The sender address of the operation in hex string format", "default": "0x" }, "nonce": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Nonce", "description": "The nonce value in hex string format.", "default": "0x0" }, "init_code": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Init Code", "description": "The init code value in hex string format.", "default": "0x" }, "call_data": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Call Data", "description": "The call data value in hex string format.", "default": "0x" }, "pre_verification_gas": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Pre Verification Gas", "description": "The pre verification gas value in hex string format.", "default": "0x0" }, "paymaster_and_data": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Paymaster And Data", "description": "The paymaster and data value in hex string format.", "default": "0x" }, "signature": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*|)$", "title": "Signature", "description": "The signature value in hex string format." }, "account_gas_limits": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Account Gas Limits", "description": "The account gas limits value in hex string format.", "default": "0x0" }, "gas_fees": { "type": "string", "pattern": "^(0x[0-9A-Fa-f]*)$", "title": "Gas Fees", "description": "The gas fees value in hex string format.", "default": "0x0" }, "eip7702_auth": { "allOf": [ { "$ref": "#/components/schemas/Authorization" } ], "title": "Eip7702 Auth", "description": "The EIP-7702 authorization tuple for the user operation (optional)" } }, "type": "object", "title": "UserOperationV7" }, "ValidateAddress": { "properties": { "metadata": { "allOf": [ { "$ref": "#/components/schemas/ScanRequestMetadata" } ], "title": "Metadata", "description": "Additional context for the scan (e.g., dapp URL/domain, integration source). Used to enrich results and reduce false positives/negatives." }, "chain": { "$ref": "#/components/schemas/TransactionScanSupportedChains" }, "address": { "type": "string", "pattern": "^0x[0-9A-Fa-f]{40}$", "title": "Address", "description": "The address to validate." } }, "type": "object", "required": ["metadata", "chain", "address"], "title": "ValidateAddress" }, "ValidateTronAddress": { "properties": { "metadata": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__models__MetadataNonDapp" }, { "$ref": "#/components/schemas/routers__tron__models__MetadataDapp" } ], "title": "Metadata", "description": "Additional context for the scan (e.g., dapp URL/domain, integration source). Used to enrich results and reduce false positives/negatives." }, "chain": { "type": "string", "enum": ["tron"], "title": "Chain", "description": "The chain (tron)." }, "address": { "type": "string", "pattern": "^T[1-9A-HJ-NP-Za-km-z]{33}$", "title": "Address", "description": "The Tron address to validate (base58 format)." } }, "type": "object", "required": ["metadata", "chain", "address"], "title": "ValidateTronAddress" }, "ValidateBulkAddresses": { "properties": { "metadata": { "allOf": [ { "$ref": "#/components/schemas/ScanRequestMetadata" } ], "title": "Metadata", "description": "Additional context for the scan (e.g., dapp URL/domain, integration source). Used to enrich results and reduce false positives/negatives." }, "chain": { "$ref": "#/components/schemas/TransactionScanSupportedChains" }, "addresses": { "items": { "type": "string" }, "type": "array", "title": "Addresses", "description": "List of addresses to validate." } }, "type": "object", "required": ["metadata", "chain", "addresses"], "title": "ValidateBulkAddresses" }, "ValidateBulkExtendedAddress": { "properties": { "address": { "type": "string", "title": "Address", "description": "Address to validate." }, "label": { "type": "string", "title": "Label", "description": "Label of the address." }, "validation": { "allOf": [ { "$ref": "#/components/schemas/AddressValidationExtended" } ], "title": "Validation", "description": "Validation result." } }, "type": "object", "required": ["address", "label", "validation"], "title": "ValidateBulkExtendedAddress" }, "ValidateBulkExtendedAddressesRequest": { "properties": { "metadata": { "allOf": [ { "$ref": "#/components/schemas/NewMetadata" } ], "title": "Metadata", "description": "Additional context for the scan (e.g., integration source, user/account details). Used to enrich results and reduce false positives/negatives." }, "chain": { "$ref": "#/components/schemas/TransactionScanSupportedChains" }, "addresses": { "items": { "type": "string" }, "type": "array", "title": "Addresses", "description": "List of addresses to validate." } }, "type": "object", "required": ["metadata", "chain", "addresses"], "title": "ValidateBulkExtendedAddressesRequest" }, "ValidateBulkExtendedAddressesResponse": { "properties": { "results": { "items": { "$ref": "#/components/schemas/ValidateBulkExtendedAddress" }, "type": "array", "title": "Results" } }, "type": "object", "required": ["results"], "title": "ValidateBulkExtendedAddressesResponse" }, "ValidationResult": { "properties": { "status": { "allOf": [ { "$ref": "#/components/schemas/TransactionScanStatus" } ], "description": "Status indicating whether the transaction scan was successful or encountered an error" }, "result_type": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__response__ValidationResultType" } ], "description": "Type of validation result indicating the severity of findings" }, "classification": { "type": "string", "title": "Classification", "description": "Classification of the scan result based on the detected features" }, "description": { "type": "string", "title": "Description", "description": "Detailed description of the validation result" }, "features": { "items": { "anyOf": [ { "$ref": "#/components/schemas/AddressFeature" }, { "$ref": "#/components/schemas/UrlFeature" }, { "$ref": "#/components/schemas/TransactionFeature" } ] }, "type": "array", "title": "Features", "description": "List of features detected during the scan", "default": [] } }, "type": "object", "required": ["status", "result_type", "classification", "description"], "title": "ValidationResult" }, "routers__chain_agnostic__models__request__Account": { "properties": { "account_id": { "type": "string", "title": "Account Id", "description": "Unique identifier for the account." }, "account_creation_timestamp": { "type": "string", "format": "date-time", "title": "Account Creation Timestamp", "description": "Timestamp when the account was created." }, "user_age": { "type": "integer", "exclusiveMinimum": 0.0, "title": "User Age", "description": "Age of the user in years" }, "user_country_code": { "type": "string", "title": "User Country Code", "description": "ISO country code of the user's location." }, "account_addresses": { "items": { "type": "string" }, "type": "array", "title": "Account Addresses", "description": "List of all account addresses in different chains based on the CAIPs standard (https://github.com/ChainAgnostic/CAIPs). Ethereum mainnet example: eip155:1:0xab16a96d359ec26a11e2c2b3d8f8b8942d5bfcdb" } }, "type": "object", "required": ["account_id"], "title": "Account" }, "routers__chain_agnostic__models__request__Connection": { "properties": { "user_agent": { "type": "string", "title": "User Agent", "description": "User agent string from the client's browser or application." }, "ip_address": { "type": "string", "format": "ipvanyaddress", "title": "Ip Address", "description": "IP address of the customer making the request. Both IPv4 and IPv6 addresses are supported." }, "origin": { "type": "string", "minLength": 1, "format": "uri", "title": "Origin", "description": "The full URL of the website that the request was directed to." }, "walletconnect_name": { "type": "string", "title": "Walletconnect Name", "description": "WalletConnect session name, when the request originates from a WalletConnect session." }, "walletconnect_description": { "type": "string", "title": "Walletconnect Description", "description": "WalletConnect session description, when the request originates from a WalletConnect session." } }, "type": "object", "required": ["ip_address"], "title": "Connection" }, "routers__chain_agnostic__models__response__FeatureType": { "type": "string", "enum": ["Malicious", "Warning", "Benign", "High-Risk", "Info"], "title": "FeatureType", "description": "The type of feature detected in the scan." }, "routers__chain_agnostic__models__response__ValidationResultType": { "type": "string", "enum": ["Malicious", "Warning", "Benign", "High-Risk"], "title": "ValidationResultType", "description": "The type of validation result." }, "routers__evm__address__models__FeatureType": { "type": "string", "enum": ["Malicious", "Warning", "Benign", "Info"], "title": "FeatureType", "description": "Security validation outcome for the feature." }, "routers__evm__models__Account": { "properties": { "account_id": { "type": "string", "title": "Account Id" }, "created": { "type": "string", "format": "date-time", "title": "Created" }, "age_in_years": { "type": "integer", "exclusiveMinimum": 0.0, "title": "Age In Years" }, "user_country_code": { "type": "string", "title": "User Country Code" } }, "type": "object", "required": ["account_id", "user_country_code"], "title": "Account" }, "routers__evm__models__AddressStateOverride": { "properties": { "balance": { "type": "string", "title": "Balance", "description": "Fake balance to set for the account before executing the call." }, "nonce": { "type": "string", "title": "Nonce", "description": "Fake nonce to set for the account before executing the call." }, "code": { "type": "string", "title": "Code", "description": "Fake EVM bytecode to inject into the account before executing the call." }, "state": { "additionalProperties": { "type": "string" }, "type": "object", "title": "State", "description": "Fake key-value mapping to override all slots in the account storage before executing the call." }, "stateDiff": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Statediff", "description": "Fake key-value mapping to override individual slots in the account storage before executing the call." }, "movePrecompileToAddress": { "type": "string", "title": "Moveprecompiletoaddress", "description": "Moves precompile to given address" } }, "type": "object", "title": "AddressStateOverride" }, "routers__evm__models__Connection": { "properties": { "user_agent": { "type": "string", "title": "User Agent", "description": "User agent string from the client's browser or application." }, "ip_address": { "type": "string", "format": "ipvanyaddress", "title": "Ip Address", "description": "IP address of the customer making the request. Both IPv4 and IPv6 addresses are supported." } }, "type": "object", "required": ["user_agent", "ip_address"], "title": "Connection" }, "routers__evm__models__TransactionScanEvent": { "properties": { "emitter_address": { "type": "string", "title": "Emitter Address" }, "emitter_name": { "type": "string", "title": "Emitter Name" }, "name": { "type": "string", "title": "Name" }, "params": { "items": { "$ref": "#/components/schemas/routers__evm__models__TransactionScanLogParamInfo" }, "type": "array", "title": "Params" }, "topics": { "items": { "type": "string" }, "type": "array", "title": "Topics" }, "data": { "type": "string", "title": "Data" } }, "type": "object", "required": ["emitter_address", "topics", "data"], "title": "TransactionScanEvent" }, "routers__evm__models__TransactionScanGasEstimation": { "properties": { "status": { "type": "string", "enum": ["Success"], "title": "Status" }, "used": { "type": "string", "title": "Used" }, "estimate": { "type": "string", "title": "Estimate" } }, "type": "object", "required": ["status", "used", "estimate"], "title": "TransactionScanGasEstimation" }, "routers__evm__models__TransactionScanGasEstimationError": { "properties": { "status": { "type": "string", "enum": ["Error"], "title": "Status" }, "error": { "type": "string", "title": "Error" } }, "type": "object", "required": ["status", "error"], "title": "TransactionScanGasEstimationError" }, "routers__evm__models__TransactionScanLogParamInfo": { "properties": { "type": { "type": "string", "title": "Type" }, "value": { "anyOf": [ { "type": "string" }, { "type": "object" }, { "items": {}, "type": "array" } ], "title": "Value" }, "internalType": { "type": "string", "title": "Internaltype" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": ["type", "value"], "title": "TransactionScanLogParamInfo" }, "routers__evm__models__UserOperationV6GasEstimation": { "properties": { "status": { "type": "string", "enum": ["Success"], "title": "Status" }, "pre_verification_gas_estimate": { "type": "string", "title": "Pre Verification Gas Estimate" }, "verification_gas_estimate": { "type": "string", "title": "Verification Gas Estimate" }, "call_gas_estimate": { "type": "string", "title": "Call Gas Estimate" } }, "type": "object", "required": [ "status", "pre_verification_gas_estimate", "verification_gas_estimate", "call_gas_estimate" ], "title": "UserOperationV6GasEstimation" }, "routers__evm__models__UserOperationV7GasEstimation": { "properties": { "status": { "type": "string", "enum": ["Success"], "title": "Status" }, "pre_verification_gas_estimate": { "type": "string", "title": "Pre Verification Gas Estimate" }, "verification_gas_estimate": { "type": "string", "title": "Verification Gas Estimate" }, "call_gas_estimate": { "type": "string", "title": "Call Gas Estimate" }, "paymaster_verification_gas_estimate": { "type": "string", "title": "Paymaster Verification Gas Estimate" } }, "type": "object", "required": [ "status", "pre_verification_gas_estimate", "verification_gas_estimate", "call_gas_estimate", "paymaster_verification_gas_estimate" ], "title": "UserOperationV7GasEstimation" }, "routers__evm__models__ValidationOptions": { "type": "string", "enum": ["validation", "simulation", "gas_estimation", "events"], "title": "ValidationOptions", "description": "Response sections to include (e.g., validation, simulation, gas estimation, events)." }, "routers__evm__models__ValidationResultType": { "type": "string", "enum": ["Malicious", "Warning", "Benign", "Error"], "title": "ValidationResultType", "description": "Overall validation outcome for the scan." }, "routers__evm__response__AccountSummary": { "properties": { "assets_diffs": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC20AddressAssetBalanceChangeDiff" }, { "$ref": "#/components/schemas/routers__evm__response__ERC721AddressAssetBalanceChangeDiff" }, { "$ref": "#/components/schemas/routers__evm__response__ERC1155AddressAssetBalanceChangeDiff" }, { "$ref": "#/components/schemas/routers__evm__response__NativeAddressAssetBalanceChangeDiff" } ] }, "type": "array", "title": "Assets Diffs", "description": "All assets diffs related to the account address" }, "traces": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC20AssetTrace" }, { "$ref": "#/components/schemas/routers__evm__response__ERC721AssetTrace" }, { "$ref": "#/components/schemas/routers__evm__response__ERC1155AssetTrace" }, { "$ref": "#/components/schemas/routers__evm__response__NativeAssetTrace" }, { "$ref": "#/components/schemas/routers__evm__response__ERC20ExposureTrace" }, { "$ref": "#/components/schemas/routers__evm__response__ERC721ExposureTrace" }, { "$ref": "#/components/schemas/routers__evm__response__ERC1155ExposureTrace" }, { "$ref": "#/components/schemas/routers__evm__response__BridgeAssetTrace" } ] }, "type": "array", "title": "Traces", "description": "All assets traces related to the account address" }, "total_usd_diff": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__USDDiff" } ], "title": "Total Usd Diff", "description": "Total usd diff related to the account address" }, "exposures": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC20AddressExposure" }, { "$ref": "#/components/schemas/routers__evm__response__ERC721AddressExposure" }, { "$ref": "#/components/schemas/routers__evm__response__ERC1155AddressExposure" } ] }, "type": "array", "title": "Exposures", "description": "All assets exposures related to the account address" }, "total_usd_exposure": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Total Usd Exposure", "description": "Total usd exposure related to the account address" } }, "type": "object", "required": [ "assets_diffs", "traces", "total_usd_diff", "exposures", "total_usd_exposure" ], "title": "AccountSummary" }, "routers__evm__response__AddressChange": { "properties": { "address": { "type": "string", "title": "Address" } }, "type": "object", "required": ["address"], "title": "AddressChange" }, "routers__evm__response__AddressDetails": { "properties": { "name_tag": { "type": "string", "title": "Name Tag", "description": "known name tag for the address" }, "contract_name": { "type": "string", "title": "Contract Name", "description": "contains the contract's name if the address is a verified contract" }, "is_eoa": { "type": "boolean", "title": "Is Eoa", "description": "Whether the address is an eoa or a contract" } }, "type": "object", "title": "AddressDetails" }, "routers__evm__response__AssetDiffResponse": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC1155Diff" }, { "$ref": "#/components/schemas/routers__evm__response__ERC721Diff" }, { "$ref": "#/components/schemas/routers__evm__response__ERC20Diff" }, { "$ref": "#/components/schemas/routers__evm__response__NativeDiff" } ], "title": "AssetDiffResponse" }, "routers__evm__response__Balance": { "properties": { "raw_value": { "type": "string", "title": "Raw Value", "description": "The raw value of the balance in hex string format" }, "value": { "type": "string", "title": "Value", "description": "The value of the balance in decimal string format" } }, "type": "object", "required": ["raw_value"], "title": "Balance" }, "routers__evm__response__BridgeAssetTrace": { "properties": { "type": { "type": "string", "const": "BridgeAssetTrace", "title": "Type", "description": "The type of the trace" }, "bridge_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bridge Type", "description": "The type of bridge protocol (e.g. hyperliquid, hyperliquid_l1_transfer)" }, "display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Display Name", "description": "Human-readable name for the bridge (e.g. Hyperliquid Bridge)" }, "logo_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Logo Url", "description": "URL to the bridge protocol logo" }, "source": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__GeneralAssetDiff" }, { "type": "null" } ], "title": "Source", "description": "The source asset diff of the bridge transaction" }, "destinations": { "anyOf": [ { "items": { "$ref": "#/components/schemas/routers__evm__response__GeneralAssetDiff" }, "type": "array" }, { "type": "null" } ], "title": "Destinations", "description": "The destination asset diffs of the bridge transaction" } }, "type": "object", "required": ["type"], "title": "BridgeAssetTrace", "description": "Trace of a cross-chain bridge asset transfer, showing source and destination asset movements" }, "routers__evm__response__CallData": { "properties": { "function_selector": { "type": "string", "title": "Function Selector", "description": "The function selector of the function called in the transaction" }, "function_signature": { "type": "string", "title": "Function Signature", "description": "The function signature of the function called in the transaction" }, "function_declaration": { "type": "string", "title": "Function Declaration", "description": "The function declaration of the function called in the transaction" } }, "type": "object", "required": ["function_selector"], "title": "CallData" }, "routers__evm__response__ContractCreation": { "properties": { "type": { "type": "string", "enum": ["CONTRACT_CREATION"], "title": "Type", "description": "The type of the state change" }, "deployer": { "type": "string", "title": "Deployer", "description": "The direct creator address of the new contract" } }, "type": "object", "required": ["type", "deployer"], "title": "ContractCreation" }, "routers__evm__response__CrossChainAssetDiffObject": { "properties": { "chain": { "type": "string", "title": "Chain", "description": "The chain identifier where the asset exists" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the asset (e.g. ERC20, NATIVE, FUNGIBLE)" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__ERC721TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__ERC1155TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NativeAssetDetails" } ], "title": "Asset", "description": "Details of the asset involved in the diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC20Diff" }, "type": "array", "title": "In", "description": "Asset value changes received on this chain" }, "out": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC20Diff" }, "type": "array", "title": "Out", "description": "Asset value changes sent from this chain" } }, "type": "object", "required": ["chain", "asset_type", "asset", "in", "out"], "title": "CrossChainAssetDiffObject", "description": "An asset diff on a specific chain, with in/out value changes" }, "routers__evm__response__CrossChainAssetDiffs": { "properties": { "address": { "type": "string", "title": "Address", "description": "The address for which cross-chain asset diffs are reported" }, "obj": { "items": { "$ref": "#/components/schemas/routers__evm__response__CrossChainAssetDiffObject" }, "type": "array", "title": "Obj", "description": "List of cross-chain asset diffs for this address" } }, "type": "object", "required": ["address", "obj"], "title": "CrossChainAssetDiffs", "description": "Cross-chain asset diffs for a specific address" }, "routers__evm__response__ERC1155AddressAssetBalanceChangeDiff": { "properties": { "asset_type": { "type": "string", "enum": ["ERC1155"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC1155TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC1155Diff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC1155Diff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" }, "balance_changes": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC1155BalanceChanges" } ], "title": "Balance Changes", "description": "shows the balance before making the transaction and after" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "ERC1155AddressAssetBalanceChangeDiff" }, "routers__evm__response__ERC1155AddressAssetDiff": { "properties": { "asset_type": { "type": "string", "enum": ["ERC1155"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC1155TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC1155Diff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC1155Diff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "ERC1155AddressAssetDiff" }, "routers__evm__response__ERC1155AddressExposure": { "properties": { "asset_type": { "type": "string", "enum": ["ERC1155"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC1155TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "TokenDetailsResponse", "description": "description of the asset for the current diff" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/routers__evm__response__ERC1155Exposure" }, "type": "object", "title": "Spenders", "description": "dictionary of spender addresses where the exposure has changed during this transaction for the current address and asset" } }, "type": "object", "required": ["asset_type", "asset", "spenders"], "title": "ERC1155AddressExposure" }, "routers__evm__response__ERC1155Asset": { "properties": { "type": { "type": "string", "enum": ["ERC1155"], "title": "Type", "description": "The type of the model" }, "token_id": { "type": "integer", "title": "Token Id", "description": "Token Id" }, "details": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC1155TokenDetails" } ], "title": "Details", "description": "Details" } }, "type": "object", "required": ["type", "token_id", "details"], "title": "ERC1155Asset" }, "routers__evm__response__ERC1155AssetTrace": { "properties": { "trace_type": { "type": "string", "enum": ["AssetTrace"], "title": "Trace Type", "description": "type of the trace" }, "from_address": { "type": "string", "title": "From Address", "description": "The address where the assets are moved from" }, "to_address": { "type": "string", "title": "To Address", "description": "The address where the assets are moved to" }, "labels": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__TraceLabels" }, { "type": "string" } ] }, "type": "array", "title": "Labels", "description": "List of labels that describe the trace" }, "type": { "type": "string", "enum": ["ERC1155AssetTrace"], "title": "Type", "description": "The type of the model" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC1155TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" }, "diff": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC1155Diff" } ], "title": "Diff", "description": "The difference in value for the asset in the trace" } }, "type": "object", "required": [ "trace_type", "from_address", "to_address", "type", "asset", "diff" ], "title": "ERC1155AssetTrace" }, "routers__evm__response__ERC1155BalanceChanges": { "properties": { "before": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC1155Diff" } ], "title": "Before", "description": "balance of the account before making the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC1155Diff" } ], "title": "After", "description": "balance of the account after making the transaction" } }, "type": "object", "required": ["before", "after"], "title": "ERC1155BalanceChanges" }, "routers__evm__response__ERC1155Diff": { "properties": { "usd_price": { "type": "string", "title": "Usd Price", "description": "usd equal of the asset that was transferred from this address" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the asset transfer" }, "token_id": { "type": "string", "title": "Token Id", "description": "id of the token" }, "value": { "type": "string", "title": "Value", "description": "value before divided by decimal, that was transferred from this address" }, "arbitrary_collection_token": { "type": "boolean", "title": "Arbitrary Collection Token", "description": "Indicates whether the token ID represents an arbitrary token from a collection, unpredictable while running the simulation" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "url of the token logo" } }, "type": "object", "required": ["token_id", "value", "arbitrary_collection_token"], "title": "ERC1155Diff" }, "routers__evm__response__ERC1155Exposure": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/routers__evm__response__AssetDiffResponse" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the approval" }, "is_approved_for_all": { "type": "boolean", "title": "Is Approved For All", "description": "boolean indicates whether an is_approved_for_all function was used (missing in case of ERC20 / ERC1155)" } }, "type": "object", "required": ["exposure", "is_approved_for_all"], "title": "ERC1155Exposure" }, "routers__evm__response__ERC1155ExposureTrace": { "properties": { "trace_type": { "type": "string", "enum": ["ExposureTrace"], "title": "Trace Type", "description": "type of the trace" }, "owner": { "type": "string", "title": "Owner", "description": "The owner of the assets" }, "spender": { "type": "string", "title": "Spender", "description": "The spender of the assets" }, "type": { "type": "string", "enum": ["ERC1155ExposureTrace"], "title": "Type", "description": "The type of the model" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC1155TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" } }, "type": "object", "required": ["trace_type", "owner", "spender", "type", "asset"], "title": "ERC1155ExposureTrace" }, "routers__evm__response__ERC20AddressAssetBalanceChangeDiff": { "properties": { "asset_type": { "type": "string", "enum": ["ERC20"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC20Diff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC20Diff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" }, "balance_changes": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC20BalanceChanges" } ], "title": "Balance Changes", "description": "shows the balance before making the transaction and after" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "ERC20AddressAssetBalanceChangeDiff" }, "routers__evm__response__ERC20AddressAssetDiff": { "properties": { "asset_type": { "type": "string", "enum": ["ERC20"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC20Diff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC20Diff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "ERC20AddressAssetDiff" }, "routers__evm__response__ERC20AddressExposure": { "properties": { "asset_type": { "type": "string", "enum": ["ERC20"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "TokenDetailsResponse", "description": "description of the asset for the current diff" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/routers__evm__response__ERC20Exposure" }, "type": "object", "title": "Spenders", "description": "dictionary of spender addresses where the exposure has changed during this transaction for the current address and asset" } }, "type": "object", "required": ["asset_type", "asset", "spenders"], "title": "ERC20AddressExposure" }, "routers__evm__response__ERC20Asset": { "properties": { "type": { "type": "string", "enum": ["ERC20"], "title": "Type", "description": "The type of the model" }, "details": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC20TokenDetails" } ], "title": "Details", "description": "Details" } }, "type": "object", "required": ["type", "details"], "title": "ERC20Asset" }, "routers__evm__response__ERC20AssetTrace": { "properties": { "trace_type": { "type": "string", "enum": ["AssetTrace"], "title": "Trace Type", "description": "type of the trace" }, "from_address": { "type": "string", "title": "From Address", "description": "The address where the assets are moved from" }, "to_address": { "type": "string", "title": "To Address", "description": "The address where the assets are moved to" }, "labels": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__TraceLabels" }, { "type": "string" } ] }, "type": "array", "title": "Labels", "description": "List of labels that describe the trace" }, "type": { "type": "string", "enum": ["ERC20AssetTrace"], "title": "Type", "description": "The type of the model" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" }, "diff": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC20Diff" } ], "title": "Diff", "description": "The difference in value for the asset in the trace" } }, "type": "object", "required": [ "trace_type", "from_address", "to_address", "type", "asset", "diff" ], "title": "ERC20AssetTrace" }, "routers__evm__response__ERC20BalanceChanges": { "properties": { "before": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC20Diff" } ], "title": "Before", "description": "balance of the account before making the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC20Diff" } ], "title": "After", "description": "balance of the account after making the transaction" } }, "type": "object", "required": ["before", "after"], "title": "ERC20BalanceChanges" }, "routers__evm__response__ERC20Diff": { "properties": { "usd_price": { "type": "string", "title": "Usd Price", "description": "usd equal of the asset that was transferred from this address" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the asset transfer" }, "value": { "type": "string", "title": "Value", "description": "value after divided by decimals, that was transferred from this address" }, "raw_value": { "type": "string", "title": "Raw Value", "description": "value before divided by decimal, that was transferred from this address" } }, "type": "object", "required": ["raw_value"], "title": "ERC20Diff" }, "routers__evm__response__ERC20Exposure": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/routers__evm__response__AssetDiffResponse" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the approval" }, "approval": { "type": "string", "title": "Approval", "description": "the amount that was asked in the approval request for this spender from the current address and asset" }, "approval_usd_price": { "type": "string", "title": "Approval Usd Price", "description": "the usd price of the approval amount" }, "expiration": { "type": "string", "format": "date-time", "title": "Expiration", "description": "the expiration time of the permit2 protocol" } }, "type": "object", "required": ["exposure", "approval"], "title": "ERC20Exposure" }, "routers__evm__response__ERC20ExposureTrace": { "properties": { "trace_type": { "type": "string", "enum": ["ExposureTrace"], "title": "Trace Type", "description": "type of the trace" }, "owner": { "type": "string", "title": "Owner", "description": "The owner of the assets" }, "spender": { "type": "string", "title": "Spender", "description": "The spender of the assets" }, "type": { "type": "string", "enum": ["ERC20ExposureTrace"], "title": "Type", "description": "The type of the model" }, "exposed": { "$ref": "#/components/schemas/routers__evm__response__FungibleTokenBalance" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" } }, "type": "object", "required": [ "trace_type", "owner", "spender", "type", "exposed", "asset" ], "title": "ERC20ExposureTrace" }, "routers__evm__response__ERC721AddressAssetBalanceChangeDiff": { "properties": { "asset_type": { "type": "string", "enum": ["ERC721"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC721TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC721Diff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC721Diff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" }, "balance_changes": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC721BalanceChanges" } ], "title": "Balance Changes", "description": "shows the balance before making the transaction and after" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "ERC721AddressAssetBalanceChangeDiff" }, "routers__evm__response__ERC721AddressAssetDiff": { "properties": { "asset_type": { "type": "string", "enum": ["ERC721"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC721TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC721Diff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__evm__response__ERC721Diff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "ERC721AddressAssetDiff" }, "routers__evm__response__ERC721AddressExposure": { "properties": { "asset_type": { "type": "string", "enum": ["ERC721"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC721TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "TokenDetailsResponse", "description": "description of the asset for the current diff" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/routers__evm__response__ERC721Exposure" }, "type": "object", "title": "Spenders", "description": "dictionary of spender addresses where the exposure has changed during this transaction for the current address and asset" } }, "type": "object", "required": ["asset_type", "asset", "spenders"], "title": "ERC721AddressExposure" }, "routers__evm__response__ERC721Asset": { "properties": { "type": { "type": "string", "enum": ["ERC721"], "title": "Type", "description": "The type of the model" }, "token_id": { "type": "integer", "title": "Token Id", "description": "Token Id" }, "details": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC1155TokenDetails" } ], "title": "Details", "description": "Details" } }, "type": "object", "required": ["type", "token_id", "details"], "title": "ERC721Asset" }, "routers__evm__response__ERC721AssetTrace": { "properties": { "trace_type": { "type": "string", "enum": ["AssetTrace"], "title": "Trace Type", "description": "type of the trace" }, "from_address": { "type": "string", "title": "From Address", "description": "The address where the assets are moved from" }, "to_address": { "type": "string", "title": "To Address", "description": "The address where the assets are moved to" }, "labels": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__TraceLabels" }, { "type": "string" } ] }, "type": "array", "title": "Labels", "description": "List of labels that describe the trace" }, "type": { "type": "string", "enum": ["ERC721AssetTrace"], "title": "Type", "description": "The type of the model" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC721TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" }, "diff": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC721Diff" } ], "title": "Diff", "description": "The difference in value for the asset in the trace" } }, "type": "object", "required": [ "trace_type", "from_address", "to_address", "type", "asset", "diff" ], "title": "ERC721AssetTrace" }, "routers__evm__response__ERC721BalanceChanges": { "properties": { "before": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC721Diff" } ], "title": "Before", "description": "balance of the account before making the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC721Diff" } ], "title": "After", "description": "balance of the account after making the transaction" } }, "type": "object", "required": ["before", "after"], "title": "ERC721BalanceChanges" }, "routers__evm__response__ERC721Diff": { "properties": { "usd_price": { "type": "string", "title": "Usd Price", "description": "usd equal of the asset that was transferred from this address" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the asset transfer" }, "token_id": { "type": "string", "title": "Token Id", "description": "id of the token" }, "arbitrary_collection_token": { "type": "boolean", "title": "Arbitrary Collection Token", "description": "Indicates whether the token ID represents an arbitrary token from a collection, unpredictable while running the simulation" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "url of the token logo" } }, "type": "object", "required": ["token_id", "arbitrary_collection_token"], "title": "ERC721Diff" }, "routers__evm__response__ERC721Exposure": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/routers__evm__response__AssetDiffResponse" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the approval" }, "is_approved_for_all": { "type": "boolean", "title": "Is Approved For All", "description": "boolean indicates whether an is_approved_for_all function was used (missing in case of ERC20 / ERC1155)" } }, "type": "object", "required": ["exposure", "is_approved_for_all"], "title": "ERC721Exposure" }, "routers__evm__response__ERC721ExposureTrace": { "properties": { "trace_type": { "type": "string", "enum": ["ExposureTrace"], "title": "Trace Type", "description": "type of the trace" }, "owner": { "type": "string", "title": "Owner", "description": "The owner of the assets" }, "spender": { "type": "string", "title": "Spender", "description": "The spender of the assets" }, "type": { "type": "string", "enum": ["ERC721ExposureTrace"], "title": "Type", "description": "The type of the model" }, "exposed": { "$ref": "#/components/schemas/routers__evm__response__NonFungibleTokenBalance" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC721TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" } }, "type": "object", "required": ["trace_type", "owner", "spender", "type", "asset"], "title": "ERC721ExposureTrace" }, "routers__evm__response__FungibleTokenBalance": { "properties": { "raw_value": { "type": "string", "title": "Raw Value" }, "value": { "type": "number", "title": "Value" }, "usd_price": { "type": "number", "title": "Usd Price" } }, "type": "object", "required": ["raw_value"], "title": "FungibleTokenBalance" }, "routers__evm__response__GeneralAssetDiff": { "properties": { "chain": { "type": "string", "title": "Chain", "description": "The chain identifier where the asset exists" }, "address": { "type": "string", "title": "Address", "description": "The address involved in the asset diff" }, "asset_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Asset Type", "description": "The type of the asset (e.g. ERC20, NATIVE, FUNGIBLE)" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__ERC721TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__ERC1155TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NONERCTokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NativeAssetDetails" } ], "title": "Asset", "description": "Details of the asset involved in the diff" }, "diff": { "properties": { "raw_value": { "type": "string", "title": "Raw Value", "description": "The raw value of the asset transfer before dividing by decimals" }, "value": { "type": "string", "title": "Value", "description": "The value of the asset transfer after dividing by decimals" }, "usd_price": { "type": "string", "title": "Usd Price", "description": "The USD equivalent value of the asset transfer" } }, "type": "object", "required": ["raw_value"], "title": "Diff", "description": "The asset value change" } }, "type": "object", "required": ["chain", "address", "asset", "diff"], "title": "GeneralAssetDiff", "description": "An asset diff with chain context, used in cross-chain bridge traces" }, "routers__evm__response__GeneralInsufficientFundsErrorDetails": { "properties": { "code": { "type": "string", "enum": ["GENERAL_INSUFFICIENT_FUNDS"], "title": "Code", "description": "The type of the model" }, "category": { "type": "string", "const": "REVERT", "title": "Category", "default": "REVERT" }, "account_address": { "type": "string", "title": "Account Address", "description": "The address of the account" }, "current_balance": { "type": "string", "title": "Current Balance", "description": "The current balance of the account" }, "required_balance": { "type": "string", "title": "Required Balance", "description": "The required balance of the account" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__NativeAsset" }, { "$ref": "#/components/schemas/routers__evm__response__ERC20Asset" }, { "$ref": "#/components/schemas/routers__evm__response__ERC721Asset" }, { "$ref": "#/components/schemas/routers__evm__response__ERC1155Asset" } ], "title": "Asset", "description": "The asset that the account does not have enough balance for" } }, "type": "object", "required": ["code", "account_address", "asset"], "title": "GeneralInsufficientFundsErrorDetails" }, "routers__evm__response__GeneralInvalidAddressErrorDetails": { "properties": { "code": { "type": "string", "enum": ["GENERAL_INVALID_ADDRESS"], "title": "Code", "description": "The type of the model" }, "category": { "type": "string", "const": "INVALID_INPUT", "title": "Category", "default": "INVALID_INPUT" }, "address": { "type": "string", "title": "Address", "description": "The address that is invalid" } }, "type": "object", "required": ["code", "address"], "title": "GeneralInvalidAddressErrorDetails" }, "routers__evm__response__GenericErrorDetails": { "properties": { "code": { "type": "string", "title": "Code", "description": "The error code" }, "category": { "type": "string", "title": "Category" } }, "type": "object", "required": ["code", "category"], "title": "GenericErrorDetails" }, "routers__evm__response__JsonRPCParams": { "properties": { "from": { "type": "string", "title": "From", "description": "The address the transaction is sent from." }, "to": { "type": "string", "title": "To", "description": "The address the transaction is directed to." }, "value": { "type": "string", "title": "Value", "description": "The value to be sent." }, "data": { "type": "string", "title": "Data", "description": "The data to be sent." }, "gas": { "type": "string", "title": "Gas", "description": "The gas to be sent." }, "gas_price": { "type": "string", "title": "Gas Price", "description": "The gas price to be sent." }, "block_tag": { "type": "string", "title": "Block Tag", "description": "The block tag to be sent." }, "chain": { "type": "string", "title": "Chain", "description": "The chain to be sent." }, "calldata": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__CallData" } ], "title": "Calldata", "description": "The calldata to be sent." }, "user_operation_calldata": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__CallData" } ], "title": "User Operation Calldata", "description": "The user operation call data to be sent." } }, "type": "object", "title": "JsonRPCParams" }, "routers__evm__response__MissingBalance": { "properties": { "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__NativeAssetDetails" } ], "title": "Asset", "description": "The asset that is missing balance" }, "required_balance": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__Balance" } ], "title": "Required Balance", "description": "The required balance of the asset for this action" }, "current_balance": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__Balance" } ], "title": "Current Balance", "description": "The account address's current balance of the asset" }, "missing_balance": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__Balance" } ], "title": "Missing Balance", "description": "The account address's missing balance of the asset" } }, "type": "object", "required": [ "asset", "required_balance", "current_balance", "missing_balance" ], "title": "MissingBalance" }, "routers__evm__response__ModulesChange": { "properties": { "modules": { "items": { "type": "string" }, "type": "array", "title": "Modules" } }, "type": "object", "required": ["modules"], "title": "ModulesChange" }, "routers__evm__response__ModulesChangeManagement": { "properties": { "type": { "type": "string", "enum": ["MODULE_CHANGE"], "title": "Type", "description": "The type of the state change" }, "before": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ModulesChange" } ], "title": "Before", "description": "The state before the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__ModulesChange" } ], "title": "After", "description": "The state after the transaction" } }, "type": "object", "required": ["type", "before", "after"], "title": "ModulesChangeManagement" }, "routers__evm__response__NativeAddressAssetBalanceChangeDiff": { "properties": { "asset_type": { "type": "string", "enum": ["NATIVE"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__NativeAssetDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__evm__response__NativeDiff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__evm__response__NativeDiff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" }, "balance_changes": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__NativeBalanceChanges" } ], "title": "Balance Changes", "description": "shows the balance before making the transaction and after" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "NativeAddressAssetBalanceChangeDiff" }, "routers__evm__response__NativeAddressAssetDiff": { "properties": { "asset_type": { "type": "string", "enum": ["NATIVE"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__NativeAssetDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__evm__response__NativeDiff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__evm__response__NativeDiff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "NativeAddressAssetDiff" }, "routers__evm__response__NativeAsset": { "properties": { "type": { "type": "string", "enum": ["NATIVE"], "title": "Type", "description": "The type of the model" }, "details": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__NativeAssetDetails" } ], "title": "Details", "description": "Details" } }, "type": "object", "required": ["type", "details"], "title": "NativeAsset" }, "routers__evm__response__NativeAssetTrace": { "properties": { "trace_type": { "type": "string", "enum": ["AssetTrace"], "title": "Trace Type", "description": "type of the trace" }, "from_address": { "type": "string", "title": "From Address", "description": "The address where the assets are moved from" }, "to_address": { "type": "string", "title": "To Address", "description": "The address where the assets are moved to" }, "labels": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__TraceLabels" }, { "type": "string" } ] }, "type": "array", "title": "Labels", "description": "List of labels that describe the trace" }, "type": { "type": "string", "enum": ["NativeAssetTrace"], "title": "Type", "description": "The type of the model" }, "asset": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__NativeAssetDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" }, "diff": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__NativeDiff" } ], "title": "Diff", "description": "The difference in value for the asset in the trace" } }, "type": "object", "required": [ "trace_type", "from_address", "to_address", "type", "asset", "diff" ], "title": "NativeAssetTrace" }, "routers__evm__response__NativeBalanceChanges": { "properties": { "before": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__NativeDiff" } ], "title": "Before", "description": "balance of the account before making the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__NativeDiff" } ], "title": "After", "description": "balance of the account after making the transaction" } }, "type": "object", "required": ["before", "after"], "title": "NativeBalanceChanges" }, "routers__evm__response__NativeDiff": { "properties": { "usd_price": { "type": "string", "title": "Usd Price", "description": "usd equal of the asset that was transferred from this address" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the asset transfer" }, "value": { "type": "string", "title": "Value", "description": "value after divided by decimals, that was transferred from this address" }, "raw_value": { "type": "string", "title": "Raw Value", "description": "value before divided by decimal, that was transferred from this address" } }, "type": "object", "required": ["raw_value"], "title": "NativeDiff" }, "routers__evm__response__NonFungibleTokenBalance": { "properties": { "token_id": { "type": "string", "title": "Token Id" }, "amount": { "type": "integer", "title": "Amount" }, "usd_price": { "type": "number", "title": "Usd Price" }, "is_mint": { "type": "boolean", "title": "Is Mint", "default": false }, "logo_url": { "type": "string", "title": "Logo Url" } }, "type": "object", "required": ["token_id", "amount"], "title": "NonFungibleTokenBalance" }, "routers__evm__response__OwnershipChange": { "properties": { "owners": { "items": { "type": "string" }, "type": "array", "title": "Owners" } }, "type": "object", "required": ["owners"], "title": "OwnershipChange" }, "routers__evm__response__OwnershipChangeManagement": { "properties": { "type": { "type": "string", "enum": ["OWNERSHIP_CHANGE"], "title": "Type", "description": "The type of the state change" }, "before": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__OwnershipChange" } ], "title": "Before", "description": "The state before the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__OwnershipChange" } ], "title": "After", "description": "The state after the transaction" } }, "type": "object", "required": ["type", "before", "after"], "title": "OwnershipChangeManagement" }, "routers__evm__response__ProxyUpgradeManagement": { "properties": { "type": { "type": "string", "enum": ["PROXY_UPGRADE"], "title": "Type", "description": "The type of the state change" }, "before": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__AddressChange" } ], "title": "Before", "description": "The state before the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__AddressChange" } ], "title": "After", "description": "The state after the transaction" } }, "type": "object", "required": ["type", "before", "after"], "title": "ProxyUpgradeManagement" }, "routers__evm__response__SetCodeAccountManagement": { "properties": { "type": { "type": "string", "enum": ["SET_CODE_ACCOUNT"], "title": "Type", "description": "The type of the state change" }, "delegated_address": { "type": "string", "title": "Delegated Address", "description": "The delegated address" } }, "type": "object", "required": ["type", "delegated_address"], "title": "SetCodeAccountManagement" }, "routers__evm__response__TraceLabels": { "type": "string", "enum": ["GAS_FEE"], "title": "TraceLabels", "description": "Label assigned to a trace entry." }, "routers__evm__response__TransactionAction": { "type": "string", "enum": [ "mint", "stake", "swap", "native_transfer", "token_transfer", "approval", "set_code_account", "proxy_upgrade", "ownership_change", "bridge" ], "title": "TransactionAction", "description": "Type of action performed in the transaction." }, "routers__evm__response__TransactionScanFeature": { "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__TransactionScanFeatureType" } ], "description": "Type/severity" }, "feature_id": { "type": "string", "title": "Feature Id", "description": "Feature name" }, "description": { "type": "string", "title": "Description", "description": "Textual description" }, "address": { "type": "string", "title": "Address", "description": "Address the feature refers to" }, "metadata": { "type": "object", "title": "Metadata", "description": "Metadata related to the feature" } }, "type": "object", "required": ["type", "feature_id", "description"], "title": "TransactionScanFeature" }, "routers__evm__response__TransactionScanFeatureType": { "type": "string", "enum": ["Malicious", "Warning", "Benign", "Info"], "title": "TransactionScanFeatureType", "description": "Security result of a transaction scan feature." }, "routers__evm__response__TransactionScanResponse": { "properties": { "validation": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__TransactionValidation" }, { "$ref": "#/components/schemas/routers__evm__response__TransactionValidationError" } ], "title": "Validation" }, "simulation": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__TransactionSimulation" }, { "$ref": "#/components/schemas/routers__evm__response__TransactionSimulationError" } ], "title": "Simulation" }, "events": { "items": { "$ref": "#/components/schemas/routers__evm__models__TransactionScanEvent" }, "type": "array", "title": "Events" }, "gas_estimation": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__models__TransactionScanGasEstimation" }, { "$ref": "#/components/schemas/routers__evm__models__TransactionScanGasEstimationError" } ], "title": "Gas Estimation" }, "user_operation_gas_estimation": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__models__UserOperationV6GasEstimation" }, { "$ref": "#/components/schemas/routers__evm__models__UserOperationV7GasEstimation" }, { "$ref": "#/components/schemas/routers__evm__models__TransactionScanGasEstimationError" } ], "title": "User Operation Gas Estimation" }, "features": { "type": "object", "title": "Features" }, "block": { "type": "string", "title": "Block" }, "chain": { "type": "string", "title": "Chain" }, "account_address": { "type": "string", "title": "Account Address" } }, "type": "object", "required": ["block", "chain"], "title": "TransactionScanResponse" }, "routers__evm__response__TransactionSimulation": { "properties": { "status": { "type": "string", "enum": ["Success"], "title": "Status", "description": "A string indicating if the simulation was successful or not." }, "assets_diffs": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC20AddressAssetDiff" }, { "$ref": "#/components/schemas/routers__evm__response__ERC721AddressAssetDiff" }, { "$ref": "#/components/schemas/routers__evm__response__ERC1155AddressAssetDiff" }, { "$ref": "#/components/schemas/routers__evm__response__NativeAddressAssetDiff" } ] }, "type": "array" }, "type": "object", "title": "Assets Diffs", "description": "dictionary describes the assets differences as a result of this transaction for every involved address" }, "transaction_actions": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__TransactionAction" }, { "type": "string" } ] }, "type": "array", "title": "Transaction Actions", "description": "Describes the nature of the transaction and what happened as part of it" }, "total_usd_diff": { "additionalProperties": { "$ref": "#/components/schemas/routers__evm__response__USDDiff" }, "type": "object", "title": "Total Usd Diff", "description": "dictionary represents the usd value each address gained / lost during this transaction" }, "exposures": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__ERC20AddressExposure" }, { "$ref": "#/components/schemas/routers__evm__response__ERC721AddressExposure" }, { "$ref": "#/components/schemas/routers__evm__response__ERC1155AddressExposure" } ] }, "type": "array" }, "type": "object", "title": "Exposures", "description": "dictionary describes the exposure differences as a result of this transaction for every involved address (as a result of any approval / setApproval / permit function)" }, "total_usd_exposure": { "additionalProperties": { "additionalProperties": { "type": "string" }, "type": "object" }, "type": "object", "title": "Total Usd Exposure", "description": "a dictionary representing the usd value each address is exposed to, split by spenders" }, "address_details": { "additionalProperties": { "$ref": "#/components/schemas/routers__evm__response__AddressDetails" }, "type": "object", "title": "Address Details", "description": "a dictionary including additional information about each relevant address in the transaction." }, "account_summary": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__AccountSummary" } ], "title": "Account Summary", "description": "Account summary for the account address. account address is determined implicit by the `from` field in the transaction request, or explicit by the account_address field in the request." }, "params": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__JsonRPCParams" } ], "title": "Params", "description": "The parameters of the transaction that was simulated." }, "contract_management": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__ProxyUpgradeManagement" }, { "$ref": "#/components/schemas/routers__evm__response__OwnershipChangeManagement" }, { "$ref": "#/components/schemas/routers__evm__response__ModulesChangeManagement" }, { "$ref": "#/components/schemas/routers__evm__response__SetCodeAccountManagement" }, { "$ref": "#/components/schemas/routers__evm__response__ContractCreation" } ] }, "type": "array" }, "type": "object", "title": "Contract Management", "description": "Describes the state differences as a result of this transaction for every involved address" }, "session_key": { "additionalProperties": { "items": { "$ref": "#/components/schemas/routers__evm__session_keys__SessionKey" }, "type": "array" }, "type": "object", "title": "Session Key", "description": "Session keys created in this transaction per address" }, "missing_balances": { "items": { "$ref": "#/components/schemas/routers__evm__response__MissingBalance" }, "type": "array", "title": "Missing Balances", "description": "Missing balances in the transaction" }, "simulation_run_count": { "type": "integer", "title": "Simulation Run Count", "description": "The number of times the simulation ran until success" }, "cross_chain_asset_diffs": { "anyOf": [ { "items": { "$ref": "#/components/schemas/routers__evm__response__CrossChainAssetDiffs" }, "type": "array" }, { "type": "null" } ], "title": "Cross Chain Asset Diffs", "description": "Cross-chain asset diffs per address, showing asset movements across different chains (e.g. bridge transactions)" } }, "type": "object", "required": [ "status", "assets_diffs", "transaction_actions", "total_usd_diff", "exposures", "total_usd_exposure", "address_details", "account_summary", "session_key" ], "title": "TransactionSimulation" }, "routers__evm__response__TransactionSimulationError": { "properties": { "status": { "type": "string", "enum": ["Error"], "title": "Status", "description": "A string indicating if the simulation was successful or not." }, "error": { "type": "string", "title": "Error", "description": "An error message if the simulation failed." }, "error_details": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__response__GeneralInsufficientFundsErrorDetails" }, { "$ref": "#/components/schemas/routers__evm__response__GeneralInvalidAddressErrorDetails" }, { "$ref": "#/components/schemas/routers__evm__response__GenericErrorDetails" }, { "$ref": "#/components/schemas/routers__evm__response__UnsupportedEIP712MessageErrorDetails" } ], "title": "Error Details", "description": "Error details if the simulation failed." }, "description": { "type": "string", "title": "Description", "description": "A string explaining why the transaction failed" } }, "type": "object", "required": ["status", "error", "description"], "title": "TransactionSimulationError" }, "routers__evm__response__TransactionValidation": { "properties": { "status": { "type": "string", "enum": ["Success"], "title": "Status", "description": "A string indicating if the simulation was successful or not." }, "result_type": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__response__TransactionValidationSuccessResultType" } ], "description": "A string indicating if the transaction is safe to sign or not." }, "description": { "type": "string", "title": "Description", "description": "A textual description that can be presented to the user about what this transaction is doing.", "default": "" }, "reason": { "type": "string", "title": "Reason", "description": "A textual description about the reasons the transaction was flagged with result_type.", "default": "" }, "classification": { "type": "string", "title": "Classification", "description": "A textual classification that can be presented to the user explaining the reason.", "default": "" }, "features": { "items": { "$ref": "#/components/schemas/routers__evm__response__TransactionScanFeature" }, "type": "array", "title": "Features", "description": "A list of features about this transaction explaining the validation." } }, "type": "object", "required": ["status", "result_type", "features"], "title": "TransactionValidation" }, "routers__evm__response__TransactionValidationError": { "properties": { "status": { "type": "string", "enum": ["Success"], "title": "Status", "description": "A string indicating if the simulation was successful or not." }, "result_type": { "type": "string", "enum": ["Error"], "title": "Result Type", "description": "A string indicating if the transaction is safe to sign or not." }, "description": { "type": "string", "enum": [""], "title": "Description", "description": "A textual description that can be presented to the user about what this transaction is doing." }, "reason": { "type": "string", "enum": [""], "title": "Reason", "description": "A textual description about the reasons the transaction was flagged with result_type." }, "classification": { "type": "string", "enum": [""], "title": "Classification", "description": "A textual classification that can be presented to the user explaining the reason." }, "features": { "items": { "$ref": "#/components/schemas/routers__evm__response__TransactionScanFeature" }, "type": "array", "title": "Features", "description": "A list of features about this transaction explaining the validation." }, "error": { "type": "string", "title": "Error", "description": "An error message if the validation failed." } }, "type": "object", "required": [ "status", "result_type", "description", "reason", "classification", "features", "error" ], "title": "TransactionValidationError" }, "routers__evm__response__TransactionValidationSuccessResultType": { "type": "string", "enum": ["Benign", "Warning", "Malicious"], "title": "TransactionValidationSuccessResultType", "description": "Result type returned when validation succeeds." }, "routers__evm__response__USDDiff": { "properties": { "in": { "type": "string", "title": "In" }, "out": { "type": "string", "title": "Out" }, "total": { "type": "string", "title": "Total" } }, "type": "object", "required": ["in", "out", "total"], "title": "USDDiff" }, "routers__evm__response__UnsupportedEIP712MessageErrorDetails": { "properties": { "code": { "type": "string", "enum": ["UNSUPPORTED_EIP712_MESSAGE"], "title": "Code", "description": "The type of the model" }, "category": { "type": "string", "const": "INVALID_INPUT", "title": "Category", "default": "INVALID_INPUT" }, "domain_name": { "type": "string", "title": "Domain Name", "description": "The domain name that is unsupported" }, "message_type": { "type": "string", "title": "Message Type", "description": "The message type that is unsupported" } }, "type": "object", "required": ["code", "domain_name", "message_type"], "title": "UnsupportedEIP712MessageErrorDetails" }, "routers__evm__session_keys__ArgumentCondition": { "properties": { "index": { "type": "integer", "title": "Index" }, "condition": { "$ref": "#/components/schemas/routers__evm__session_keys__Condition" }, "value": { "type": "string", "title": "Value" } }, "type": "object", "required": ["index", "condition", "value"], "title": "ArgumentCondition" }, "routers__evm__session_keys__CallPolicy": { "properties": { "type": { "type": "string", "enum": ["CALL_POLICY"], "title": "Type", "default": "CALL_POLICY" }, "to_address": { "type": "string", "title": "To Address" }, "method": { "type": "string", "title": "Method" }, "value_limit": { "type": "string", "title": "Value Limit" }, "args": { "items": { "$ref": "#/components/schemas/routers__evm__session_keys__ArgumentCondition" }, "type": "array", "title": "Args" } }, "type": "object", "required": ["to_address"], "title": "CallPolicy" }, "routers__evm__session_keys__Condition": { "type": "string", "enum": [ "UNCONSTRAINED", "EQUAL", "GREATER", "LESS", "GREATER_OR_EQUAL", "LESS_OR_EQUAL", "NOT_EQUAL" ], "title": "Condition", "description": "Comparison operator used to evaluate an argument/value against a policy constraint." }, "routers__evm__session_keys__ExpirationPolicy": { "properties": { "type": { "type": "string", "enum": ["EXPIRATION_POLICY"], "title": "Type", "default": "EXPIRATION_POLICY" }, "start_time": { "type": "string", "format": "date-time", "title": "Start Time" }, "end_time": { "type": "string", "format": "date-time", "title": "End Time" } }, "type": "object", "title": "ExpirationPolicy" }, "routers__evm__session_keys__GasPolicy": { "properties": { "type": { "type": "string", "enum": ["GAS_POLICY"], "title": "Type", "default": "GAS_POLICY" }, "value_limit": { "type": "string", "title": "Value Limit" } }, "type": "object", "required": ["value_limit"], "title": "GasPolicy" }, "routers__evm__session_keys__SessionKey": { "properties": { "key": { "type": "string", "title": "Key" }, "signer": { "type": "string", "title": "Signer" }, "policies": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__session_keys__TransferPolicy" }, { "$ref": "#/components/schemas/routers__evm__session_keys__CallPolicy" }, { "$ref": "#/components/schemas/routers__evm__session_keys__GasPolicy" }, { "$ref": "#/components/schemas/routers__evm__session_keys__ExpirationPolicy" } ] }, "type": "array", "title": "Policies" } }, "type": "object", "required": ["key", "signer", "policies"], "title": "SessionKey" }, "routers__evm__session_keys__TransferPolicy": { "properties": { "type": { "type": "string", "enum": ["TRANSFER_POLICY"], "title": "Type", "default": "TRANSFER_POLICY" }, "asset_details": { "anyOf": [ { "$ref": "#/components/schemas/routers__evm__token_details__NativeAssetDetails" }, { "$ref": "#/components/schemas/routers__evm__token_details__ERC20TokenDetails" } ], "title": "Asset Details" }, "value_limit": { "type": "string", "title": "Value Limit" }, "recipient": { "type": "string", "title": "Recipient" } }, "type": "object", "required": ["asset_details"], "title": "TransferPolicy" }, "routers__evm__token_details__ERC1155TokenDetails": { "properties": { "name": { "type": "string", "title": "Name", "description": "string represents the name of the asset" }, "symbol": { "type": "string", "title": "Symbol", "description": "asset's symbol name" }, "address": { "type": "string", "title": "Address", "description": "address of the token" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "url of the token logo" }, "type": { "type": "string", "enum": ["ERC1155"], "title": "Type", "description": "asset type." } }, "type": "object", "required": ["address", "type"], "title": "ERC1155TokenDetails" }, "routers__evm__token_details__ERC20TokenDetails": { "properties": { "name": { "type": "string", "title": "Name", "description": "string represents the name of the asset" }, "symbol": { "type": "string", "title": "Symbol", "description": "asset's symbol name" }, "address": { "type": "string", "title": "Address", "description": "address of the token" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "url of the token logo" }, "type": { "type": "string", "enum": ["ERC20"], "title": "Type", "description": "asset type." }, "decimals": { "type": "integer", "title": "Decimals", "description": "asset's decimals" } }, "type": "object", "required": ["address", "type", "decimals"], "title": "ERC20TokenDetails" }, "routers__evm__token_details__ERC721TokenDetails": { "properties": { "name": { "type": "string", "title": "Name", "description": "string represents the name of the asset" }, "symbol": { "type": "string", "title": "Symbol", "description": "asset's symbol name" }, "address": { "type": "string", "title": "Address", "description": "address of the token" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "url of the token logo" }, "type": { "type": "string", "enum": ["ERC721"], "title": "Type", "description": "asset type." } }, "type": "object", "required": ["address", "type"], "title": "ERC721TokenDetails" }, "routers__evm__token_details__NONERCTokenDetails": { "properties": { "name": { "type": "string", "title": "Name", "description": "string represents the name of the asset" }, "symbol": { "type": "string", "title": "Symbol", "description": "asset's symbol name" }, "address": { "type": "string", "title": "Address", "description": "address of the token" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "url of the token logo" }, "type": { "type": "string", "enum": ["NONERC"], "title": "Type", "description": "asset type." } }, "type": "object", "required": ["address", "type"], "title": "NONERCTokenDetails" }, "routers__evm__token_details__NativeAssetDetails": { "properties": { "type": { "type": "string", "enum": ["NATIVE"], "title": "Type", "description": "asset type." }, "name": { "type": "string", "title": "Name", "description": "string represents the name of the asset" }, "symbol": { "type": "string", "title": "Symbol", "description": "asset's symbol name" }, "chain_name": { "type": "string", "title": "Chain Name" }, "chain_id": { "type": "integer", "title": "Chain Id" }, "decimals": { "type": "integer", "title": "Decimals" }, "logo_url": { "type": "string", "title": "Logo Url" } }, "type": "object", "required": ["type", "chain_name", "chain_id", "decimals", "logo_url"], "title": "NativeAssetDetails" }, "routers__evm__transaction__models__Transaction": { "properties": { "from": { "type": "string", "title": "From", "description": "The source address of the transaction in hex string format" }, "to": { "type": "string", "title": "To", "description": "The destination address of the transaction in hex string format", "default": "0x" }, "data": { "type": "string", "title": "Data", "description": "The encoded call data of the transaction in hex string format", "default": "0x" }, "value": { "type": "string", "title": "Value", "description": "The value of the transaction in Wei in hex string format", "default": "0x0" }, "gas": { "type": "string", "title": "Gas", "description": "The gas required for the transaction in hex string format." }, "gas_price": { "type": "string", "title": "Gas Price", "description": "The gas price for the transaction in hex string format." }, "authorization_list": { "items": { "$ref": "#/components/schemas/Authorization" }, "type": "array", "title": "Authorization List", "description": "The authorization list" } }, "type": "object", "required": ["from"], "title": "Transaction" }, "routers__evm__transaction__models__TransactionRequest": { "properties": { "chain": { "allOf": [ { "$ref": "#/components/schemas/ChainParam" } ], "title": "Chain", "description": "The chain name or chain ID" }, "options": { "items": { "$ref": "#/components/schemas/routers__evm__models__ValidationOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "description": "List of one or more of options for the desired output. \"simulation\" - include simulation output in your response. \"validation\" - include security validation of the transaction in your response. \"gas_estimation\" - include gas estimation result in your response. Default is [\"validation\"]", "default": ["validation"] }, "metadata": { "allOf": [ { "$ref": "#/components/schemas/ScanRequestMetadata" } ], "title": "Metadata", "description": "Additional context for the scan (e.g., dapp URL/domain, integration source). Used to enrich results and reduce false positives/negatives." }, "block": { "anyOf": [ { "type": "integer" }, { "type": "string", "pattern": "^(0[Xx][0-9A-Fa-f]+|-?[1-9][0-9]*|latest)$" } ], "title": "Block", "description": "The relative block for the block validation. Can be \"latest\" or a block number.", "default": "latest" }, "state_override": { "additionalProperties": { "$ref": "#/components/schemas/routers__evm__models__AddressStateOverride" }, "type": "object", "title": "State Override", "description": "Override the state of the chain. This is useful for testing purposes." }, "simulate_with_estimated_gas": { "type": "boolean", "title": "Simulate With Estimated Gas", "description": "Simulate transactions using gas estimation result. This requires \"gas_estimation\" option to be enabled.", "default": false }, "account_address": { "type": "string", "title": "Account Address", "description": "The address to relate the transaction to. Account address determines in which perspective the transaction is simulated and validated." }, "data": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__transaction__models__Transaction" } ], "title": "Data", "description": "Transaction parameters" }, "transaction_hints": { "$ref": "#/components/schemas/TransactionHints", "title": "Transaction Hints", "description": "Optional customer-supplied hints about transaction intent that cannot be inferred from on-chain simulation." } }, "type": "object", "required": ["chain", "metadata", "account_address", "data"], "title": "TransactionRequest" }, "routers__exchange_protection__account__models__Account": { "properties": { "account_id": { "type": "string", "title": "Account Id" }, "account_creation_timestamp": { "type": "string", "format": "date-time", "title": "Account Creation Timestamp" }, "user_age": { "type": "integer", "exclusiveMinimum": 0.0, "title": "User Age" }, "user_country_code": { "type": "string", "title": "User Country Code", "default": "US" } }, "type": "object", "required": ["account_id"], "title": "Account" }, "routers__exchange_protection__account__models__AddressDetails": { "properties": { "address": { "type": "string", "title": "Address" }, "chain": { "type": "string", "title": "Chain" }, "asset": { "type": "string", "title": "Asset" } }, "type": "object", "required": ["address", "chain", "asset"], "title": "AddressDetails" }, "routers__tron__models__AddressStateOverride": { "properties": { "balance": { "type": "string", "title": "Balance", "description": "Fake balance to set for the account before executing the call." }, "nonce": { "type": "string", "title": "Nonce", "description": "Fake nonce to set for the account before executing the call." }, "code": { "type": "string", "title": "Code", "description": "Fake EVM bytecode to inject into the account before executing the call." }, "state": { "additionalProperties": { "type": "string" }, "type": "object", "title": "State", "description": "Fake key-value mapping to override all slots in the account storage before executing the call." }, "stateDiff": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Statediff", "description": "Fake key-value mapping to override individual slots in the account storage before executing the call." }, "movePrecompileToAddress": { "type": "string", "title": "Moveprecompiletoaddress", "description": "Moves precompile to given address" } }, "type": "object", "title": "AddressStateOverride" }, "routers__tron__models__MetadataDapp": { "properties": { "domain": { "type": "string", "title": "Domain", "description": "The full URL of the DApp or website that initiated the transaction, for cross-reference. Must use the https or http scheme and contain a valid hostname. Cannot contain JSON, braces, or other embedded data structures." } }, "type": "object", "required": ["domain"], "title": "MetadataDapp" }, "routers__tron__models__MetadataNonDapp": { "properties": { "non_dapp": { "type": "boolean", "enum": [true], "title": "Non Dapp", "description": "Indicates that the transaction was not initiated by a dapp.", "default": true } }, "type": "object", "title": "MetadataNonDapp" }, "routers__tron__models__TransactionScanEvent": { "properties": { "emitter_address": { "type": "string", "title": "Emitter Address" }, "emitter_name": { "type": "string", "title": "Emitter Name" }, "name": { "type": "string", "title": "Name" }, "params": { "items": { "$ref": "#/components/schemas/routers__tron__models__TransactionScanLogParamInfo" }, "type": "array", "title": "Params" }, "topics": { "items": { "type": "string" }, "type": "array", "title": "Topics" }, "data": { "type": "string", "title": "Data" } }, "type": "object", "required": ["emitter_address", "topics", "data"], "title": "TransactionScanEvent" }, "routers__tron__models__TransactionScanGasEstimation": { "properties": { "status": { "type": "string", "enum": ["Success"], "title": "Status" }, "used": { "type": "string", "title": "Used" }, "estimate": { "type": "string", "title": "Estimate" } }, "type": "object", "required": ["status", "used", "estimate"], "title": "TransactionScanGasEstimation" }, "routers__tron__models__TransactionScanGasEstimationError": { "properties": { "status": { "type": "string", "enum": ["Error"], "title": "Status" }, "error": { "type": "string", "title": "Error" } }, "type": "object", "required": ["status", "error"], "title": "TransactionScanGasEstimationError" }, "routers__tron__models__TransactionScanLogParamInfo": { "properties": { "type": { "type": "string", "title": "Type" }, "value": { "anyOf": [ { "type": "string" }, { "type": "object" }, { "items": {}, "type": "array" } ], "title": "Value" }, "internalType": { "type": "string", "title": "Internaltype" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": ["type", "value"], "title": "TransactionScanLogParamInfo" }, "routers__tron__models__UserOperationV6GasEstimation": { "properties": { "status": { "type": "string", "enum": ["Success"], "title": "Status" }, "pre_verification_gas_estimate": { "type": "string", "title": "Pre Verification Gas Estimate" }, "verification_gas_estimate": { "type": "string", "title": "Verification Gas Estimate" }, "call_gas_estimate": { "type": "string", "title": "Call Gas Estimate" } }, "type": "object", "required": [ "status", "pre_verification_gas_estimate", "verification_gas_estimate", "call_gas_estimate" ], "title": "UserOperationV6GasEstimation" }, "routers__tron__models__UserOperationV7GasEstimation": { "properties": { "status": { "type": "string", "enum": ["Success"], "title": "Status" }, "pre_verification_gas_estimate": { "type": "string", "title": "Pre Verification Gas Estimate" }, "verification_gas_estimate": { "type": "string", "title": "Verification Gas Estimate" }, "call_gas_estimate": { "type": "string", "title": "Call Gas Estimate" }, "paymaster_verification_gas_estimate": { "type": "string", "title": "Paymaster Verification Gas Estimate" } }, "type": "object", "required": [ "status", "pre_verification_gas_estimate", "verification_gas_estimate", "call_gas_estimate", "paymaster_verification_gas_estimate" ], "title": "UserOperationV7GasEstimation" }, "routers__tron__models__ValidationOptions": { "type": "string", "enum": ["validation", "simulation", "events"], "title": "ValidationOptions", "description": "Response sections to include (e.g., validation, simulation, events)." }, "routers__tron__response__AccountSummary": { "properties": { "assets_diffs": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC20AddressAssetBalanceChangeDiff" }, { "$ref": "#/components/schemas/routers__tron__response__ERC721AddressAssetBalanceChangeDiff" }, { "$ref": "#/components/schemas/routers__tron__response__ERC1155AddressAssetBalanceChangeDiff" }, { "$ref": "#/components/schemas/routers__tron__response__NativeAddressAssetBalanceChangeDiff" } ] }, "type": "array", "title": "Assets Diffs", "description": "All assets diffs related to the account address" }, "traces": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC20AssetTrace" }, { "$ref": "#/components/schemas/routers__tron__response__ERC721AssetTrace" }, { "$ref": "#/components/schemas/routers__tron__response__ERC1155AssetTrace" }, { "$ref": "#/components/schemas/routers__tron__response__NativeAssetTrace" }, { "$ref": "#/components/schemas/routers__tron__response__ERC20ExposureTrace" }, { "$ref": "#/components/schemas/routers__tron__response__ERC721ExposureTrace" }, { "$ref": "#/components/schemas/routers__tron__response__ERC1155ExposureTrace" } ] }, "type": "array", "title": "Traces", "description": "All assets traces related to the account address" }, "total_usd_diff": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__USDDiff" } ], "title": "Total Usd Diff", "description": "Total usd diff related to the account address" }, "exposures": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC20AddressExposure" }, { "$ref": "#/components/schemas/routers__tron__response__ERC721AddressExposure" }, { "$ref": "#/components/schemas/routers__tron__response__ERC1155AddressExposure" } ] }, "type": "array", "title": "Exposures", "description": "All assets exposures related to the account address" }, "total_usd_exposure": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Total Usd Exposure", "description": "Total usd exposure related to the account address" } }, "type": "object", "required": [ "assets_diffs", "traces", "total_usd_diff", "exposures", "total_usd_exposure" ], "title": "AccountSummary" }, "routers__tron__response__AddressChange": { "properties": { "address": { "type": "string", "title": "Address" } }, "type": "object", "required": ["address"], "title": "AddressChange" }, "routers__tron__response__AddressDetails": { "properties": { "name_tag": { "type": "string", "title": "Name Tag", "description": "known name tag for the address" }, "contract_name": { "type": "string", "title": "Contract Name", "description": "contains the contract's name if the address is a verified contract" }, "is_eoa": { "type": "boolean", "title": "Is Eoa", "description": "Whether the address is an eoa or a contract" } }, "type": "object", "title": "AddressDetails" }, "routers__tron__response__AssetDiffResponse": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC1155Diff" }, { "$ref": "#/components/schemas/routers__tron__response__ERC721Diff" }, { "$ref": "#/components/schemas/routers__tron__response__ERC20Diff" }, { "$ref": "#/components/schemas/routers__tron__response__NativeDiff" } ], "title": "AssetDiffResponse" }, "routers__tron__response__Balance": { "properties": { "raw_value": { "type": "string", "title": "Raw Value", "description": "The raw value of the balance in hex string format" }, "value": { "type": "string", "title": "Value", "description": "The value of the balance in decimal string format" } }, "type": "object", "required": ["raw_value"], "title": "Balance" }, "routers__tron__response__CallData": { "properties": { "function_selector": { "type": "string", "title": "Function Selector", "description": "The function selector of the function called in the transaction" }, "function_signature": { "type": "string", "title": "Function Signature", "description": "The function signature of the function called in the transaction" }, "function_declaration": { "type": "string", "title": "Function Declaration", "description": "The function declaration of the function called in the transaction" } }, "type": "object", "required": ["function_selector"], "title": "CallData" }, "routers__tron__response__ContractCreation": { "properties": { "type": { "type": "string", "enum": ["CONTRACT_CREATION"], "title": "Type", "description": "The type of the state change" }, "deployer": { "type": "string", "title": "Deployer", "description": "The direct creator address of the new contract" } }, "type": "object", "required": ["type", "deployer"], "title": "ContractCreation" }, "routers__tron__response__ERC1155AddressAssetBalanceChangeDiff": { "properties": { "asset_type": { "type": "string", "enum": ["ERC1155"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC1155TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__tron__response__ERC1155Diff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__tron__response__ERC1155Diff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" }, "balance_changes": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC1155BalanceChanges" } ], "title": "Balance Changes", "description": "shows the balance before making the transaction and after" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "ERC1155AddressAssetBalanceChangeDiff" }, "routers__tron__response__ERC1155AddressAssetDiff": { "properties": { "asset_type": { "type": "string", "enum": ["ERC1155"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC1155TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__tron__response__ERC1155Diff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__tron__response__ERC1155Diff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "ERC1155AddressAssetDiff" }, "routers__tron__response__ERC1155AddressExposure": { "properties": { "asset_type": { "type": "string", "enum": ["ERC1155"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC1155TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "TokenDetailsResponse", "description": "description of the asset for the current diff" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/routers__tron__response__ERC1155Exposure" }, "type": "object", "title": "Spenders", "description": "dictionary of spender addresses where the exposure has changed during this transaction for the current address and asset" } }, "type": "object", "required": ["asset_type", "asset", "spenders"], "title": "ERC1155AddressExposure" }, "routers__tron__response__ERC1155Asset": { "properties": { "type": { "type": "string", "enum": ["ERC1155"], "title": "Type", "description": "The type of the model" }, "token_id": { "type": "integer", "title": "Token Id", "description": "Token Id" }, "details": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC1155TokenDetails" } ], "title": "Details", "description": "Details" } }, "type": "object", "required": ["type", "token_id", "details"], "title": "ERC1155Asset" }, "routers__tron__response__ERC1155AssetTrace": { "properties": { "trace_type": { "type": "string", "enum": ["AssetTrace"], "title": "Trace Type", "description": "type of the trace" }, "from_address": { "type": "string", "title": "From Address", "description": "The address where the assets are moved from" }, "to_address": { "type": "string", "title": "To Address", "description": "The address where the assets are moved to" }, "labels": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__TraceLabels" }, { "type": "string" } ] }, "type": "array", "title": "Labels", "description": "List of labels that describe the trace" }, "type": { "type": "string", "enum": ["ERC1155AssetTrace"], "title": "Type", "description": "The type of the model" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC1155TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" }, "diff": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC1155Diff" } ], "title": "Diff", "description": "The difference in value for the asset in the trace" } }, "type": "object", "required": [ "trace_type", "from_address", "to_address", "type", "asset", "diff" ], "title": "ERC1155AssetTrace" }, "routers__tron__response__ERC1155BalanceChanges": { "properties": { "before": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC1155Diff" } ], "title": "Before", "description": "balance of the account before making the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC1155Diff" } ], "title": "After", "description": "balance of the account after making the transaction" } }, "type": "object", "required": ["before", "after"], "title": "ERC1155BalanceChanges" }, "routers__tron__response__ERC1155Diff": { "properties": { "usd_price": { "type": "string", "title": "Usd Price", "description": "usd equal of the asset that was transferred from this address" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the asset transfer" }, "token_id": { "type": "string", "title": "Token Id", "description": "id of the token" }, "value": { "type": "string", "title": "Value", "description": "value before divided by decimal, that was transferred from this address" }, "arbitrary_collection_token": { "type": "boolean", "title": "Arbitrary Collection Token", "description": "Indicates whether the token ID represents an arbitrary token from a collection, unpredictable while running the simulation" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "url of the token logo" } }, "type": "object", "required": ["token_id", "value", "arbitrary_collection_token"], "title": "ERC1155Diff" }, "routers__tron__response__ERC1155Exposure": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/routers__tron__response__AssetDiffResponse" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the approval" }, "is_approved_for_all": { "type": "boolean", "title": "Is Approved For All", "description": "boolean indicates whether an is_approved_for_all function was used (missing in case of ERC20 / ERC1155)" } }, "type": "object", "required": ["exposure", "is_approved_for_all"], "title": "ERC1155Exposure" }, "routers__tron__response__ERC1155ExposureTrace": { "properties": { "trace_type": { "type": "string", "enum": ["ExposureTrace"], "title": "Trace Type", "description": "type of the trace" }, "owner": { "type": "string", "title": "Owner", "description": "The owner of the assets" }, "spender": { "type": "string", "title": "Spender", "description": "The spender of the assets" }, "type": { "type": "string", "enum": ["ERC1155ExposureTrace"], "title": "Type", "description": "The type of the model" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC1155TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" } }, "type": "object", "required": ["trace_type", "owner", "spender", "type", "asset"], "title": "ERC1155ExposureTrace" }, "routers__tron__response__ERC20AddressAssetBalanceChangeDiff": { "properties": { "asset_type": { "type": "string", "enum": ["ERC20"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__tron__response__ERC20Diff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__tron__response__ERC20Diff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" }, "balance_changes": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC20BalanceChanges" } ], "title": "Balance Changes", "description": "shows the balance before making the transaction and after" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "ERC20AddressAssetBalanceChangeDiff" }, "routers__tron__response__ERC20AddressAssetDiff": { "properties": { "asset_type": { "type": "string", "enum": ["ERC20"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__tron__response__ERC20Diff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__tron__response__ERC20Diff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "ERC20AddressAssetDiff" }, "routers__tron__response__ERC20AddressExposure": { "properties": { "asset_type": { "type": "string", "enum": ["ERC20"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "TokenDetailsResponse", "description": "description of the asset for the current diff" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/routers__tron__response__ERC20Exposure" }, "type": "object", "title": "Spenders", "description": "dictionary of spender addresses where the exposure has changed during this transaction for the current address and asset" } }, "type": "object", "required": ["asset_type", "asset", "spenders"], "title": "ERC20AddressExposure" }, "routers__tron__response__ERC20Asset": { "properties": { "type": { "type": "string", "enum": ["ERC20"], "title": "Type", "description": "The type of the model" }, "details": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC20TokenDetails" } ], "title": "Details", "description": "Details" } }, "type": "object", "required": ["type", "details"], "title": "ERC20Asset" }, "routers__tron__response__ERC20AssetTrace": { "properties": { "trace_type": { "type": "string", "enum": ["AssetTrace"], "title": "Trace Type", "description": "type of the trace" }, "from_address": { "type": "string", "title": "From Address", "description": "The address where the assets are moved from" }, "to_address": { "type": "string", "title": "To Address", "description": "The address where the assets are moved to" }, "labels": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__TraceLabels" }, { "type": "string" } ] }, "type": "array", "title": "Labels", "description": "List of labels that describe the trace" }, "type": { "type": "string", "enum": ["ERC20AssetTrace"], "title": "Type", "description": "The type of the model" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" }, "diff": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC20Diff" } ], "title": "Diff", "description": "The difference in value for the asset in the trace" } }, "type": "object", "required": [ "trace_type", "from_address", "to_address", "type", "asset", "diff" ], "title": "ERC20AssetTrace" }, "routers__tron__response__ERC20BalanceChanges": { "properties": { "before": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC20Diff" } ], "title": "Before", "description": "balance of the account before making the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC20Diff" } ], "title": "After", "description": "balance of the account after making the transaction" } }, "type": "object", "required": ["before", "after"], "title": "ERC20BalanceChanges" }, "routers__tron__response__ERC20Diff": { "properties": { "usd_price": { "type": "string", "title": "Usd Price", "description": "usd equal of the asset that was transferred from this address" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the asset transfer" }, "value": { "type": "string", "title": "Value", "description": "value after divided by decimals, that was transferred from this address" }, "raw_value": { "type": "string", "title": "Raw Value", "description": "value before divided by decimal, that was transferred from this address" } }, "type": "object", "required": ["raw_value"], "title": "ERC20Diff" }, "routers__tron__response__ERC20Exposure": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/routers__tron__response__AssetDiffResponse" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the approval" }, "approval": { "type": "string", "title": "Approval", "description": "the amount that was asked in the approval request for this spender from the current address and asset" }, "approval_usd_price": { "type": "string", "title": "Approval Usd Price", "description": "the usd price of the approval amount" }, "expiration": { "type": "string", "format": "date-time", "title": "Expiration", "description": "the expiration time of the permit2 protocol" } }, "type": "object", "required": ["exposure", "approval"], "title": "ERC20Exposure" }, "routers__tron__response__ERC20ExposureTrace": { "properties": { "trace_type": { "type": "string", "enum": ["ExposureTrace"], "title": "Trace Type", "description": "type of the trace" }, "owner": { "type": "string", "title": "Owner", "description": "The owner of the assets" }, "spender": { "type": "string", "title": "Spender", "description": "The spender of the assets" }, "type": { "type": "string", "enum": ["ERC20ExposureTrace"], "title": "Type", "description": "The type of the model" }, "exposed": { "$ref": "#/components/schemas/routers__tron__response__FungibleTokenBalance" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" } }, "type": "object", "required": [ "trace_type", "owner", "spender", "type", "exposed", "asset" ], "title": "ERC20ExposureTrace" }, "routers__tron__response__ERC721AddressAssetBalanceChangeDiff": { "properties": { "asset_type": { "type": "string", "enum": ["ERC721"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC721TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__tron__response__ERC721Diff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__tron__response__ERC721Diff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" }, "balance_changes": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC721BalanceChanges" } ], "title": "Balance Changes", "description": "shows the balance before making the transaction and after" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "ERC721AddressAssetBalanceChangeDiff" }, "routers__tron__response__ERC721AddressAssetDiff": { "properties": { "asset_type": { "type": "string", "enum": ["ERC721"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC721TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__tron__response__ERC721Diff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__tron__response__ERC721Diff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "ERC721AddressAssetDiff" }, "routers__tron__response__ERC721AddressExposure": { "properties": { "asset_type": { "type": "string", "enum": ["ERC721"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC721TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "TokenDetailsResponse", "description": "description of the asset for the current diff" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/routers__tron__response__ERC721Exposure" }, "type": "object", "title": "Spenders", "description": "dictionary of spender addresses where the exposure has changed during this transaction for the current address and asset" } }, "type": "object", "required": ["asset_type", "asset", "spenders"], "title": "ERC721AddressExposure" }, "routers__tron__response__ERC721Asset": { "properties": { "type": { "type": "string", "enum": ["ERC721"], "title": "Type", "description": "The type of the model" }, "token_id": { "type": "integer", "title": "Token Id", "description": "Token Id" }, "details": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC1155TokenDetails" } ], "title": "Details", "description": "Details" } }, "type": "object", "required": ["type", "token_id", "details"], "title": "ERC721Asset" }, "routers__tron__response__ERC721AssetTrace": { "properties": { "trace_type": { "type": "string", "enum": ["AssetTrace"], "title": "Trace Type", "description": "type of the trace" }, "from_address": { "type": "string", "title": "From Address", "description": "The address where the assets are moved from" }, "to_address": { "type": "string", "title": "To Address", "description": "The address where the assets are moved to" }, "labels": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__TraceLabels" }, { "type": "string" } ] }, "type": "array", "title": "Labels", "description": "List of labels that describe the trace" }, "type": { "type": "string", "enum": ["ERC721AssetTrace"], "title": "Type", "description": "The type of the model" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC721TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" }, "diff": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC721Diff" } ], "title": "Diff", "description": "The difference in value for the asset in the trace" } }, "type": "object", "required": [ "trace_type", "from_address", "to_address", "type", "asset", "diff" ], "title": "ERC721AssetTrace" }, "routers__tron__response__ERC721BalanceChanges": { "properties": { "before": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC721Diff" } ], "title": "Before", "description": "balance of the account before making the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC721Diff" } ], "title": "After", "description": "balance of the account after making the transaction" } }, "type": "object", "required": ["before", "after"], "title": "ERC721BalanceChanges" }, "routers__tron__response__ERC721Diff": { "properties": { "usd_price": { "type": "string", "title": "Usd Price", "description": "usd equal of the asset that was transferred from this address" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the asset transfer" }, "token_id": { "type": "string", "title": "Token Id", "description": "id of the token" }, "arbitrary_collection_token": { "type": "boolean", "title": "Arbitrary Collection Token", "description": "Indicates whether the token ID represents an arbitrary token from a collection, unpredictable while running the simulation" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "url of the token logo" } }, "type": "object", "required": ["token_id", "arbitrary_collection_token"], "title": "ERC721Diff" }, "routers__tron__response__ERC721Exposure": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/routers__tron__response__AssetDiffResponse" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the approval" }, "is_approved_for_all": { "type": "boolean", "title": "Is Approved For All", "description": "boolean indicates whether an is_approved_for_all function was used (missing in case of ERC20 / ERC1155)" } }, "type": "object", "required": ["exposure", "is_approved_for_all"], "title": "ERC721Exposure" }, "routers__tron__response__ERC721ExposureTrace": { "properties": { "trace_type": { "type": "string", "enum": ["ExposureTrace"], "title": "Trace Type", "description": "type of the trace" }, "owner": { "type": "string", "title": "Owner", "description": "The owner of the assets" }, "spender": { "type": "string", "title": "Spender", "description": "The spender of the assets" }, "type": { "type": "string", "enum": ["ERC721ExposureTrace"], "title": "Type", "description": "The type of the model" }, "exposed": { "$ref": "#/components/schemas/routers__tron__response__NonFungibleTokenBalance" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC721TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NONERCTokenDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" } }, "type": "object", "required": ["trace_type", "owner", "spender", "type", "asset"], "title": "ERC721ExposureTrace" }, "routers__tron__response__FungibleTokenBalance": { "properties": { "raw_value": { "type": "string", "title": "Raw Value" }, "value": { "type": "number", "title": "Value" }, "usd_price": { "type": "number", "title": "Usd Price" } }, "type": "object", "required": ["raw_value"], "title": "FungibleTokenBalance" }, "routers__tron__response__GeneralInsufficientFundsErrorDetails": { "properties": { "code": { "type": "string", "enum": ["GENERAL_INSUFFICIENT_FUNDS"], "title": "Code", "description": "The type of the model" }, "category": { "type": "string", "const": "REVERT", "title": "Category", "default": "REVERT" }, "account_address": { "type": "string", "title": "Account Address", "description": "The address of the account" }, "current_balance": { "type": "string", "title": "Current Balance", "description": "The current balance of the account" }, "required_balance": { "type": "string", "title": "Required Balance", "description": "The required balance of the account" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__NativeAsset" }, { "$ref": "#/components/schemas/routers__tron__response__ERC20Asset" }, { "$ref": "#/components/schemas/routers__tron__response__ERC721Asset" }, { "$ref": "#/components/schemas/routers__tron__response__ERC1155Asset" } ], "title": "Asset", "description": "The asset that the account does not have enough balance for" } }, "type": "object", "required": ["code", "account_address", "asset"], "title": "GeneralInsufficientFundsErrorDetails" }, "routers__tron__response__GeneralInvalidAddressErrorDetails": { "properties": { "code": { "type": "string", "enum": ["GENERAL_INVALID_ADDRESS"], "title": "Code", "description": "The type of the model" }, "category": { "type": "string", "const": "INVALID_INPUT", "title": "Category", "default": "INVALID_INPUT" }, "address": { "type": "string", "title": "Address", "description": "The address that is invalid" } }, "type": "object", "required": ["code", "address"], "title": "GeneralInvalidAddressErrorDetails" }, "routers__tron__response__GenericErrorDetails": { "properties": { "code": { "type": "string", "title": "Code", "description": "The error code" }, "category": { "type": "string", "title": "Category" } }, "type": "object", "required": ["code", "category"], "title": "GenericErrorDetails" }, "routers__tron__response__JsonRPCParams": { "properties": { "from": { "type": "string", "title": "From", "description": "The address the transaction is sent from." }, "to": { "type": "string", "title": "To", "description": "The address the transaction is directed to." }, "value": { "type": "string", "title": "Value", "description": "The value to be sent." }, "data": { "type": "string", "title": "Data", "description": "The data to be sent." }, "gas": { "type": "string", "title": "Gas", "description": "The gas to be sent." }, "gas_price": { "type": "string", "title": "Gas Price", "description": "The gas price to be sent." }, "block_tag": { "type": "string", "title": "Block Tag", "description": "The block tag to be sent." }, "chain": { "type": "string", "title": "Chain", "description": "The chain to be sent." }, "calldata": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__CallData" } ], "title": "Calldata", "description": "The calldata to be sent." }, "user_operation_calldata": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__CallData" } ], "title": "User Operation Calldata", "description": "The user operation call data to be sent." } }, "type": "object", "title": "JsonRPCParams" }, "routers__tron__response__MissingBalance": { "properties": { "asset": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__ERC20TokenDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__NativeAssetDetails" } ], "title": "Asset", "description": "The asset that is missing balance" }, "required_balance": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__Balance" } ], "title": "Required Balance", "description": "The required balance of the asset for this action" }, "current_balance": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__Balance" } ], "title": "Current Balance", "description": "The account address's current balance of the asset" }, "missing_balance": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__Balance" } ], "title": "Missing Balance", "description": "The account address's missing balance of the asset" } }, "type": "object", "required": [ "asset", "required_balance", "current_balance", "missing_balance" ], "title": "MissingBalance" }, "routers__tron__response__ModulesChange": { "properties": { "modules": { "items": { "type": "string" }, "type": "array", "title": "Modules" } }, "type": "object", "required": ["modules"], "title": "ModulesChange" }, "routers__tron__response__ModulesChangeManagement": { "properties": { "type": { "type": "string", "enum": ["MODULE_CHANGE"], "title": "Type", "description": "The type of the state change" }, "before": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ModulesChange" } ], "title": "Before", "description": "The state before the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__ModulesChange" } ], "title": "After", "description": "The state after the transaction" } }, "type": "object", "required": ["type", "before", "after"], "title": "ModulesChangeManagement" }, "routers__tron__response__NativeAddressAssetBalanceChangeDiff": { "properties": { "asset_type": { "type": "string", "enum": ["NATIVE"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__NativeAssetDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__tron__response__NativeDiff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__tron__response__NativeDiff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" }, "balance_changes": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__NativeBalanceChanges" } ], "title": "Balance Changes", "description": "shows the balance before making the transaction and after" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "NativeAddressAssetBalanceChangeDiff" }, "routers__tron__response__NativeAddressAssetDiff": { "properties": { "asset_type": { "type": "string", "enum": ["NATIVE"], "title": "Asset Type", "description": "type of the asset for the current diff" }, "asset": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__NativeAssetDetails" } ], "title": "Asset", "description": "description of the asset for the current diff" }, "in": { "items": { "$ref": "#/components/schemas/routers__tron__response__NativeDiff" }, "type": "array", "title": "In", "description": "amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "$ref": "#/components/schemas/routers__tron__response__NativeDiff" }, "type": "array", "title": "Out", "description": "amount of the asset that was transferred from the address in this transaction" } }, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "NativeAddressAssetDiff" }, "routers__tron__response__NativeAsset": { "properties": { "type": { "type": "string", "enum": ["NATIVE"], "title": "Type", "description": "The type of the model" }, "details": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__NativeAssetDetails" } ], "title": "Details", "description": "Details" } }, "type": "object", "required": ["type", "details"], "title": "NativeAsset" }, "routers__tron__response__NativeAssetTrace": { "properties": { "trace_type": { "type": "string", "enum": ["AssetTrace"], "title": "Trace Type", "description": "type of the trace" }, "from_address": { "type": "string", "title": "From Address", "description": "The address where the assets are moved from" }, "to_address": { "type": "string", "title": "To Address", "description": "The address where the assets are moved to" }, "labels": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__TraceLabels" }, { "type": "string" } ] }, "type": "array", "title": "Labels", "description": "List of labels that describe the trace" }, "type": { "type": "string", "enum": ["NativeAssetTrace"], "title": "Type", "description": "The type of the model" }, "asset": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__NativeAssetDetails" } ], "title": "Asset", "description": "Description of the asset in the trace" }, "diff": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__NativeDiff" } ], "title": "Diff", "description": "The difference in value for the asset in the trace" } }, "type": "object", "required": [ "trace_type", "from_address", "to_address", "type", "asset", "diff" ], "title": "NativeAssetTrace" }, "routers__tron__response__NativeBalanceChanges": { "properties": { "before": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__NativeDiff" } ], "title": "Before", "description": "balance of the account before making the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__NativeDiff" } ], "title": "After", "description": "balance of the account after making the transaction" } }, "type": "object", "required": ["before", "after"], "title": "NativeBalanceChanges" }, "routers__tron__response__NativeDiff": { "properties": { "usd_price": { "type": "string", "title": "Usd Price", "description": "usd equal of the asset that was transferred from this address" }, "summary": { "type": "string", "title": "Summary", "description": "user friendly description of the asset transfer" }, "value": { "type": "string", "title": "Value", "description": "value after divided by decimals, that was transferred from this address" }, "raw_value": { "type": "string", "title": "Raw Value", "description": "value before divided by decimal, that was transferred from this address" } }, "type": "object", "required": ["raw_value"], "title": "NativeDiff" }, "routers__tron__response__NonFungibleTokenBalance": { "properties": { "token_id": { "type": "string", "title": "Token Id" }, "amount": { "type": "integer", "title": "Amount" }, "usd_price": { "type": "number", "title": "Usd Price" }, "is_mint": { "type": "boolean", "title": "Is Mint", "default": false }, "logo_url": { "type": "string", "title": "Logo Url" } }, "type": "object", "required": ["token_id", "amount"], "title": "NonFungibleTokenBalance" }, "routers__tron__response__OwnershipChange": { "properties": { "owners": { "items": { "type": "string" }, "type": "array", "title": "Owners" } }, "type": "object", "required": ["owners"], "title": "OwnershipChange" }, "routers__tron__response__OwnershipChangeManagement": { "properties": { "type": { "type": "string", "enum": ["OWNERSHIP_CHANGE"], "title": "Type", "description": "The type of the state change" }, "before": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__OwnershipChange" } ], "title": "Before", "description": "The state before the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__OwnershipChange" } ], "title": "After", "description": "The state after the transaction" } }, "type": "object", "required": ["type", "before", "after"], "title": "OwnershipChangeManagement" }, "routers__tron__response__ProxyUpgradeManagement": { "properties": { "type": { "type": "string", "enum": ["PROXY_UPGRADE"], "title": "Type", "description": "The type of the state change" }, "before": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__AddressChange" } ], "title": "Before", "description": "The state before the transaction" }, "after": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__AddressChange" } ], "title": "After", "description": "The state after the transaction" } }, "type": "object", "required": ["type", "before", "after"], "title": "ProxyUpgradeManagement" }, "routers__tron__response__SetCodeAccountManagement": { "properties": { "type": { "type": "string", "enum": ["SET_CODE_ACCOUNT"], "title": "Type", "description": "The type of the state change" }, "delegated_address": { "type": "string", "title": "Delegated Address", "description": "The delegated address" } }, "type": "object", "required": ["type", "delegated_address"], "title": "SetCodeAccountManagement" }, "routers__tron__response__TraceLabels": { "type": "string", "enum": ["GAS_FEE"], "title": "TraceLabels", "description": "Label assigned to a trace entry." }, "routers__tron__response__TransactionAction": { "type": "string", "enum": [ "mint", "stake", "swap", "native_transfer", "token_transfer", "approval", "set_code_account", "proxy_upgrade", "ownership_change" ], "title": "TransactionAction", "description": "Type of action performed in the transaction." }, "routers__tron__response__TransactionScanFeature": { "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__TransactionScanFeatureType" } ], "description": "Type/severity" }, "feature_id": { "type": "string", "title": "Feature Id", "description": "Feature name" }, "description": { "type": "string", "title": "Description", "description": "Textual description" }, "address": { "type": "string", "title": "Address", "description": "Address the feature refers to" }, "metadata": { "type": "object", "title": "Metadata", "description": "Metadata related to the feature" } }, "type": "object", "required": ["type", "feature_id", "description"], "title": "TransactionScanFeature" }, "routers__tron__response__TransactionScanFeatureType": { "type": "string", "enum": ["Malicious", "Warning", "Benign", "Info"], "title": "TransactionScanFeatureType", "description": "Security result of a transaction scan feature." }, "routers__tron__response__TransactionScanResponse": { "properties": { "validation": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__TransactionValidation" }, { "$ref": "#/components/schemas/routers__tron__response__TransactionValidationError" } ], "title": "Validation" }, "simulation": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__TransactionSimulation" }, { "$ref": "#/components/schemas/routers__tron__response__TransactionSimulationError" } ], "title": "Simulation" }, "events": { "items": { "$ref": "#/components/schemas/routers__tron__models__TransactionScanEvent" }, "type": "array", "title": "Events" }, "gas_estimation": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__models__TransactionScanGasEstimation" }, { "$ref": "#/components/schemas/routers__tron__models__TransactionScanGasEstimationError" } ], "title": "Gas Estimation" }, "user_operation_gas_estimation": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__models__UserOperationV6GasEstimation" }, { "$ref": "#/components/schemas/routers__tron__models__UserOperationV7GasEstimation" }, { "$ref": "#/components/schemas/routers__tron__models__TransactionScanGasEstimationError" } ], "title": "User Operation Gas Estimation" }, "features": { "type": "object", "title": "Features" }, "block": { "type": "string", "title": "Block" }, "chain": { "type": "string", "title": "Chain" }, "account_address": { "type": "string", "title": "Account Address" } }, "type": "object", "required": ["block", "chain"], "title": "TransactionScanResponse" }, "routers__tron__response__TransactionSimulation": { "properties": { "status": { "type": "string", "enum": ["Success"], "title": "Status", "description": "A string indicating if the simulation was successful or not." }, "assets_diffs": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC20AddressAssetDiff" }, { "$ref": "#/components/schemas/routers__tron__response__ERC721AddressAssetDiff" }, { "$ref": "#/components/schemas/routers__tron__response__ERC1155AddressAssetDiff" }, { "$ref": "#/components/schemas/routers__tron__response__NativeAddressAssetDiff" } ] }, "type": "array" }, "type": "object", "title": "Assets Diffs", "description": "dictionary describes the assets differences as a result of this transaction for every involved address" }, "transaction_actions": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__TransactionAction" }, { "type": "string" } ] }, "type": "array", "title": "Transaction Actions", "description": "Describes the nature of the transaction and what happened as part of it" }, "total_usd_diff": { "additionalProperties": { "$ref": "#/components/schemas/routers__tron__response__USDDiff" }, "type": "object", "title": "Total Usd Diff", "description": "dictionary represents the usd value each address gained / lost during this transaction" }, "exposures": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__ERC20AddressExposure" }, { "$ref": "#/components/schemas/routers__tron__response__ERC721AddressExposure" }, { "$ref": "#/components/schemas/routers__tron__response__ERC1155AddressExposure" } ] }, "type": "array" }, "type": "object", "title": "Exposures", "description": "dictionary describes the exposure differences as a result of this transaction for every involved address (as a result of any approval / setApproval / permit function)" }, "total_usd_exposure": { "additionalProperties": { "additionalProperties": { "type": "string" }, "type": "object" }, "type": "object", "title": "Total Usd Exposure", "description": "a dictionary representing the usd value each address is exposed to, split by spenders" }, "address_details": { "additionalProperties": { "$ref": "#/components/schemas/routers__tron__response__AddressDetails" }, "type": "object", "title": "Address Details", "description": "a dictionary including additional information about each relevant address in the transaction." }, "account_summary": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__AccountSummary" } ], "title": "Account Summary", "description": "Account summary for the account address. account address is determined implicit by the `from` field in the transaction request, or explicit by the account_address field in the request." }, "params": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__JsonRPCParams" } ], "title": "Params", "description": "The parameters of the transaction that was simulated." }, "contract_management": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__ProxyUpgradeManagement" }, { "$ref": "#/components/schemas/routers__tron__response__OwnershipChangeManagement" }, { "$ref": "#/components/schemas/routers__tron__response__ModulesChangeManagement" }, { "$ref": "#/components/schemas/routers__tron__response__SetCodeAccountManagement" }, { "$ref": "#/components/schemas/routers__tron__response__ContractCreation" } ] }, "type": "array" }, "type": "object", "title": "Contract Management", "description": "Describes the state differences as a result of this transaction for every involved address" }, "session_key": { "additionalProperties": { "items": { "$ref": "#/components/schemas/routers__tron__session_keys__SessionKey" }, "type": "array" }, "type": "object", "title": "Session Key", "description": "Session keys created in this transaction per address" }, "missing_balances": { "items": { "$ref": "#/components/schemas/routers__tron__response__MissingBalance" }, "type": "array", "title": "Missing Balances", "description": "Missing balances in the transaction" }, "simulation_run_count": { "type": "integer", "title": "Simulation Run Count", "description": "The number of times the simulation ran until success" } }, "type": "object", "required": [ "status", "assets_diffs", "transaction_actions", "total_usd_diff", "exposures", "total_usd_exposure", "address_details", "account_summary", "session_key" ], "title": "TransactionSimulation" }, "routers__tron__response__TransactionSimulationError": { "properties": { "status": { "type": "string", "enum": ["Error"], "title": "Status", "description": "A string indicating if the simulation was successful or not." }, "error": { "type": "string", "title": "Error", "description": "An error message if the simulation failed." }, "error_details": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__response__GeneralInsufficientFundsErrorDetails" }, { "$ref": "#/components/schemas/routers__tron__response__GeneralInvalidAddressErrorDetails" }, { "$ref": "#/components/schemas/routers__tron__response__GenericErrorDetails" }, { "$ref": "#/components/schemas/routers__tron__response__UnsupportedEIP712MessageErrorDetails" } ], "title": "Error Details", "description": "Error details if the simulation failed." }, "description": { "type": "string", "title": "Description", "description": "A string explaining why the transaction failed" } }, "type": "object", "required": ["status", "error", "description"], "title": "TransactionSimulationError" }, "routers__tron__response__TransactionValidation": { "properties": { "status": { "type": "string", "enum": ["Success"], "title": "Status", "description": "A string indicating if the simulation was successful or not." }, "result_type": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__response__TransactionValidationSuccessResultType" } ], "description": "A string indicating if the transaction is safe to sign or not." }, "description": { "type": "string", "title": "Description", "description": "A textual description that can be presented to the user about what this transaction is doing.", "default": "" }, "reason": { "type": "string", "title": "Reason", "description": "A textual description about the reasons the transaction was flagged with result_type.", "default": "" }, "classification": { "type": "string", "title": "Classification", "description": "A textual classification that can be presented to the user explaining the reason.", "default": "" }, "features": { "items": { "$ref": "#/components/schemas/routers__tron__response__TransactionScanFeature" }, "type": "array", "title": "Features", "description": "A list of features about this transaction explaining the validation." } }, "type": "object", "required": ["status", "result_type", "features"], "title": "TransactionValidation" }, "routers__tron__response__TransactionValidationError": { "properties": { "status": { "type": "string", "enum": ["Success"], "title": "Status", "description": "A string indicating if the simulation was successful or not." }, "result_type": { "type": "string", "enum": ["Error"], "title": "Result Type", "description": "A string indicating if the transaction is safe to sign or not." }, "description": { "type": "string", "enum": [""], "title": "Description", "description": "A textual description that can be presented to the user about what this transaction is doing." }, "reason": { "type": "string", "enum": [""], "title": "Reason", "description": "A textual description about the reasons the transaction was flagged with result_type." }, "classification": { "type": "string", "enum": [""], "title": "Classification", "description": "A textual classification that can be presented to the user explaining the reason." }, "features": { "items": { "$ref": "#/components/schemas/routers__tron__response__TransactionScanFeature" }, "type": "array", "title": "Features", "description": "A list of features about this transaction explaining the validation." }, "error": { "type": "string", "title": "Error", "description": "An error message if the validation failed." } }, "type": "object", "required": [ "status", "result_type", "description", "reason", "classification", "features", "error" ], "title": "TransactionValidationError" }, "routers__tron__response__TransactionValidationSuccessResultType": { "type": "string", "enum": ["Benign", "Warning", "Malicious"], "title": "TransactionValidationSuccessResultType", "description": "Result type returned when validation succeeds." }, "routers__tron__response__USDDiff": { "properties": { "in": { "type": "string", "title": "In" }, "out": { "type": "string", "title": "Out" }, "total": { "type": "string", "title": "Total" } }, "type": "object", "required": ["in", "out", "total"], "title": "USDDiff" }, "routers__tron__response__UnsupportedEIP712MessageErrorDetails": { "properties": { "code": { "type": "string", "enum": ["UNSUPPORTED_EIP712_MESSAGE"], "title": "Code", "description": "The type of the model" }, "category": { "type": "string", "const": "INVALID_INPUT", "title": "Category", "default": "INVALID_INPUT" }, "domain_name": { "type": "string", "title": "Domain Name", "description": "The domain name that is unsupported" }, "message_type": { "type": "string", "title": "Message Type", "description": "The message type that is unsupported" } }, "type": "object", "required": ["code", "domain_name", "message_type"], "title": "UnsupportedEIP712MessageErrorDetails" }, "routers__tron__session_keys__ArgumentCondition": { "properties": { "index": { "type": "integer", "title": "Index" }, "condition": { "$ref": "#/components/schemas/routers__tron__session_keys__Condition" }, "value": { "type": "string", "title": "Value" } }, "type": "object", "required": ["index", "condition", "value"], "title": "ArgumentCondition" }, "routers__tron__session_keys__CallPolicy": { "properties": { "type": { "type": "string", "enum": ["CALL_POLICY"], "title": "Type", "default": "CALL_POLICY" }, "to_address": { "type": "string", "title": "To Address" }, "method": { "type": "string", "title": "Method" }, "value_limit": { "type": "string", "title": "Value Limit" }, "args": { "items": { "$ref": "#/components/schemas/routers__tron__session_keys__ArgumentCondition" }, "type": "array", "title": "Args" } }, "type": "object", "required": ["to_address"], "title": "CallPolicy" }, "routers__tron__session_keys__Condition": { "type": "string", "enum": [ "UNCONSTRAINED", "EQUAL", "GREATER", "LESS", "GREATER_OR_EQUAL", "LESS_OR_EQUAL", "NOT_EQUAL" ], "title": "Condition", "description": "Comparison operator used to evaluate an argument/value against a policy constraint." }, "routers__tron__session_keys__ExpirationPolicy": { "properties": { "type": { "type": "string", "enum": ["EXPIRATION_POLICY"], "title": "Type", "default": "EXPIRATION_POLICY" }, "start_time": { "type": "string", "format": "date-time", "title": "Start Time" }, "end_time": { "type": "string", "format": "date-time", "title": "End Time" } }, "type": "object", "title": "ExpirationPolicy" }, "routers__tron__session_keys__GasPolicy": { "properties": { "type": { "type": "string", "enum": ["GAS_POLICY"], "title": "Type", "default": "GAS_POLICY" }, "value_limit": { "type": "string", "title": "Value Limit" } }, "type": "object", "required": ["value_limit"], "title": "GasPolicy" }, "routers__tron__session_keys__SessionKey": { "properties": { "key": { "type": "string", "title": "Key" }, "signer": { "type": "string", "title": "Signer" }, "policies": { "items": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__session_keys__TransferPolicy" }, { "$ref": "#/components/schemas/routers__tron__session_keys__CallPolicy" }, { "$ref": "#/components/schemas/routers__tron__session_keys__GasPolicy" }, { "$ref": "#/components/schemas/routers__tron__session_keys__ExpirationPolicy" } ] }, "type": "array", "title": "Policies" } }, "type": "object", "required": ["key", "signer", "policies"], "title": "SessionKey" }, "routers__tron__session_keys__TransferPolicy": { "properties": { "type": { "type": "string", "enum": ["TRANSFER_POLICY"], "title": "Type", "default": "TRANSFER_POLICY" }, "asset_details": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__token_details__NativeAssetDetails" }, { "$ref": "#/components/schemas/routers__tron__token_details__ERC20TokenDetails" } ], "title": "Asset Details" }, "value_limit": { "type": "string", "title": "Value Limit" }, "recipient": { "type": "string", "title": "Recipient" } }, "type": "object", "required": ["asset_details"], "title": "TransferPolicy" }, "routers__tron__token_details__ERC1155TokenDetails": { "properties": { "name": { "type": "string", "title": "Name", "description": "string represents the name of the asset" }, "symbol": { "type": "string", "title": "Symbol", "description": "asset's symbol name" }, "address": { "type": "string", "title": "Address", "description": "address of the token" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "url of the token logo" }, "type": { "type": "string", "enum": ["ERC1155"], "title": "Type", "description": "asset type." } }, "type": "object", "required": ["address", "type"], "title": "ERC1155TokenDetails" }, "routers__tron__token_details__ERC20TokenDetails": { "properties": { "name": { "type": "string", "title": "Name", "description": "string represents the name of the asset" }, "symbol": { "type": "string", "title": "Symbol", "description": "asset's symbol name" }, "address": { "type": "string", "title": "Address", "description": "address of the token" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "url of the token logo" }, "type": { "type": "string", "enum": ["ERC20"], "title": "Type", "description": "asset type." }, "decimals": { "type": "integer", "title": "Decimals", "description": "asset's decimals" } }, "type": "object", "required": ["address", "type", "decimals"], "title": "ERC20TokenDetails" }, "routers__tron__token_details__ERC721TokenDetails": { "properties": { "name": { "type": "string", "title": "Name", "description": "string represents the name of the asset" }, "symbol": { "type": "string", "title": "Symbol", "description": "asset's symbol name" }, "address": { "type": "string", "title": "Address", "description": "address of the token" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "url of the token logo" }, "type": { "type": "string", "enum": ["ERC721"], "title": "Type", "description": "asset type." } }, "type": "object", "required": ["address", "type"], "title": "ERC721TokenDetails" }, "routers__tron__token_details__NONERCTokenDetails": { "properties": { "name": { "type": "string", "title": "Name", "description": "string represents the name of the asset" }, "symbol": { "type": "string", "title": "Symbol", "description": "asset's symbol name" }, "address": { "type": "string", "title": "Address", "description": "address of the token" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "url of the token logo" }, "type": { "type": "string", "enum": ["NONERC"], "title": "Type", "description": "asset type." } }, "type": "object", "required": ["address", "type"], "title": "NONERCTokenDetails" }, "routers__tron__token_details__NativeAssetDetails": { "properties": { "type": { "type": "string", "enum": ["NATIVE"], "title": "Type", "description": "asset type." }, "name": { "type": "string", "title": "Name", "description": "string represents the name of the asset" }, "symbol": { "type": "string", "title": "Symbol", "description": "asset's symbol name" }, "chain_name": { "type": "string", "title": "Chain Name" }, "chain_id": { "type": "integer", "title": "Chain Id" }, "decimals": { "type": "integer", "title": "Decimals" }, "logo_url": { "type": "string", "title": "Logo Url" } }, "type": "object", "required": ["type", "chain_name", "chain_id", "decimals", "logo_url"], "title": "NativeAssetDetails" }, "routers__tron__transaction__models__Transaction": { "properties": { "from": { "type": "string", "pattern": "^T[1-9A-HJ-NP-Za-km-z]{33}$", "title": "From", "description": "The source address of the transaction in Tron base58 format" }, "to": { "type": "string", "pattern": "^T[1-9A-HJ-NP-Za-km-z]{33}$", "title": "To", "description": "The destination address of the transaction in Tron base58 format" }, "data": { "type": "string", "title": "Data", "description": "The encoded call data of the transaction in hex string format", "default": "0x" }, "value": { "type": "string", "title": "Value", "description": "The value of the transaction in Wei in hex string format", "default": "0x0" } }, "type": "object", "required": ["from"], "title": "Transaction" }, "routers__tron__transaction__models__TransactionRequest": { "properties": { "options": { "items": { "$ref": "#/components/schemas/routers__tron__models__ValidationOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "description": "List of one or more of options for the desired output. \"simulation\" - include simulation output in your response. \"validation\" - include security validation of the transaction in your response. \"gas_estimation\" - include gas estimation result in your response. Default is [\"validation\"]", "default": ["validation"] }, "metadata": { "anyOf": [ { "$ref": "#/components/schemas/routers__tron__models__MetadataNonDapp" }, { "$ref": "#/components/schemas/routers__tron__models__MetadataDapp" } ], "title": "Metadata", "description": "Additional context for the scan (e.g., dapp URL/domain, integration source). Used to enrich results and reduce false positives/negatives." }, "state_override": { "additionalProperties": { "$ref": "#/components/schemas/routers__tron__models__AddressStateOverride" }, "type": "object", "title": "State Override", "description": "Override the state of the chain. This is useful for testing purposes." }, "simulate_with_estimated_gas": { "type": "boolean", "title": "Simulate With Estimated Gas", "description": "Simulate transactions using gas estimation result. This requires \"gas_estimation\" option to be enabled.", "default": false }, "account_address": { "type": "string", "pattern": "^T[1-9A-HJ-NP-Za-km-z]{33}$", "title": "Account Address", "description": "The address to relate the transaction to in Tron base58 format. Account address determines in which perspective the transaction is simulated and validated." }, "data": { "allOf": [ { "$ref": "#/components/schemas/routers__tron__transaction__models__Transaction" } ], "title": "Data", "description": "Transaction parameters" } }, "type": "object", "required": ["metadata", "account_address", "data"], "title": "TransactionRequest" }, "StellarAccountSetOptionsOwnershipDiffSchema": { "properties": { "type": { "type": "string", "const": "SET_OPTIONS", "title": "Type", "default": "SET_OPTIONS" }, "pre_signers": { "items": { "type": "string" }, "type": "array", "title": "Pre Signers", "description": "List of public keys that can sign on behalf of the account pre-transaction" }, "post_signers": { "items": { "type": "string" }, "type": "array", "title": "Post Signers", "description": "List of public keys that can sign on behalf of the account post-transaction" } }, "type": "object", "required": ["pre_signers", "post_signers"], "title": "Account Ownership Diff" }, "StellarAddressCreateRequest": { "properties": { "address": { "type": "string", "title": "Address" }, "alias_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias Name" }, "linked_service": { "anyOf": [ { "$ref": "#/components/schemas/StellarLinkedServiceRequest" }, { "type": "null" } ] } }, "type": "object", "required": ["address"], "title": "AddressCreateRequest" }, "StellarAddressDetailsBaseSchema": { "properties": { "account_address": { "title": "Account Address", "description": "Encoded public key of the account" }, "description": { "type": "string", "title": "Description", "description": "Description of the account", "nullable": true } }, "type": "object", "required": ["account_address"], "title": "Address Details" }, "StellarAddressFeatures": { "properties": { "result_type": { "type": "string", "title": "Result Type" }, "address": { "type": "string", "title": "Address" }, "chain": { "type": "string", "title": "Chain" }, "features": { "items": { "$ref": "#/components/schemas/StellarValidationFeatureResult", "docs_api_name": "ValidationFeatureResult", "title": "Validation Feature" }, "type": "array", "title": "Features" } }, "type": "object", "required": ["result_type", "address", "chain", "features"], "title": "AddressFeatures" }, "StellarAddressRelationshipRequest": { "properties": { "relationship": { "$ref": "#/components/schemas/StellarRelationshipType" }, "related_address": { "type": "string", "title": "Related Address" }, "entity_type": { "type": "string", "const": "address", "title": "Entity Type" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "type": "object", "required": ["relationship", "related_address", "entity_type"], "title": "AddressRelationshipRequest" }, "StellarAddressRelationshipResponse": { "properties": { "relationship": { "type": "string", "title": "Relationship" }, "entity_type": { "type": "string", "title": "Entity Type" }, "entity": { "type": "string", "title": "Entity" }, "timestamp": { "type": "integer", "title": "Timestamp" }, "chain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain" } }, "type": "object", "required": ["relationship", "entity_type", "entity", "timestamp"], "title": "AddressRelationshipResponse" }, "StellarAddressResponse": { "properties": { "address": { "type": "string", "title": "Address" }, "risk_level": { "type": "string", "title": "Risk Level" }, "risk_labels": { "items": { "type": "string" }, "type": "array", "title": "Risk Labels" }, "alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias" }, "linked_service": { "anyOf": [ { "$ref": "#/components/schemas/StellarLinkedServiceResponse" }, { "type": "null" } ] }, "labels": { "items": { "$ref": "#/components/schemas/StellarLabelResponse" }, "type": "array", "title": "Labels", "default": [] }, "relationships": { "anyOf": [ { "items": { "$ref": "#/components/schemas/StellarAddressRelationshipResponse" }, "type": "array" }, { "type": "null" } ], "title": "Relationships" } }, "type": "object", "required": ["address", "risk_level", "risk_labels"], "title": "AddressResponse" }, "StellarAddressScanRequest": { "properties": { "address": { "type": "string", "title": "Address" } }, "type": "object", "required": ["address"], "title": "AddressScanRequest" }, "StellarAppealRequestId": { "properties": { "type": { "type": "string", "const": "request_id", "title": "Type", "default": "request_id" }, "id": { "type": "string", "title": "Id" } }, "type": "object", "required": ["id"], "title": "AppealRequestId" }, "StellarAppealTypes": { "type": "string", "enum": [ "should_be_malicious", "should_be_benign", "wrong_simulation_result" ], "title": "AppealTypes" }, "StellarAssetContractDetailsSchema": { "properties": { "type": { "type": "string", "const": "CONTRACT", "title": "Type", "description": "Type of the asset (`CONTRACT`)", "default": "CONTRACT" }, "address": { "type": "string", "title": "Address", "description": "Address of the asset's contract" }, "name": { "type": "string", "title": "Name", "description": "Asset code" }, "symbol": { "type": "string", "title": "Symbol", "description": "Asset symbol" } }, "type": "object", "required": ["address", "name", "symbol"], "title": "Contract-backed Asset Details" }, "StellarAssetTransferDetailsSchema": { "properties": { "usd_price": { "type": "number", "title": "Usd Price", "description": "USD price of the asset", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the transfer", "nullable": true }, "value": { "type": "number", "title": "Value", "description": "Value of the transfer" }, "raw_value": { "type": "integer", "title": "Raw Value", "description": "Raw value of the transfer" } }, "type": "object", "required": ["value", "raw_value"], "title": "Asset Transfer Details" }, "StellarChain": { "type": "string", "enum": ["pubnet", "futurenet", "testnet"], "title": "Chain" }, "StellarChainIdsRequest": { "properties": { "chains": { "items": { "type": "string" }, "type": "array", "title": "Chains" } }, "type": "object", "required": ["chains"], "title": "ChainIdsRequest" }, "StellarClassificationResponseSchema": { "properties": { "classification": { "type": "string", "title": "Classification" } }, "type": "object", "title": "ClassificationResponseSchema" }, "StellarCreateLabelRequest": { "properties": { "label_name": { "$ref": "#/components/schemas/StellarLabelName" }, "origin": { "anyOf": [ { "$ref": "#/components/schemas/StellarOriginEnum" }, { "type": "null" } ], "default": "blockaid" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" } }, "type": "object", "required": ["label_name"], "title": "CreateLabelRequest" }, "StellarDomainRelationshipRequest": { "properties": { "relationship": { "$ref": "#/components/schemas/StellarRelationshipType" }, "related_domain": { "type": "string", "title": "Related Domain" }, "entity_type": { "type": "string", "const": "domain", "title": "Entity Type" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "type": "object", "required": ["relationship", "related_domain", "entity_type"], "title": "DomainRelationshipRequest" }, "StellarERC20DiffSchema": { "properties": { "usd_price": { "type": "number", "title": "Usd Price", "description": "USD price of the asset", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the transfer", "nullable": true }, "value": { "type": "string", "title": "Value", "description": "Value of the transfer" }, "raw_value": { "type": "integer", "title": "Raw Value", "description": "Raw value of the transfer" } }, "type": "object", "required": ["value", "raw_value"], "title": "ERC20 Asset Transfer Details" }, "StellarEmptyModel": { "properties": {}, "type": "object", "title": "EmptyModel" }, "StellarHTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/StellarValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "StellarInAppRequestMetadata": { "properties": { "type": { "type": "string", "const": "in_app", "title": "Type", "description": "Metadata for in-app requests", "default": "in_app" }, "non_dapp": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Non Dapp", "description": "Indicates that the transaction was not initiated by a dapp. Use false when the transaction is from a dapp.", "default": true } }, "type": "object", "title": "In-App Request Metadata" }, "StellarInternalValidationFeatureType": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Info"], "title": "InternalValidationFeatureType" }, "StellarLabelName": { "type": "string", "enum": [ "custom_malicious", "wallet_drainer", "ofac_address", "malicious_airdrop_operator", "address_poisoning_operator", "rugpull_operator", "address_poisoning_impersonator_wallet", "exploit_contract", "exploiter", "exploit_contract_deployer", "compromised", "malicious_token_deployer", "malicious_implementation", "malicious_contract_deployer", "market_manipulator", "deprecated", "custom_trusted", "custom_trusted_for_spending_funds", "custom_trusted_for_receiving_funds", "verified_contract", "fresh", "empty", "unverified_contract", "infected", "smart_account", "erc4337", "safe_smart_account", "argent_wallet_contract", "eip7702_smart_account", "contract", "wallet", "vault", "liquidity_pool", "staking_pool", "token", "eip4626", "proxy", "implementation", "safe_proxy", "beacon_proxy", "transparent_upgradeable_proxy", "erc1967", "minimal_proxy", "uups_proxy", "create2_beacon_proxy", "proxy_admin", "eip2535", "diamond", "facet", "erc20", "erc20_extensions", "erc721", "erc721_extensions", "erc1155", "erc1155_extensions", "eoa", "ownable", "rbac", "investment_scam", "package", "wallet_customer", "paid_by_malicious_address", "pig_butchering_disputed", "pig_butchering_investment_scam_site", "pig_butchering_direct_exposure_to_disputed", "pig_butchering_direct_exposure_to_investment_scam_site", "pig_butchering_high_exposure_to_disputed", "pig_butchering_high_exposure_to_investment_scam_site", "pig_butchering_behavior", "pig_butchering_suspicious" ], "title": "LabelName" }, "StellarLabelResponse": { "properties": { "origin": { "type": "string", "title": "Origin" }, "reporting_organization": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reporting Organization" }, "date_added": { "type": "string", "title": "Date Added" }, "is_public": { "type": "boolean", "title": "Is Public" }, "label": { "type": "string", "title": "Label" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "severity": { "$ref": "#/components/schemas/StellarRiskLevel" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": ["origin", "date_added", "is_public", "label", "severity"], "title": "LabelResponse" }, "StellarLabelWithAddressRequest": { "properties": { "label_name": { "$ref": "#/components/schemas/StellarLabelName" }, "origin": { "anyOf": [ { "$ref": "#/components/schemas/StellarOriginEnum" }, { "type": "null" } ], "default": "blockaid" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "address": { "type": "string", "title": "Address" } }, "type": "object", "required": ["label_name", "address"], "title": "LabelWithAddressRequest" }, "StellarLegacyAssetDetailsSchema": { "properties": { "type": { "type": "string", "const": "ASSET", "title": "Type", "description": "Type of the asset (`ASSET`)", "default": "ASSET" }, "code": { "type": "string", "title": "Code", "description": "Asset code" }, "issuer": { "type": "string", "title": "Issuer", "description": "Asset issuer address" }, "org_name": { "type": "string", "title": "Org Name", "description": "Organization name" }, "org_url": { "type": "string", "title": "Org Url", "description": "Organization URL" } }, "type": "object", "required": ["code", "issuer", "org_name", "org_url"], "title": "Legacy Asset Details" }, "StellarLinkedServiceRequest": { "properties": { "service_name": { "type": "string", "title": "Service Name" }, "service_type": { "type": "string", "title": "Service Type" }, "address_role_in_service": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Role In Service" } }, "type": "object", "required": ["service_name", "service_type"], "title": "LinkedServiceRequest" }, "StellarLinkedServiceResponse": { "properties": { "service_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Service Name" }, "service_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Service Type" }, "address_role_in_service": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Role In Service" } }, "type": "object", "required": ["service_name", "service_type"], "title": "LinkedServiceResponse" }, "StellarMaliciousFederatedAddressRequestSchema": { "properties": { "verdict": { "$ref": "#/components/schemas/StellarVerdictReason", "description": "List of verdicts to mark as" }, "campaign": { "type": "string", "title": "Campaign" }, "source": { "type": "string", "title": "Source" }, "reason": { "type": "string", "title": "Reason" }, "chain": { "$ref": "#/components/schemas/StellarChain", "default": "pubnet" }, "federated_address": { "type": "string", "minLength": 3, "title": "Federated Address" }, "memo": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Memo" } }, "type": "object", "required": [ "verdict", "campaign", "source", "reason", "federated_address" ], "title": "MaliciousFederatedAddressRequestSchema" }, "StellarMaliciousTokenRequestSchema": { "properties": { "verdict": { "$ref": "#/components/schemas/StellarVerdictReason", "description": "List of verdicts to mark as" }, "campaign": { "type": "string", "title": "Campaign" }, "source": { "type": "string", "title": "Source" }, "reason": { "type": "string", "title": "Reason" }, "chain": { "$ref": "#/components/schemas/StellarChain", "default": "pubnet" }, "code": { "type": "string", "minLength": 1, "title": "Code" }, "issuer": { "type": "string", "minLength": 1, "title": "Issuer" } }, "type": "object", "required": [ "verdict", "campaign", "source", "reason", "code", "issuer" ], "title": "MaliciousTokenRequestSchema" }, "StellarMaliciousXdrRequestSchema": { "properties": { "verdict": { "$ref": "#/components/schemas/StellarVerdictReason", "description": "List of verdicts to mark as" }, "campaign": { "type": "string", "title": "Campaign" }, "source": { "type": "string", "title": "Source" }, "reason": { "type": "string", "title": "Reason" }, "chain": { "$ref": "#/components/schemas/StellarChain", "default": "pubnet" }, "xdr": { "type": "string", "title": "Xdr" } }, "type": "object", "required": ["verdict", "campaign", "source", "reason", "xdr"], "title": "MaliciousXdrRequestSchema" }, "StellarNativeAssetDetailsSchema": { "properties": { "type": { "type": "string", "const": "NATIVE", "title": "Type", "description": "Type of the asset (`NATIVE`)", "default": "NATIVE" }, "code": { "type": "string", "const": "XLM", "title": "Code", "description": "Asset code", "default": "XLM" } }, "type": "object", "title": "Native Asset Details" }, "StellarOptions": { "type": "string", "enum": ["validation", "simulation"], "title": "Options" }, "StellarOriginEnum": { "type": "string", "enum": ["blockaid", "user"], "title": "OriginEnum" }, "StellarPostTransactionRequestSchemaType_Annotated_Chain__WrapValidator__FieldInfo_annotation_NoneType__required_True__title__Chain___description__A_CAIP-2_chain_ID_or_a_Stellar_network_name____Annotated_set_Options___FieldInfo_annotation_NoneType__required_False_validation_simulation__title__Options__simulation___metadata__MinLen_min_length_1_____Annotated_str__StringConstraints__": { "properties": { "chain": { "$ref": "#/components/schemas/StellarChain", "description": "A CAIP-2 chain ID or a Stellar network name" }, "options": { "items": { "$ref": "#/components/schemas/StellarOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "title": "Options", "description": "List of options to include in the response\n- `Options.validation`: Include Options.validation output in the response\n\n- `Options.simulation`: Include Options.simulation output in the response\n", "default": ["validation", "simulation"] }, "transaction_hash": { "type": "string", "maxLength": 64, "minLength": 64, "title": "Transaction Hash" } }, "type": "object", "required": ["chain", "transaction_hash"], "title": "Post Transaction Request" }, "StellarRelationshipType": { "type": "string", "enum": ["created_by", "first_funded_by", "paid_by", "related_to"], "title": "RelationshipType" }, "StellarRiskLevel": { "type": "string", "enum": ["low", "medium", "high", "severe"], "title": "RiskLevel" }, "StellarSimulationErrorSchema": { "properties": { "status": { "type": "string", "const": "Error", "title": "Status" }, "error": { "type": "string", "title": "Error", "description": "Error message" } }, "type": "object", "required": ["status", "error"], "title": "Simulation Error" }, "StellarSingleAssetExposureSchema": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/StellarERC20DiffSchema" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the exposure", "nullable": true }, "approval": { "type": "number", "title": "Approval", "description": "Approval value of the ERC20 token" }, "expiration": { "type": "string", "format": "date-time", "title": "Expiration", "description": "Expiration date of the approval", "nullable": true } }, "type": "object", "required": ["exposure", "approval"], "title": "Asset Exposure" }, "StellarStellarTokenSpotPriceResponseSchema": { "properties": { "address": { "type": "string", "title": "Address", "description": "Token address" }, "price_usd": { "type": "number", "title": "Price Usd", "description": "USD price of the token", "nullable": true }, "total_reserve_usd": { "type": "number", "title": "Total Reserve Usd", "description": "Total coin reserves value in USD", "nullable": true }, "volume_24h_usd": { "type": "number", "title": "Volume 24H Usd", "description": "24 hours trade volume in USD", "nullable": true } }, "type": "object", "required": ["address", "price_usd", "total_reserve_usd"], "title": "StellarTokenSpotPriceResponseSchema" }, "StellarTotalUsdDiffSchema": { "properties": { "in": { "type": "number", "title": "In", "description": "Total incoming USD transfers" }, "out": { "type": "number", "title": "Out", "description": "Total outgoing USD transfers" }, "total": { "type": "number", "title": "Total", "description": "Total USD transfers" } }, "type": "object", "required": ["in", "out"], "title": "Total USD Diff" }, "StellarValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError" }, "StellarValidationErrorSchema": { "properties": { "status": { "type": "string", "const": "Error", "title": "Status" }, "error": { "type": "string", "title": "Error", "description": "Error message" } }, "type": "object", "required": ["status", "error"], "title": "Validation Error" }, "StellarValidationFeatureType": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Info"], "title": "ValidationFeatureType" }, "StellarVerdict": { "type": "string", "enum": ["Benign", "Warning", "Malicious"], "title": "Verdict" }, "StellarVerdictReason": { "type": "string", "enum": [ "", "known_attacker", "known_fraudulent_asset", "malicious_memo", "unfair_trade", "transfer_farming", "native_ownership_change", "other" ], "title": "VerdictReason" }, "StellarWalletRequestMetadata": { "properties": { "type": { "type": "string", "const": "wallet", "title": "Type", "description": "Metadata for wallet requests" }, "url": { "type": "string", "title": "Url", "description": "URL of the dApp originating the transaction" }, "non_dapp": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Non Dapp", "description": "Indicates that the transaction was not initiated by a dapp. Use false when the transaction is from a dapp.", "default": false } }, "type": "object", "required": ["type", "url"], "title": "Wallet Request Metadata" }, "StellarValidationFeature": { "properties": { "type": { "$ref": "#/components/schemas/StellarValidationFeatureType", "description": "Feature Classification", "title": "type" }, "feature_id": { "type": "string", "title": "feature_id", "description": "" }, "description": { "type": "string", "title": "Description", "description": "Textual description" }, "address": { "type": "string", "title": "Address", "description": "Address the feature refers to" } }, "type": "object", "required": ["type", "feature_id", "description", "address"], "title": "ValidationFeatureSchemaType[Annotated[Union[MuxedAccount, ContractAddress], SkipValidation, PlainSerializer, GetPydanticSchema]]" }, "StellarValidationResult": { "properties": { "status": { "type": "string", "const": "Success", "title": "Status" }, "result_type": { "$ref": "#/components/schemas/StellarVerdict", "description": "Verdict of the validation", "title": "Result Verdict" }, "description": { "type": "string", "title": "Description", "description": "A textual description about the validation result" }, "reason": { "type": "string", "title": "Reason", "description": "A textual description about the reasons the transaction was flagged with result_type" }, "classification": { "type": "string", "title": "Classification", "description": "A textual classification that can be presented to the user explaining the reason." }, "features": { "items": { "$ref": "#/components/schemas/StellarValidationFeature", "docs_api_name": "ValidationFeature", "title": "Feature" }, "type": "array", "title": "Features" } }, "type": "object", "required": [ "status", "result_type", "description", "reason", "classification", "features" ], "title": "Validation Result" }, "StellarAccountSummary": { "properties": { "account_assets_diffs": { "items": { "anyOf": [ { "$ref": "#/components/schemas/StellarLegacyAssetDiff", "docs_api_name": "LegacyAssetDiff", "title": "Legacy Asset Diff" }, { "$ref": "#/components/schemas/StellarNativeAssetDiff", "docs_api_name": "NativeAssetDiff", "title": "Native Asset Diff" }, { "$ref": "#/components/schemas/StellarContractAssetDiff", "docs_api_name": "ContractAssetDiff", "title": "Contract-backed Asset Diff" } ] }, "type": "array", "title": "Account Assets Diffs", "description": "Assets diffs of the requested account address" }, "account_exposures": { "items": { "anyOf": [ { "$ref": "#/components/schemas/StellarLegacyAssetExposure", "docs_api_name": "LegacyAssetExposure", "title": "Legacy Asset Exposure" }, { "$ref": "#/components/schemas/StellarNativeAssetExposure", "docs_api_name": "NativeAssetExposure", "title": "Native Asset Exposure" } ] }, "type": "array", "title": "Account Exposures", "description": "Exposures made by the requested account address" }, "account_ownerships_diff": { "items": { "$ref": "#/components/schemas/StellarAccountSetOptionsOwnershipDiffSchema" }, "type": "array", "title": "Account Ownership Diffs", "description": "Ownership diffs of the requested account address" }, "total_usd_diff": { "$ref": "#/components/schemas/StellarTotalUsdDiffSchema", "description": "Total USD diff for the requested account address" }, "total_usd_exposure": { "additionalProperties": { "type": "number" }, "type": "object", "title": "Total USD Exposure", "description": "Total USD exposure for each of the spender addresses during the transaction" } }, "type": "object", "required": [ "account_exposures", "account_ownerships_diff", "total_usd_diff" ], "title": "Account Summary" }, "StellarNativeAssetExposure": { "properties": { "asset": { "$ref": "#/components/schemas/StellarNativeAssetDetailsSchema" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/StellarSingleAssetExposureSchema" }, "type": "object", "title": "Spenders", "description": "Mapping between the spender address and the exposure of the asset" } }, "type": "object", "required": ["asset"], "title": "AddressAssetExposureSchemaType[Annotated[Union[MuxedAccount, ContractAddress], SkipValidation, PlainSerializer, GetPydanticSchema], NativeAssetDetailsSchema, SingleAssetExposureSchema]" }, "StellarLegacyAssetExposure": { "properties": { "asset": { "$ref": "#/components/schemas/StellarLegacyAssetDetailsSchema" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/StellarSingleAssetExposureSchema" }, "type": "object", "title": "Spenders", "description": "Mapping between the spender address and the exposure of the asset" } }, "type": "object", "required": ["asset"], "title": "AddressAssetExposureSchemaType[Annotated[Union[MuxedAccount, ContractAddress], SkipValidation, PlainSerializer, GetPydanticSchema], LegacyAssetDetailsSchema, SingleAssetExposureSchema]" }, "StellarContractAssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/StellarAssetContractDetailsSchema" }, "in": { "$ref": "#/components/schemas/StellarAssetTransferDetailsSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/StellarAssetTransferDetailsSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[AssetContractDetailsSchema, AssetTransferDetailsSchema]" }, "StellarNativeAssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/StellarNativeAssetDetailsSchema" }, "in": { "$ref": "#/components/schemas/StellarAssetTransferDetailsSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/StellarAssetTransferDetailsSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[NativeAssetDetailsSchema, AssetTransferDetailsSchema]" }, "StellarLegacyAssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/StellarLegacyAssetDetailsSchema" }, "in": { "$ref": "#/components/schemas/StellarAssetTransferDetailsSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/StellarAssetTransferDetailsSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[LegacyAssetDetailsSchema, AssetTransferDetailsSchema]" }, "StellarValidationResponse": { "anyOf": [ { "$ref": "#/components/schemas/StellarValidationResult", "docs_api_name": "ValidationResult", "title": "Validation Successful Result" }, { "$ref": "#/components/schemas/StellarValidationErrorSchema" } ], "title": "ValidationResponseSchemaType[Annotated[Union[MuxedAccount, ContractAddress], SkipValidation, PlainSerializer, GetPydanticSchema]]" }, "StellarSimulationResult": { "properties": { "status": { "type": "string", "const": "Success", "title": "Status" }, "assets_diffs": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/StellarLegacyAssetDiff", "docs_api_name": "LegacyAssetDiff", "title": "Legacy Asset Diff" }, { "$ref": "#/components/schemas/StellarNativeAssetDiff", "docs_api_name": "NativeAssetDiff", "title": "Native Asset Diff" }, { "$ref": "#/components/schemas/StellarContractAssetDiff", "docs_api_name": "ContractAssetDiff", "title": "Contract-backed Asset Diff" } ] }, "type": "array", "description": "Assets diff of an account address" }, "type": "object", "title": "Assets Diffs", "description": "Mapping between the address of an account to the assets diff during the transaction" }, "exposures": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/StellarLegacyAssetExposure", "docs_api_name": "LegacyAssetExposure", "title": "Legacy Asset Exposure" }, { "$ref": "#/components/schemas/StellarNativeAssetExposure", "docs_api_name": "NativeAssetExposure", "title": "Native Asset Exposure" } ] }, "type": "array" }, "type": "object", "title": "Exposures", "description": "Mapping between the address of an account to the exposure of the assets during the transaction" }, "assets_ownership_diff": { "additionalProperties": { "items": { "$ref": "#/components/schemas/StellarAccountSetOptionsOwnershipDiffSchema" }, "type": "array" }, "type": "object", "title": "Ownership Diffs", "description": "Ownership diffs of the account addresses" }, "address_details": { "items": { "$ref": "#/components/schemas/StellarAddressDetailsBaseSchema" }, "type": "array", "title": "Address Details", "description": "Details of addresses involved in the transaction" }, "account_summary": { "$ref": "#/components/schemas/StellarAccountSummary", "description": "Summary of the actions and asset transfers that were made by the requested account address", "docs_api_name": "AccountSummary" } }, "type": "object", "required": ["status", "assets_ownership_diff", "account_summary"], "title": "Simulation Result" }, "StellarTransactionScanRequest": { "properties": { "chain": { "$ref": "#/components/schemas/StellarChain", "description": "A CAIP-2 chain ID or a Stellar network name" }, "options": { "items": { "$ref": "#/components/schemas/StellarOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "title": "Options", "description": "List of options to include in the response\n- `Options.validation`: Include Options.validation output in the response\n\n- `Options.simulation`: Include Options.simulation output in the response\n", "default": ["validation", "simulation"] }, "account_address": { "type": "string", "title": "Account Address" }, "transaction": { "type": "string", "title": "Transaction" }, "metadata": { "anyOf": [ { "$ref": "#/components/schemas/StellarWalletRequestMetadata" }, { "$ref": "#/components/schemas/StellarInAppRequestMetadata" } ], "title": "Metadata", "description": "Metadata" }, "transaction_hints": { "$ref": "#/components/schemas/TransactionHints", "title": "Transaction Hints", "description": "Optional customer-supplied hints about transaction intent that cannot be inferred from on-chain simulation." } }, "type": "object", "required": ["chain", "account_address", "transaction", "metadata"], "title": "Request" }, "StellarAppealTransactionDataReport": { "properties": { "type": { "type": "string", "const": "params", "title": "Type", "default": "params" }, "params": { "$ref": "#/components/schemas/StellarTransactionScanRequest", "docs_api_name": "TransactionScanRequest", "title": "Single Transaction Request" } }, "type": "object", "required": ["params"], "title": "Appeal Transaction Data Report" }, "StellarValidationFeatureResult": { "properties": { "type": { "$ref": "#/components/schemas/StellarInternalValidationFeatureType" }, "feature_id": { "type": "string", "title": "Feature Id" }, "description": { "type": "string", "title": "Description" }, "address": { "type": "string", "title": "Address" } }, "type": "object", "required": ["type", "feature_id", "description", "address"], "title": "ValidationFeature" }, "StellarReportTransactionRequest": { "properties": { "event": { "$ref": "#/components/schemas/StellarAppealTypes" }, "report": { "anyOf": [ { "$ref": "#/components/schemas/StellarAppealRequestId" }, { "$ref": "#/components/schemas/StellarAppealTransactionDataReport", "docs_api_name": "AppealTransactionDataReport" } ], "title": "Report" }, "details": { "type": "string", "title": "Details" } }, "type": "object", "required": ["event", "report", "details"], "title": "AppealRequest[Annotated[RequestSchemaType[Annotated[Chain, WrapValidator, FieldInfo(annotation=NoneType, required=True, title='Chain', description='A CAIP-2 chain ID or a Stellar network name')], Annotated[MuxedAccount, SkipValidation, PlainSerializer, GetPydanticSchema], Annotated[TransactionEnvelope, PlainSerializer, GetPydanticSchema], Annotated[set[Options], FieldInfo(annotation=NoneType, required=False, default={, }, title='Options', description='List of options to include in the response\\n- `Options.validation`: Include Options.validation output in the response\\n\\n- `Options.simulation`: Include Options.simulation output in the response\\n', metadata=[MinLen(min_length=1)])]], FieldInfo(annotation=NoneType, required=True, title='Single Transaction Request', json_schema_extra={'docs_api_name': 'TransactionScanRequest'})]]" }, "StellarTransactionScanResponse": { "properties": { "simulation": { "anyOf": [ { "$ref": "#/components/schemas/StellarSimulationResult" }, { "$ref": "#/components/schemas/StellarSimulationErrorSchema" } ], "title": "Simulation", "description": "Simulation result; Only present if simulation option is included in the request", "nullable": true }, "validation": { "$ref": "#/components/schemas/StellarValidationResponse", "description": "Validation result; Only present if validation option is included in the request", "docs_api_name": "ValidationResponse", "nullable": true, "title": "Validation" } }, "type": "object", "title": "Response" }, "CosmosAccountSummarySchema": { "properties": { "assets_diffs": { "items": { "$ref": "#/components/schemas/CosmosAddressAssetDiffSchema" }, "type": "array", "title": "Assets Diffs", "description": "All assets diffs related to the account address" }, "total_usd_diff": { "allOf": [ { "$ref": "#/components/schemas/CosmosUsdDiffSchema" } ], "description": "Total usd diff related to the account address" }, "exposures": { "items": { "$ref": "#/components/schemas/CosmosAddressAssetExposureSchema" }, "type": "array", "title": "Exposures", "description": "All assets exposures related to the account address" }, "authorizations": { "items": { "$ref": "#/components/schemas/CosmosAddressAuthorizationSchema" }, "type": "array", "title": "Authorizations", "description": "All authorizations related to the account address" }, "total_usd_exposure": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Total Usd Exposure", "description": "Total usd exposure related to the account address" } }, "type": "object", "required": [ "assets_diffs", "total_usd_diff", "exposures", "authorizations", "total_usd_exposure" ], "title": "ACCOUNT SUMMARY" }, "CosmosAddressAssetDiffSchema": { "properties": { "asset": { "anyOf": [ { "$ref": "#/components/schemas/CosmosBankTokenSchema" }, { "$ref": "#/components/schemas/CosmosCW20TokenSchema" } ], "title": "Asset", "description": "Description of the asset for the current diff" }, "in": { "items": { "anyOf": [ { "$ref": "#/components/schemas/CosmosBankTokenDiffSchema" }, { "$ref": "#/components/schemas/CosmosCW20TokenDiffSchema" } ] }, "type": "array", "title": "In", "description": "Amount of the asset that was transferred to the address in this transaction" }, "out": { "items": { "anyOf": [ { "$ref": "#/components/schemas/CosmosBankTokenDiffSchema" }, { "$ref": "#/components/schemas/CosmosCW20TokenDiffSchema" } ] }, "type": "array", "title": "Out", "description": "Amount of the asset that was transferred from the address in this transaction" } }, "type": "object", "required": ["asset", "in", "out"], "title": "AddressAssetDiffSchema" }, "CosmosAddressAssetExposureSchema": { "properties": { "asset": { "anyOf": [ { "$ref": "#/components/schemas/CosmosBankTokenSchema" }, { "$ref": "#/components/schemas/CosmosCW20TokenSchema" } ], "title": "Asset description", "description": "Description of the asset for the current diff" }, "spenders": { "additionalProperties": { "anyOf": [ { "$ref": "#/components/schemas/CosmosBankTokenExposureSchema" }, { "$ref": "#/components/schemas/CosmosCW20TokenExposureSchema" } ] }, "type": "object", "title": "Spenders", "description": "Dictionary of spender addresses where the exposure has changed during this transaction for the current address and asset" } }, "type": "object", "required": ["asset"], "title": "AddressAssetExposureSchema" }, "CosmosAddressAuthorizationSchema": { "properties": { "authorize_to": { "type": "string", "title": "Authorize To", "description": "The address granted/revoked authorizations" }, "granted_authorizations": { "items": { "$ref": "#/components/schemas/CosmosAuthorizedActionSchema" }, "type": "array", "title": "Granted Authorizations", "description": "Granted authorizations" }, "revoked_authorizations": { "items": { "$ref": "#/components/schemas/CosmosAuthorizedActionSchema" }, "type": "array", "title": "Revoked Authorizations", "description": "Revoked authorizations" } }, "type": "object", "required": [ "authorize_to", "granted_authorizations", "revoked_authorizations" ], "title": "AddressAuthorizationSchema" }, "CosmosAddressDetailsSchema": { "properties": { "name_tag": { "type": "string", "title": "Name Tag", "description": "Known name tag for the address", "nullable": true } }, "type": "object", "title": "AddressDetailsSchema" }, "CosmosAuthorizedActionSchema": { "properties": { "type": { "type": "string", "title": "Type", "description": "Authorization type" }, "description": { "type": "string", "title": "Description", "description": "Authorized message readable description" } }, "type": "object", "required": ["type", "description"], "title": "AuthorizedActionSchema" }, "CosmosBankTokenDiffSchema": { "properties": { "usd_price": { "type": "string", "title": "Usd Price", "description": "Usd equal of the asset that was transferred from this address", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "User friendly description of the asset transfer", "nullable": true }, "value": { "type": "string", "title": "Value", "description": "Value after being divided by decimals, that was transferred from this address", "nullable": true }, "raw_value": { "type": "string", "title": "Raw Value", "description": "Value before being divided by decimal, that was transferred from this address" } }, "type": "object", "required": ["raw_value"], "title": "BANK TOKEN DIFF" }, "CosmosBankTokenExposureSchema": { "properties": { "exposure": { "items": { "anyOf": [ { "$ref": "#/components/schemas/CosmosBankTokenDiffSchema" }, { "$ref": "#/components/schemas/CosmosCW20TokenDiffSchema" } ] }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "User friendly description of the approval", "nullable": true } }, "type": "object", "required": ["exposure"], "title": "BankTokenExposureSchema" }, "CosmosBankTokenSchema": { "properties": { "type": { "type": "string", "enum": ["BankToken"], "const": "BankToken", "title": "Type", "description": "Asset type", "default": "BankToken" }, "name": { "type": "string", "title": "Name", "description": "A string representing the name of the asset", "nullable": true }, "logo": { "type": "string", "title": "Logo", "description": "Token logo URL", "nullable": true }, "address": { "type": "string", "title": "Address" }, "symbol": { "type": "string", "title": "Symbol" }, "decimal": { "type": "string", "title": "Decimal" } }, "type": "object", "required": ["address", "symbol", "decimal"], "title": "BANK TOKEN" }, "CosmosCW20TokenDiffSchema": { "properties": { "usd_price": { "type": "string", "title": "Usd Price", "description": "Usd equal of the asset that was transferred from this address", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "User friendly description of the asset transfer", "nullable": true }, "value": { "type": "string", "title": "Value", "description": "Value after being divided by decimals, that was transferred from this address", "nullable": true }, "raw_value": { "type": "string", "title": "Raw Value", "description": "Value before being divided by decimal, that was transferred from this address", "default": "0x0" } }, "type": "object", "title": "CW20 TOKEN DIFF" }, "CosmosCW20TokenExposureSchema": { "properties": { "exposure": { "items": { "anyOf": [ { "$ref": "#/components/schemas/CosmosBankTokenDiffSchema" }, { "$ref": "#/components/schemas/CosmosCW20TokenDiffSchema" } ] }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "User friendly description of the approval", "nullable": true }, "approval": { "type": "string", "title": "Approval", "description": "The amount that was asked in the approval request for this spender from the current address and asset" } }, "type": "object", "required": ["exposure", "approval"], "title": "CW20TokenExposureSchema" }, "CosmosCW20TokenSchema": { "properties": { "type": { "type": "string", "enum": ["CW20"], "const": "CW20", "title": "Type", "description": "Asset type", "default": "CW20" }, "name": { "type": "string", "title": "Name", "description": "A string representing the name of the asset", "nullable": true }, "logo": { "type": "string", "title": "Logo", "description": "Token logo URL", "nullable": true }, "address": { "type": "string", "title": "Address" }, "symbol": { "type": "string", "title": "Symbol", "nullable": true }, "decimal": { "type": "string", "title": "Decimal", "nullable": true } }, "type": "object", "required": ["address"], "title": "CW20 TOKEN" }, "CosmosChain": { "type": "string", "enum": ["cosmos", "osmosis"], "title": "Chain" }, "CosmosCosmosEventAttributeSchema": { "properties": { "key": { "type": "string", "title": "Key" }, "value": { "type": "string", "title": "Value" } }, "type": "object", "required": ["key", "value"], "title": "CosmosEventAttributeSchema" }, "CosmosCosmosEventSchema": { "properties": { "type": { "type": "string", "title": "Type" }, "attributes": { "items": { "$ref": "#/components/schemas/CosmosCosmosEventAttributeSchema" }, "type": "array", "title": "Attributes" }, "message_index": { "type": "integer", "title": "Message Index", "description": "Index of the message that emitted the event", "nullable": true } }, "type": "object", "required": ["type", "attributes"], "title": "CosmosEventSchema" }, "CosmosFeatureType": { "type": "string", "enum": ["Malicious", "Warning", "Benign", "Info"], "title": "FeatureType" }, "CosmosGasEstimationErrorSchema": { "properties": { "status": { "type": "string", "enum": ["Error"], "const": "Error", "title": "Status", "default": "Error" } }, "type": "object", "title": "Validation Error" }, "CosmosGasEstimationSchema": { "properties": { "status": { "type": "string", "enum": ["Success"], "const": "Success", "title": "Status", "default": "Success" }, "gas_wanted": { "type": "integer", "title": "Gas Wanted" }, "gas_used": { "type": "integer", "title": "Gas Used" } }, "type": "object", "required": ["gas_wanted", "gas_used"], "title": "GasEstimationSchema" }, "CosmosHTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/CosmosValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "CosmosInAppRequestMetadata": { "properties": { "type": { "type": "string", "enum": ["in_app"], "const": "in_app", "title": "Type", "description": "Metadata for in-app requests" } }, "type": "object", "required": ["type"], "title": "In-App Request Metadata" }, "CosmosMaliciousReasons": { "type": "string", "enum": [ "losing_assets", "suspicious_token", "malicious_authorization", "" ], "title": "MaliciousReasons" }, "CosmosReplayTransactionRequest": { "properties": { "chain": { "allOf": [ { "$ref": "#/components/schemas/CosmosChain" } ], "description": "The chain's name or identifier", "examples": ["osmosis"] }, "options": { "items": { "$ref": "#/components/schemas/CosmosValidationOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "title": "Options", "description": "List of options to include in the response\n- `simulation`: Include simulation output in the response\n- `validation`: Include security validation of the transaction in the response\n- `events`: Include emitted events of the transaction in the response\n- `gas_estimation`: Include gas estimation of the transaction in the response\n", "default": ["validation", "simulation"], "examples": [["validation", "simulation"]] }, "metadata": { "anyOf": [ { "$ref": "#/components/schemas/CosmosWalletRequestMetadata" }, { "$ref": "#/components/schemas/CosmosInAppRequestMetadata" } ], "title": "Metadata", "description": "Metadata" }, "account_address": { "type": "string", "title": "Account Address", "description": "Address of the account signing the transaction", "examples": ["osmo1gu92w3wkwawq6q8epdsyce6x7q5gzvv528l74c"], "nullable": true }, "transaction_hash": { "type": "string", "title": "Transaction Hash" } }, "type": "object", "required": ["chain", "metadata", "transaction_hash"], "title": "ReplayTransactionRequest" }, "CosmosSimulationErrorSchema": { "properties": { "status": { "type": "string", "enum": ["Error"], "const": "Error", "title": "Status", "default": "Error" }, "error": { "type": "string", "title": "Error", "description": "Error message" } }, "type": "object", "required": ["error"], "title": "Simulation Error" }, "CosmosSimulationSchema": { "properties": { "status": { "type": "string", "enum": ["Success"], "const": "Success", "title": "Status", "default": "Success" }, "assets_diffs": { "additionalProperties": { "items": { "$ref": "#/components/schemas/CosmosAddressAssetDiffSchema" }, "type": "array" }, "type": "object", "title": "Assets Diffs", "description": "A dictionary describing the assets differences as a result of this transaction for every involved address" }, "address_details": { "additionalProperties": { "$ref": "#/components/schemas/CosmosAddressDetailsSchema" }, "type": "object", "title": "Address Details", "description": "A dictionary including additional information about each relevant address in the transaction." }, "exposures": { "additionalProperties": { "items": { "$ref": "#/components/schemas/CosmosAddressAssetExposureSchema" }, "type": "array" }, "type": "object", "title": "Exposures", "description": "A dictionary including additional information about assets exposures in the transaction" }, "authorizations": { "additionalProperties": { "items": { "$ref": "#/components/schemas/CosmosAddressAuthorizationSchema" }, "type": "array" }, "type": "object", "title": "Authorizations", "description": "A dictionary including additional information about authorizations granted or revoked in the transaction" }, "account_summary": { "allOf": [ { "$ref": "#/components/schemas/CosmosAccountSummarySchema" } ], "description": "Account summary for the account address. Account address is determined implicitly by the `signer` in the transaction request, or explicit by the account_address field in the request." } }, "type": "object", "required": [ "assets_diffs", "address_details", "exposures", "authorizations", "account_summary" ], "title": "Simulation Result" }, "CosmosTransactionScanRequestSchema": { "properties": { "chain": { "allOf": [ { "$ref": "#/components/schemas/CosmosChain" } ], "description": "The chain's name or identifier", "examples": ["osmosis"] }, "options": { "items": { "$ref": "#/components/schemas/CosmosValidationOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "title": "Options", "description": "List of options to include in the response\n- `simulation`: Include simulation output in the response\n- `validation`: Include security validation of the transaction in the response\n- `events`: Include emitted events of the transaction in the response\n- `gas_estimation`: Include gas estimation of the transaction in the response\n", "default": ["validation", "simulation"], "examples": [["validation", "simulation"]] }, "metadata": { "anyOf": [ { "$ref": "#/components/schemas/CosmosWalletRequestMetadata" }, { "$ref": "#/components/schemas/CosmosInAppRequestMetadata" } ], "title": "Metadata", "description": "Metadata" }, "account_address": { "type": "string", "title": "Account Address", "description": "Address of the account signing the transaction", "examples": ["osmo1gu92w3wkwawq6q8epdsyce6x7q5gzvv528l74c"], "nullable": true }, "transaction": { "type": "string", "title": "Transaction", "description": "The transaction bytes encoded as base64", "examples": [ "CqwCCqkCCh0vY29zbW9zLmF1dGh6LnYxYmV0YTEuTXNnRXhlYxKHAgorb3NtbzFudGEza3VjbmN1Z3JwMmYzbHE2ejd5bTc0cHRyZHBjazNtaGRxdRLXAQoeL2Nvc21vcy5hdXRoei52MWJldGExLk1zZ0dyYW50ErQBCitvc21vMWd1OTJ3M3drd2F3cTZxOGVwZHN5Y2U2eDdxNWd6dnY1MjhsNzRjEitvc21vMWFwM2U4NWU5dHg0dW15OXc0czU1OXllZ3pzN3k0d2NqdDdzM2V1GlgKTgoqL2Nvc21vcy5hdXRoei52MWJldGExLkdlbmVyaWNBdXRob3JpemF0aW9uEiAKHi9jb3Ntb3MuYXV0aHoudjFiZXRhMS5Nc2dHcmFudBIGCIm2nYgHEmcKUApGCh8vY29zbW9zLmNyeXB0by5zZWNwMjU2azEuUHViS2V5EiMKIQKSsVCOfTcKsI0EBMkVgXx4F8snmhMP5UhQI4WMs0oCAxIECgIIARgBEhMKDQoFdW9zbW8SBDI0OTUQyNAIGkC83oeXc4fSOH44gBJBfRQaBFISNhY8hmlAxYJY645LT0iIYhTZ4YgKZx5D5PgSGqKlrGd6PC3SbnTxcFSUcpF7" ] } }, "type": "object", "required": ["chain", "metadata", "transaction"], "title": "TransactionScanRequestSchema" }, "CosmosTxScanResponseSchema": { "properties": { "simulation": { "anyOf": [ { "$ref": "#/components/schemas/CosmosSimulationSchema" }, { "$ref": "#/components/schemas/CosmosSimulationErrorSchema" } ], "title": "Simulation", "description": "Simulation result; Only present if simulation option is included in the request", "nullable": true }, "validation": { "anyOf": [ { "$ref": "#/components/schemas/CosmosValidationSchema" }, { "$ref": "#/components/schemas/CosmosValidationErrorSchema" } ], "title": "Validation", "description": "Validation result; Only present if validation option is included in the request", "nullable": true }, "events": { "items": { "$ref": "#/components/schemas/CosmosCosmosEventSchema" }, "type": "array", "title": "Events", "description": "A list of events emitted from the transaction", "nullable": true }, "gas_estimation": { "anyOf": [ { "$ref": "#/components/schemas/CosmosGasEstimationSchema" }, { "$ref": "#/components/schemas/CosmosGasEstimationErrorSchema" } ], "title": "Gas Estimation", "description": "Gas estimation for the transaction", "nullable": true }, "account_address": { "type": "string", "title": "Account Address", "description": "The account signing the transaction", "nullable": true }, "chain": { "$ref": "#/components/schemas/CosmosChain" } }, "type": "object", "required": ["chain"], "title": "TxScanResponseSchema" }, "CosmosUsdDiffSchema": { "properties": { "in": { "type": "string", "title": "In", "description": "Total incoming USD transfers" }, "out": { "type": "string", "title": "Out", "description": "Total outgoing USD transfers" }, "total": { "type": "string", "title": "Total", "description": "Total USD Diff" } }, "type": "object", "required": ["in", "out", "total"], "title": "Total USD Diff" }, "CosmosValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError" }, "CosmosValidationErrorSchema": { "properties": { "status": { "type": "string", "enum": ["Error"], "const": "Error", "title": "Status", "default": "Error" }, "error": { "type": "string", "title": "Error", "description": "Error message" } }, "type": "object", "required": ["error"], "title": "Validation Error" }, "CosmosValidationFeatureSchema": { "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/CosmosFeatureType" } ], "description": "Type/severity" }, "feature_id": { "type": "string", "title": "Feature Id", "description": "Feature name" }, "description": { "type": "string", "title": "Description", "description": "Textual description" }, "address": { "type": "string", "title": "Address", "description": "Address the feature refers to", "nullable": true } }, "type": "object", "required": ["type", "feature_id", "description"], "title": "ValidationFeatureSchema" }, "CosmosValidationOptions": { "type": "string", "enum": ["validation", "simulation", "events", "gas_estimation"], "title": "ValidationOptions" }, "CosmosValidationResultType": { "type": "string", "enum": ["Malicious", "Warning", "Benign"], "title": "ValidationResultType" }, "CosmosValidationSchema": { "properties": { "status": { "type": "string", "enum": ["Success"], "const": "Success", "title": "Status", "default": "Success" }, "result_type": { "allOf": [ { "$ref": "#/components/schemas/CosmosValidationResultType" } ], "title": "Result verdict", "description": "A string indicating if the transaction is safe to sign or not" }, "description": { "type": "string", "title": "Description", "description": "A textual description that can be presented to the user about what this transaction is doing" }, "classification": { "type": "string", "title": "Classification", "description": "A textual classification that can be presented to the user explaining the reason." }, "reason": { "allOf": [ { "$ref": "#/components/schemas/CosmosMaliciousReasons" } ], "title": "Reason", "description": "A textual description about the reasons the transaction was flagged with result_type" }, "features": { "items": { "$ref": "#/components/schemas/CosmosValidationFeatureSchema" }, "type": "array", "title": "Features", "description": "A list of features about this transaction explaining the validation" } }, "type": "object", "required": [ "result_type", "description", "classification", "reason", "features" ], "title": "Validation Result" }, "CosmosWalletRequestMetadata": { "properties": { "type": { "type": "string", "enum": ["wallet"], "const": "wallet", "title": "Type", "description": "Metadata for wallet requests" }, "url": { "type": "string", "title": "Url", "description": "URL of the dApp that originated the transaction" } }, "type": "object", "required": ["type", "url"], "title": "Wallet Request Metadata" }, "BitcoinAddressAssetExposureSchemaType": { "properties": { "asset": { "$ref": "#/components/schemas/BitcoinAssetDetailsBaseSchema" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/BitcoinAssetExposureBaseSchemaType" }, "type": "object", "title": "Spenders", "description": "Mapping between the spender address and the exposure of the asset" } }, "type": "object", "required": ["asset"], "title": "AddressAssetExposureSchemaType" }, "BitcoinAddressCreateRequest": { "properties": { "address": { "type": "string", "title": "Address" }, "alias_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias Name" }, "linked_service": { "anyOf": [ { "$ref": "#/components/schemas/BitcoinLinkedServiceRequest" }, { "type": "null" } ] } }, "type": "object", "required": ["address"], "title": "AddressCreateRequest" }, "BitcoinAddressDetailsBaseSchema_Annotated_NewType__SkipValidation__PlainSerializer__GetPydanticSchema__": { "properties": { "account_address": { "type": "string", "title": "Account Address", "description": "Encoded public key of the account" }, "description": { "type": "string", "title": "Description", "description": "Description of the account", "nullable": true } }, "type": "object", "required": ["account_address"], "title": "Address Details" }, "BitcoinAddressRelationshipRequest": { "properties": { "relationship": { "$ref": "#/components/schemas/BitcoinRelationshipType" }, "related_address": { "type": "string", "title": "Related Address" }, "entity_type": { "type": "string", "const": "address", "title": "Entity Type" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "type": "object", "required": ["relationship", "related_address", "entity_type"], "title": "AddressRelationshipRequest" }, "BitcoinAddressRelationshipResponse": { "properties": { "relationship": { "type": "string", "title": "Relationship" }, "entity_type": { "type": "string", "title": "Entity Type" }, "entity": { "type": "string", "title": "Entity" }, "timestamp": { "type": "integer", "title": "Timestamp" } }, "type": "object", "required": ["relationship", "entity_type", "entity", "timestamp"], "title": "AddressRelationshipResponse" }, "BitcoinAddressResponse": { "properties": { "address": { "type": "string", "title": "Address" }, "risk_level": { "type": "string", "title": "Risk Level" }, "risk_labels": { "items": { "type": "string" }, "type": "array", "title": "Risk Labels" }, "alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias" }, "linked_service": { "anyOf": [ { "$ref": "#/components/schemas/BitcoinLinkedServiceResponse" }, { "type": "null" } ] }, "labels": { "items": { "$ref": "#/components/schemas/BitcoinLabelResponse" }, "type": "array", "title": "Labels", "default": [] }, "relationships": { "anyOf": [ { "items": { "$ref": "#/components/schemas/BitcoinAddressRelationshipResponse" }, "type": "array" }, { "type": "null" } ], "title": "Relationships" } }, "type": "object", "required": ["address", "risk_level", "risk_labels"], "title": "AddressResponse" }, "BitcoinAppealRequestId": { "properties": { "type": { "type": "string", "const": "request_id", "title": "Type", "description": "Discriminator; use \"request_id\" when referencing a prior scan.", "default": "request_id" }, "id": { "type": "string", "title": "ID", "description": "Request ID from a previous transaction scan response." } }, "type": "object", "required": ["id"], "title": "Appeal Request ID" }, "BitcoinAppealTypes": { "type": "string", "enum": [ "should_be_malicious", "should_be_benign", "wrong_simulation_result" ], "title": "Appeal Types", "description": "Reason for the appeal: false positive (should_be_benign), false negative (should_be_malicious), or incorrect simulation (wrong_simulation_result)." }, "BitcoinAssetDetailsBaseSchema": { "properties": { "type": { "title": "Type" } }, "type": "object", "required": ["type"], "title": "AssetDetailsBaseSchema" }, "BitcoinAssetDiffBaseSchema": { "properties": { "usd_price": { "type": "number", "title": "Usd Price", "description": "USD price of the asset.", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the transfer.", "nullable": true } }, "type": "object", "title": "AssetDiffBaseSchema" }, "BitcoinAssetExposureBaseSchemaType": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/BitcoinAssetDiffBaseSchema" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the exposure.", "nullable": true } }, "type": "object", "required": ["exposure"], "title": "AssetExposureBaseSchemaType" }, "BitcoinAssetTransferDetailsSchema": { "properties": { "usd_price": { "type": "number", "title": "Usd Price", "description": "USD price of the asset.", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the transfer.", "nullable": true }, "value": { "type": "string", "title": "Value", "description": "Value of the transfer." }, "raw_value": { "type": "integer", "title": "Raw Value", "description": "Raw value of the transfer." } }, "type": "object", "required": ["value", "raw_value"], "title": "Asset Transfer Details" }, "BitcoinChainSchema": { "type": "string", "enum": ["bitcoin"], "title": "ChainSchema" }, "BitcoinDomainRelationshipRequest": { "properties": { "relationship": { "$ref": "#/components/schemas/BitcoinRelationshipType" }, "related_domain": { "type": "string", "title": "Related Domain" }, "entity_type": { "type": "string", "const": "domain", "title": "Entity Type" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "type": "object", "required": ["relationship", "related_domain", "entity_type"], "title": "DomainRelationshipRequest" }, "BitcoinEmptyModel": { "properties": {}, "type": "object", "title": "EmptyModel" }, "BitcoinHTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/BitcoinValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "BitcoinInAppRequestMetadata": { "properties": { "type": { "type": "string", "const": "in_app", "title": "Type", "description": "Identifies the request as coming from your own app (e.g. in-app send, swap, or internal flow).", "default": "in_app" }, "account": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Account" } ], "title": "Account", "description": "Account information associated with the request" }, "connection": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Connection" } ], "title": "Connection", "description": "Connection metadata including user agent and IP information" }, "non_dapp": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Non Dapp", "description": "Indicates that the transaction was not initiated by a dapp. Use false when the transaction is from a dapp.", "default": true } }, "type": "object", "title": "In-App Request Metadata" }, "BitcoinInscriptionDetailsSchema": { "properties": { "type": { "type": "string", "const": "INSCRIPTION", "title": "Type", "description": "Type of the asset (`INSCRIPTION`).", "default": "INSCRIPTION" }, "name": { "type": "string", "title": "Name", "description": "Inscription's display name." }, "id": { "type": "string", "title": "Id", "description": "The Inscription ID." }, "sat": { "type": "integer", "title": "Sat", "description": "The Inscription sat." }, "logo_url": { "type": "string", "title": "Logo Url", "description": "URL of the asset's logo.", "nullable": true } }, "type": "object", "required": ["name", "id", "sat"], "title": "Inscription Asset Details" }, "BitcoinInscriptionDiffSchema": { "properties": { "usd_price": { "type": "number", "title": "Usd Price", "description": "USD price of the asset.", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the transfer.", "nullable": true }, "inscription_id": { "type": "string", "title": "Inscription Id", "description": "Inscription ID of the transfer." } }, "type": "object", "required": ["inscription_id"], "title": "Inscription Transfer Details" }, "BitcoinLabelName": { "type": "string", "enum": [ "known_malicious", "wallet_drainer", "airdrop_operator", "address_poisoning_operator", "rugpull_operator", "address_poisoning_impersonator_wallet", "exploit_contract", "exploiter", "exploit_deployer", "ofac_address", "compromised", "fresh", "empty", "unverified_contract", "proxy", "erc20", "erc721", "erc1155", "token", "gnosis_safe_contract", "argent_wallet_contract", "eoa", "trusted", "trusted_for_spending_funds", "trusted_for_receiving_funds", "verified_contract", "wallet_customer", "paid_by_malicious_address" ], "title": "LabelName" }, "BitcoinLabelRequest": { "properties": { "label_name": { "$ref": "#/components/schemas/BitcoinLabelName" }, "origin": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Origin", "default": "blockaid" }, "reporting_organization": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reporting Organization" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "type": "object", "required": ["label_name"], "title": "LabelRequest" }, "BitcoinLabelResponse": { "properties": { "origin": { "type": "string", "title": "Origin" }, "reporting_organization": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reporting Organization" }, "date_added": { "type": "string", "title": "Date Added" }, "is_public": { "type": "boolean", "title": "Is Public" }, "label": { "type": "string", "title": "Label" } }, "type": "object", "required": ["origin", "date_added", "is_public", "label"], "title": "LabelResponse" }, "BitcoinLinkedServiceRequest": { "properties": { "service_name": { "type": "string", "title": "Service Name" }, "service_type": { "type": "string", "title": "Service Type" }, "address_role_in_service": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Role In Service" } }, "type": "object", "required": ["service_name", "service_type"], "title": "LinkedServiceRequest" }, "BitcoinLinkedServiceResponse": { "properties": { "service_name": { "type": "string", "title": "Service Name" }, "service_type": { "type": "string", "title": "Service Type" }, "address_role_in_service": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Role In Service" } }, "type": "object", "required": ["service_name", "service_type"], "title": "LinkedServiceResponse" }, "BitcoinNativeAssetDetailsSchema": { "properties": { "type": { "type": "string", "const": "NATIVE", "title": "Type", "description": "Type of the asset (`NATIVE`).", "default": "NATIVE" }, "symbol": { "type": "string", "const": "BTC", "title": "Symbol", "description": "Symbol of the asset.", "default": "BTC" }, "name": { "type": "string", "const": "Bitcoin", "title": "Name", "description": "Name of the asset.", "default": "Bitcoin" }, "decimals": { "type": "integer", "const": 8, "title": "Decimals", "description": "Number of decimal places used to represent fractional units (e.g. 8 for BTC).", "default": 8 }, "logo_url": { "type": "string", "title": "Logo Url", "description": "URL of the asset's logo.", "nullable": true } }, "type": "object", "required": ["logo_url"], "title": "Native Asset Details" }, "BitcoinOptions": { "type": "string", "enum": ["validation", "simulation"], "title": "Options" }, "BitcoinRelationshipType": { "type": "string", "enum": ["created_by", "first_funded_by", "paid_by", "related_to"], "title": "RelationshipType" }, "BitcoinRuneDetailsSchema": { "properties": { "type": { "type": "string", "const": "RUNE", "title": "Type", "description": "Type of the asset (`RUNE`).", "default": "RUNE" }, "name": { "type": "string", "title": "Name", "description": "The Rune name." }, "spaced_name": { "type": "string", "title": "Spaced Name", "description": "The Rune spaced name." }, "symbol": { "type": "string", "title": "Symbol", "description": "The Rune's symbol." }, "id": { "type": "string", "title": "Id", "description": "The Rune ID." }, "logo_url": { "type": "string", "title": "Logo Url", "description": "URL of the asset's logo.", "nullable": true }, "decimals": { "type": "integer", "title": "Decimals", "description": "Number of decimal places used to represent fractional units." } }, "type": "object", "required": ["name", "spaced_name", "symbol", "id", "decimals"], "title": "Inscription Asset Details" }, "BitcoinRuneResponse": { "properties": { "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Id", "description": "The unique ID for the Rune" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "The unique name of the rune, without spacers" }, "symbol": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Symbol", "description": "The rune's symbol." }, "formatted_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Formatted Name", "description": "The formatted name of the rune, with spacers" } }, "type": "object", "title": "RuneResponse" }, "BitcoinSimulationErrorSchema": { "properties": { "status": { "type": "string", "const": "Error", "title": "Status" }, "error": { "type": "string", "title": "Error", "description": "Error message" } }, "type": "object", "required": ["status", "error"], "title": "Simulation Error" }, "BitcoinTotalUsdDiffSchema": { "properties": { "in": { "type": "number", "title": "In", "description": "Total incoming USD transfers." }, "out": { "type": "number", "title": "Out", "description": "Total outgoing USD transfers." }, "total": { "type": "number", "title": "Total", "description": "Total USD transfers." } }, "type": "object", "required": ["in", "out"], "title": "Total USD Diff" }, "BitcoinValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError" }, "BitcoinValidationErrorSchema": { "properties": { "status": { "type": "string", "const": "Error", "title": "Status" }, "error": { "type": "string", "title": "Error", "description": "Error message" } }, "type": "object", "required": ["status", "error"], "title": "Validation Error" }, "BitcoinValidationFeatureType": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Info"], "title": "ValidationFeatureType" }, "BitcoinVerdict": { "type": "string", "enum": ["Benign", "Warning", "Malicious"], "title": "Verdict" }, "BitcoinWalletRequestMetadata": { "properties": { "type": { "type": "string", "const": "wallet", "title": "Type", "description": "Identifies the request as a wallet signing a transaction on behalf of an external dApp. The type improves threat context and helps attribute risk to specific origins." }, "url": { "type": "string", "title": "Url", "description": "The full URL of the dApp or page where the user initiated the transaction (e.g. https://app.example.com/swap)." }, "account": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Account" } ], "title": "Account", "description": "Account information associated with the request" }, "connection": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Connection" } ], "title": "Connection", "description": "Connection metadata including user agent and IP information" }, "non_dapp": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Non Dapp", "description": "Indicates that the transaction was not initiated by a dapp. Use false when the transaction is from a dapp.", "default": false } }, "type": "object", "required": ["type", "url"], "title": "Wallet Request Metadata" }, "BitcoinValidationFeature": { "properties": { "type": { "$ref": "#/components/schemas/BitcoinValidationFeatureType", "description": "Severity or category of this finding (e.g. Benign, Warning, Malicious, Info).", "title": "type" }, "feature_id": { "type": "string", "title": "feature_id", "description": "Unique identifier for this type of finding." }, "description": { "type": "string", "title": "Description", "description": "Human-readable explanation of this finding." }, "address": { "type": "string", "title": "Address", "description": "Bitcoin address that this finding is associated with." } }, "type": "object", "required": ["type", "feature_id", "description", "address"], "title": "ValidationFeatureSchemaType[Annotated[NewType, SkipValidation, PlainSerializer, GetPydanticSchema]]" }, "BitcoinValidationResult": { "properties": { "status": { "type": "string", "const": "Success", "title": "Status" }, "result_type": { "$ref": "#/components/schemas/BitcoinVerdict", "description": "Verdict of the validation.", "title": "Result Verdict" }, "description": { "type": "string", "title": "Description", "description": "A textual description about the validation result." }, "reason": { "type": "string", "title": "Reason", "description": "Human-readable explanation of why the transaction received the given `result_type` verdict." }, "classification": { "type": "string", "title": "Classification", "description": "A textual classification that can be presented to the user explaining the reason." }, "features": { "items": { "$ref": "#/components/schemas/BitcoinValidationFeature", "docs_api_name": "ValidationFeature", "title": "Feature" }, "type": "array", "title": "Features", "description": "List of validation findings (addresses and classifications) that contributed to the verdict." } }, "type": "object", "required": [ "status", "result_type", "description", "reason", "classification", "features" ], "title": "Validation Result" }, "BitcoinAccountSummary": { "properties": { "account_assets_diffs": { "items": { "anyOf": [ { "$ref": "#/components/schemas/BitcoinNativeAssetDiff", "docs_api_name": "NativeAssetDiff", "title": "Native asset Diff" }, { "$ref": "#/components/schemas/BitcoinInscriptionAssetDiff", "docs_api_name": "InscriptionAssetDiff", "title": "Inscription Asset Diff" }, { "$ref": "#/components/schemas/BitcoinRunesAssetDiff", "docs_api_name": "RunesAssetDiff", "title": "Runes Asset Diff" } ] }, "type": "array", "title": "Account Assets Diffs", "description": "Per-asset balance changes (native BTC, inscriptions, runes) for the requested account." }, "total_usd_diff": { "$ref": "#/components/schemas/BitcoinTotalUsdDiffSchema", "description": "Net change in USD value (incoming minus outgoing) for the requested account." } }, "type": "object", "required": ["total_usd_diff"], "title": "Account Summary" }, "BitcoinRunesAssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/BitcoinRuneDetailsSchema" }, "in": { "$ref": "#/components/schemas/BitcoinAssetTransferDetailsSchema", "description": "Details of the incoming transfer.", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/BitcoinAssetTransferDetailsSchema", "description": "Details of the outgoing transfer.", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "Asset category for this balance change (e.g. NATIVE, RUNE, INSCRIPTION).", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[RuneDetailsSchema, AssetTransferDetailsSchema]" }, "BitcoinInscriptionAssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/BitcoinInscriptionDetailsSchema" }, "in": { "$ref": "#/components/schemas/BitcoinInscriptionDiffSchema", "description": "Details of the incoming transfer.", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/BitcoinInscriptionDiffSchema", "description": "Details of the outgoing transfer.", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "Asset category for this balance change (e.g. NATIVE, RUNE, INSCRIPTION).", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[InscriptionDetailsSchema, InscriptionDiffSchema]" }, "BitcoinNativeAssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/BitcoinNativeAssetDetailsSchema" }, "in": { "$ref": "#/components/schemas/BitcoinAssetTransferDetailsSchema", "description": "Details of the incoming transfer.", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/BitcoinAssetTransferDetailsSchema", "description": "Details of the outgoing transfer.", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "Asset category for this balance change (e.g. NATIVE, RUNE, INSCRIPTION).", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[NativeAssetDetailsSchema, AssetTransferDetailsSchema]" }, "BitcoinValidationResponse": { "anyOf": [ { "$ref": "#/components/schemas/BitcoinValidationResult", "docs_api_name": "ValidationResult", "title": "Validation Result" }, { "$ref": "#/components/schemas/BitcoinValidationErrorSchema", "title": "Validation Error" } ], "title": "ValidationResponseSchemaType[Annotated[NewType, SkipValidation, PlainSerializer, GetPydanticSchema]]" }, "BitcoinSimulationResult": { "properties": { "status": { "type": "string", "const": "Success", "title": "Status" }, "assets_diffs": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/BitcoinNativeAssetDiff", "docs_api_name": "NativeAssetDiff", "title": "Native asset Diff" }, { "$ref": "#/components/schemas/BitcoinInscriptionAssetDiff", "docs_api_name": "InscriptionAssetDiff", "title": "Inscription Asset Diff" }, { "$ref": "#/components/schemas/BitcoinRunesAssetDiff", "docs_api_name": "RunesAssetDiff", "title": "Runes Asset Diff" } ] }, "type": "array", "description": "Asset balance changes for one account address." }, "type": "object", "title": "Assets Diffs", "description": "Per-account list of asset balance changes (native, inscriptions, runes) for the simulated transaction." }, "address_details": { "items": { "$ref": "#/components/schemas/BitcoinAddressDetailsBaseSchema_Annotated_NewType__SkipValidation__PlainSerializer__GetPydanticSchema__" }, "type": "array", "title": "Address Details", "description": "Details of addresses involved in the transaction." }, "account_summary": { "$ref": "#/components/schemas/BitcoinAccountSummary", "description": "Summary of the actions and asset transfers that were made by the requested account address.", "docs_api_name": "AccountSummary" } }, "type": "object", "required": ["status", "account_summary"], "title": "Simulation Result" }, "BitcoinTransactionScanRequest": { "properties": { "chain": { "$ref": "#/components/schemas/BitcoinChainSchema" }, "options": { "items": { "$ref": "#/components/schemas/BitcoinOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "title": "Options", "description": "Which parts of the response you need:\n\n- **validation** — Security verdict (Benign/Warning/Malicious) and risk explanation. Use when deciding whether to block or warn.\n- **simulation** — Predicted summary of balance and asset changes (e.g. \"You will send 0.01 BTC to bc1q...\"). Use when showing the user what the transaction does.\n\nYou can request one or both; default is both.", "default": ["validation", "simulation"] }, "account_address": { "type": "string", "title": "Account Address", "description": "The Bitcoin address that owns the UTXOs being spent." }, "transaction": { "type": "string", "title": "Transaction", "description": "The raw unsigned transaction in hexadecimal, as produced by the wallet or your app. This is the same payload the user would sign." }, "metadata": { "anyOf": [ { "$ref": "#/components/schemas/BitcoinWalletRequestMetadata" }, { "$ref": "#/components/schemas/BitcoinInAppRequestMetadata" } ], "title": "Metadata", "description": "Context of where the transaction was initiated: use wallet metadata when the user is signing in a wallet for an external site; use in-app metadata when the transaction is created within your own app.\n\nChoosing the correct type improves risk analysis and reporting." } }, "type": "object", "required": ["chain", "account_address", "transaction", "metadata"], "title": "Request" }, "BitcoinAppealTransactionDataReport": { "properties": { "type": { "type": "string", "const": "params", "title": "Type", "description": "Discriminator; use \"params\" when supplying full transaction data.", "default": "params" }, "params": { "$ref": "#/components/schemas/BitcoinTransactionScanRequest", "docs_api_name": "TransactionScanRequest", "title": "Transaction Request", "description": "Full transaction scan request (same shape as the scan endpoint)." } }, "type": "object", "required": ["params"], "title": "Appeal Transaction Data Report" }, "BitcoinReportTransactionRequest": { "properties": { "event": { "$ref": "#/components/schemas/BitcoinAppealTypes", "description": "Type of appeal: what you believe was wrong with the scan result." }, "report": { "anyOf": [ { "$ref": "#/components/schemas/BitcoinAppealRequestId" }, { "$ref": "#/components/schemas/BitcoinAppealTransactionDataReport", "docs_api_name": "AppealTransactionDataReport" } ], "title": "Report", "description": "Either a prior scan request ID or the full transaction parameters being reported." }, "details": { "type": "string", "title": "Details", "description": "Free-text explanation or context for the report." } }, "type": "object", "required": ["event", "report", "details"], "title": "AppealRequest[Annotated[RequestSchemaType[ChainSchema, Annotated[NewType, SkipValidation, PlainSerializer, GetPydanticSchema], Annotated[str, SkipValidation, PlainSerializer, GetPydanticSchema], Annotated[set[Options], FieldInfo(annotation=NoneType, required=False, default={, }, title='Options', description='List of options to include in the response\\n- `Options.validation`: Include Options.validation output in the response\\n\\n- `Options.simulation`: Include Options.simulation output in the response\\n', metadata=[MinLen(min_length=1)])]], FieldInfo(annotation=NoneType, required=True, title='Transaction Request', json_schema_extra={'docs_api_name': 'TransactionScanRequest'})]]" }, "BitcoinTransactionScanResponse": { "properties": { "simulation": { "anyOf": [ { "$ref": "#/components/schemas/BitcoinSimulationResult", "docs_api_name": "SimulationResult", "title": "Simulation Result" }, { "$ref": "#/components/schemas/BitcoinSimulationErrorSchema", "title": "Simulation Error" } ], "description": "Simulation result; Only present if simulation option is included in the request", "nullable": true }, "validation": { "$ref": "#/components/schemas/BitcoinValidationResponse", "description": "Validation result; Only present if validation option is included in the request", "docs_api_name": "ValidationResponse", "nullable": true } }, "type": "object", "title": "Response" }, "StarknetAddressCreateRequest": { "properties": { "address": { "type": "string", "title": "Address" }, "alias_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias Name" }, "linked_service": { "anyOf": [ { "$ref": "#/components/schemas/StarknetLinkedServiceRequest" }, { "type": "null" } ] } }, "type": "object", "required": ["address"], "title": "AddressCreateRequest" }, "StarknetAddressDetailsBaseSchema": { "properties": { "account_address": { "title": "Account Address", "description": "Encoded public key of the account" }, "description": { "type": "string", "title": "Description", "description": "Description of the account", "nullable": true } }, "type": "object", "required": ["account_address"], "title": "Address Details" }, "StarknetAddressRelationshipRequest": { "properties": { "relationship": { "$ref": "#/components/schemas/StarknetRelationshipType" }, "related_address": { "type": "string", "title": "Related Address" }, "entity_type": { "type": "string", "const": "address", "title": "Entity Type" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "type": "object", "required": ["relationship", "related_address", "entity_type"], "title": "AddressRelationshipRequest" }, "StarknetAddressRelationshipResponse": { "properties": { "relationship": { "type": "string", "title": "Relationship" }, "entity_type": { "type": "string", "title": "Entity Type" }, "entity": { "type": "string", "title": "Entity" }, "timestamp": { "type": "integer", "title": "Timestamp" }, "chain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain" } }, "type": "object", "required": ["relationship", "entity_type", "entity", "timestamp"], "title": "AddressRelationshipResponse" }, "StarknetAddressResponse": { "properties": { "address": { "type": "string", "title": "Address" }, "risk_level": { "type": "string", "title": "Risk Level" }, "risk_labels": { "items": { "type": "string" }, "type": "array", "title": "Risk Labels" }, "alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias" }, "linked_service": { "anyOf": [ { "$ref": "#/components/schemas/StarknetLinkedServiceResponse" }, { "type": "null" } ] }, "labels": { "items": { "$ref": "#/components/schemas/StarknetLabelResponse" }, "type": "array", "title": "Labels", "default": [] }, "relationships": { "anyOf": [ { "items": { "$ref": "#/components/schemas/StarknetAddressRelationshipResponse" }, "type": "array" }, { "type": "null" } ], "title": "Relationships" } }, "type": "object", "required": ["address", "risk_level", "risk_labels"], "title": "AddressResponse" }, "StarknetAppealRequestId": { "properties": { "type": { "type": "string", "const": "request_id", "title": "Type", "default": "request_id" }, "id": { "type": "string", "title": "Id" } }, "type": "object", "required": ["id"], "title": "AppealRequestId" }, "StarknetAppealTypes": { "type": "string", "enum": [ "should_be_malicious", "should_be_benign", "wrong_simulation_result" ], "title": "AppealTypes" }, "StarknetChain": { "type": "string", "enum": ["mainnet"], "title": "Chain" }, "StarknetCreateLabelRequest": { "properties": { "label_name": { "$ref": "#/components/schemas/StarknetLabelName" }, "origin": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Origin", "default": "blockaid" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": ["label_name"], "title": "CreateLabelRequest" }, "StarknetDeployAccountV1TransactionSchema": { "properties": { "version": { "type": "integer", "const": 1, "title": "Version", "description": "The version of the transaction." }, "nonce": { "type": "string", "title": "Nonce", "description": "The nonce of the transaction." }, "class_hash": { "type": "string", "title": "Class Hash", "description": "The hash of the contract class." }, "contract_address_salt": { "type": "string", "title": "Contract Address Salt", "description": "The salt of the contract address." }, "constructor_calldata": { "items": { "type": "string" }, "type": "array", "title": "Constructor Calldata", "description": "The arguments that are passed to the constructor function." }, "max_fee": { "type": "string", "title": "Max Fee", "description": "The maximum fee that the sender is willing to pay." } }, "type": "object", "required": [ "version", "nonce", "class_hash", "contract_address_salt", "constructor_calldata", "max_fee" ], "title": "Deploy Account V1 Transaction" }, "StarknetDeployAccountV3TransactionSchema": { "properties": { "version": { "type": "integer", "const": 3, "title": "Version", "description": "The version of the transaction." }, "nonce": { "type": "string", "title": "Nonce", "description": "The nonce of the transaction." }, "class_hash": { "type": "string", "title": "Class Hash", "description": "The hash of the contract class." }, "contract_address_salt": { "type": "string", "title": "Contract Address Salt", "description": "The salt of the contract address." }, "constructor_calldata": { "items": { "type": "string" }, "type": "array", "title": "Constructor Calldata", "description": "The arguments that are passed to the constructor function." }, "max_fee": { "type": "string", "title": "Max Fee", "description": "The maximum fee that the sender is willing to pay." } }, "type": "object", "required": [ "version", "nonce", "class_hash", "contract_address_salt", "constructor_calldata", "max_fee" ], "title": "Deploy Account V3 Transaction" }, "StarknetDomainRelationshipRequest": { "properties": { "relationship": { "$ref": "#/components/schemas/StarknetRelationshipType" }, "related_domain": { "type": "string", "title": "Related Domain" }, "entity_type": { "type": "string", "const": "domain", "title": "Entity Type" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "type": "object", "required": ["relationship", "related_domain", "entity_type"], "title": "DomainRelationshipRequest" }, "StarknetERC1155DiffSchema": { "properties": { "usd_price": { "type": "number", "title": "Usd Price", "description": "USD price of the asset", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the transfer", "nullable": true }, "token_id": { "type": "string", "title": "Token Id", "description": "Token ID of the transfer" }, "value": { "type": "integer", "title": "Value", "description": "Value of the transfer" } }, "type": "object", "required": ["token_id", "value"], "title": "ERC1155 Transfer Details" }, "StarknetERC1155ExposureSchema": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/StarknetERC1155DiffSchema" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the exposure", "nullable": true }, "is_approved_for_all": { "type": "boolean", "title": "Is Approved For All", "description": "Whether `setApprovalForAll` was invoked" } }, "type": "object", "required": ["exposure", "is_approved_for_all"], "title": "ERC1155ExposureSchema" }, "StarknetERC20DiffSchema": { "properties": { "usd_price": { "type": "number", "title": "Usd Price", "description": "USD price of the asset", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the transfer", "nullable": true }, "value": { "type": "string", "title": "Value", "description": "Value of the transfer" }, "raw_value": { "type": "integer", "title": "Raw Value", "description": "Raw value of the transfer" } }, "type": "object", "required": ["value", "raw_value"], "title": "ERC20 Asset Transfer Details" }, "StarknetERC20ExposureSchema": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/StarknetERC20DiffSchema" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the exposure", "nullable": true }, "approval": { "type": "string", "title": "Approval", "description": "Approval value of the ERC20 token" }, "expiration": { "type": "string", "format": "date-time", "title": "Expiration", "description": "Expiration date of the approval", "nullable": true } }, "type": "object", "required": ["exposure", "approval"], "title": "ERC20 Exposure" }, "StarknetERC20TokenSpotPriceResponseSchema": { "properties": { "address": { "type": "string", "title": "Address", "description": "Token address" }, "chain": { "anyOf": [ { "$ref": "#/components/schemas/StarknetChain", "description": "A CAIP-2 or a Starknet network name or a Starknet network name", "title": "Chain Name" }, { "type": "string", "title": "Chain ID", "description": "A Starknet network ID as hex or decimal string" } ], "title": "Chain", "description": "Chain" }, "price_usd": { "type": "number", "title": "Price Usd", "description": "USD price of the token", "nullable": true }, "total_reserve_usd": { "type": "number", "title": "Total Reserve Usd", "description": "Total coin reserves value in USD", "nullable": true }, "volume_24h_usd": { "type": "number", "title": "Volume 24H Usd", "description": "24 hours trade volume in USD", "nullable": true } }, "type": "object", "required": ["address", "chain", "price_usd", "total_reserve_usd"], "title": "ERC20TokenSpotPriceResponseSchema" }, "StarknetERC721DiffSchema": { "properties": { "usd_price": { "type": "number", "title": "Usd Price", "description": "USD price of the asset", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the transfer", "nullable": true }, "token_id": { "type": "string", "title": "Token Id", "description": "Token ID of the transfer" } }, "type": "object", "required": ["token_id"], "title": "ERC721 Transfer Details" }, "StarknetERC721ExposureSchema": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/StarknetERC721DiffSchema" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the exposure", "nullable": true }, "is_approved_for_all": { "type": "boolean", "title": "Is Approved For All", "description": "Whether `setApprovalForAll` was invoked" } }, "type": "object", "required": ["exposure", "is_approved_for_all"], "title": "ERC721ExposureSchema" }, "StarknetEmptyModel": { "properties": {}, "type": "object", "title": "EmptyModel" }, "StarknetExtendedERC1155DetailsSchema": { "properties": { "type": { "type": "string", "const": "ERC1155", "title": "Type", "description": "Type of the asset (`ERC1155`)", "default": "ERC1155" }, "name": { "type": "string", "title": "Name", "description": "token's name" }, "symbol": { "type": "string", "title": "Symbol", "description": "token's symbol" }, "address": { "type": "string", "title": "Address", "description": "Address of the token's contract" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "URL of the asset's logo", "nullable": true }, "contract_uri": { "type": "string", "title": "Contract Uri", "description": "URI for additional contract details, usually a json", "nullable": true } }, "type": "object", "required": ["name", "symbol", "address"], "title": "ERC1155 Asset Details" }, "StarknetExtendedERC721DetailsSchema": { "properties": { "type": { "type": "string", "const": "ERC721", "title": "Type", "description": "Type of the asset (`ERC721`)", "default": "ERC721" }, "name": { "type": "string", "title": "Name", "description": "token's name" }, "symbol": { "type": "string", "title": "Symbol", "description": "token's symbol" }, "address": { "type": "string", "title": "Address", "description": "Address of the token's contract" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "URL of the asset's logo", "nullable": true }, "contract_uri": { "type": "string", "title": "Contract Uri", "description": "URI for additional contract details, usually a json", "nullable": true } }, "type": "object", "required": ["name", "symbol", "address"], "title": "ERC721 Asset Details" }, "StarknetHTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/StarknetValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "StarknetInAppRequestMetadata": { "properties": { "type": { "type": "string", "const": "in_app", "title": "Type", "description": "Metadata for in-app requests", "default": "in_app" } }, "type": "object", "title": "In-App Request Metadata" }, "StarknetInvokeV1TransactionSchema": { "properties": { "version": { "type": "integer", "const": 1, "title": "Version", "description": "The version of the transaction." }, "nonce": { "type": "string", "title": "Nonce", "description": "The nonce of the transaction." }, "sender_address": { "type": "string", "title": "Sender Address", "description": "The address of the sender." }, "calldata": { "items": { "type": "string" }, "type": "array", "title": "Calldata", "description": "The arguments that are passed to the validate and execute functions." }, "max_fee": { "type": "string", "title": "Max Fee", "description": "The maximum fee that the sender is willing to pay." } }, "type": "object", "required": ["version", "nonce", "sender_address", "max_fee"], "title": "Invoke V1 Transaction" }, "StarknetInvokeV3TransactionSchema": { "properties": { "version": { "type": "integer", "const": 3, "title": "Version", "description": "The version of the transaction." }, "nonce": { "type": "string", "title": "Nonce", "description": "The nonce of the transaction." }, "sender_address": { "type": "string", "title": "Sender Address", "description": "The address of the sender." }, "calldata": { "items": { "type": "string" }, "type": "array", "title": "Calldata", "description": "The arguments that are passed to the validate and execute functions." }, "chain_id": { "type": "string", "title": "Chain Id", "description": "The id of the chain to which the transaction is sent." }, "nonce_data_availability_mode": { "type": "integer", "const": 0, "title": "Nonce Data Availability Mode", "description": "The nonce data availability mode.", "default": 0 }, "paymaster_data": { "items": { "type": "string" }, "type": "array", "maxItems": 0, "title": "Paymaster Data", "description": "For future use. Currently this value is always empty." }, "account_deployment_data": { "items": { "type": "string" }, "type": "array", "maxItems": 0, "title": "Account Deployment Data", "description": "For future use. Currently this value is always empty." } }, "type": "object", "required": [ "version", "nonce", "sender_address", "calldata", "chain_id" ], "title": "Invoke V3 Transaction" }, "StarknetLabelName": { "type": "string", "enum": [ "custom_malicious", "wallet_drainer", "ofac_address", "malicious_airdrop_operator", "address_poisoning_operator", "rugpull_operator", "address_poisoning_impersonator_wallet", "exploit_contract", "exploiter", "exploit_contract_deployer", "compromised", "malicious_token_deployer", "malicious_implementation", "malicious_contract_deployer", "market_manipulator", "deprecated", "custom_trusted", "custom_trusted_for_spending_funds", "custom_trusted_for_receiving_funds", "verified_contract", "fresh", "empty", "unverified_contract", "infected", "smart_account", "erc4337", "safe_smart_account", "argent_wallet_contract", "eip7702_smart_account", "contract", "wallet", "vault", "liquidity_pool", "staking_pool", "token", "eip4626", "proxy", "implementation", "safe_proxy", "beacon_proxy", "transparent_upgradeable_proxy", "erc1967", "minimal_proxy", "uups_proxy", "create2_beacon_proxy", "proxy_admin", "eip2535", "diamond", "facet", "erc20", "erc20_extensions", "erc721", "erc721_extensions", "erc1155", "erc1155_extensions", "eoa", "ownable", "rbac", "investment_scam", "package", "wallet_customer", "paid_by_malicious_address", "toctou", "toctou_deployer", "malicious_contract", "suspicious_contract", "pig_butchering_disputed", "pig_butchering_investment_scam_site", "pig_butchering_direct_exposure_to_disputed", "pig_butchering_direct_exposure_to_investment_scam_site", "pig_butchering_high_exposure_to_disputed", "pig_butchering_high_exposure_to_investment_scam_site", "pig_butchering_behavior", "pig_butchering_suspicious" ], "title": "LabelName" }, "StarknetLabelResponse": { "properties": { "origin": { "type": "string", "title": "Origin" }, "reporting_organization": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reporting Organization" }, "date_added": { "type": "string", "title": "Date Added" }, "is_public": { "type": "boolean", "title": "Is Public" }, "label": { "type": "string", "title": "Label" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "severity": { "$ref": "#/components/schemas/StarknetRiskLevel" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": ["origin", "date_added", "is_public", "label", "severity"], "title": "LabelResponse" }, "StarknetLabelWithAddressRequest": { "properties": { "label_name": { "$ref": "#/components/schemas/StarknetLabelName" }, "origin": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Origin", "default": "blockaid" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "address": { "type": "string", "title": "Address" } }, "type": "object", "required": ["label_name", "address"], "title": "LabelWithAddressRequest" }, "StarknetLinkedServiceRequest": { "properties": { "service_name": { "type": "string", "title": "Service Name" }, "service_type": { "type": "string", "title": "Service Type" }, "address_role_in_service": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Role In Service" } }, "type": "object", "required": ["service_name", "service_type"], "title": "LinkedServiceRequest" }, "StarknetLinkedServiceResponse": { "properties": { "service_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Service Name" }, "service_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Service Type" }, "address_role_in_service": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Role In Service" } }, "type": "object", "required": ["service_name", "service_type"], "title": "LinkedServiceResponse" }, "StarknetNonERCDetailsSchema": { "properties": { "type": { "type": "string", "const": "NONERC", "title": "Type", "description": "Type of the asset (`NONERC`)", "default": "NONERC" }, "address": { "type": "string", "title": "Address", "description": "Address of the token's contract" } }, "type": "object", "required": ["address"], "title": "NonERCDetailsSchema" }, "StarknetOutsideCallSchema": { "properties": { "to": { "type": "string", "title": "To", "description": "The address of the contract to call." }, "selector": { "type": "string", "title": "Selector", "description": "The selector of the function to call." }, "calldata": { "items": { "type": "string" }, "type": "array", "title": "Calldata", "description": "The calldata to pass to the function.", "default": [] } }, "type": "object", "required": ["to", "selector"], "title": "Outside Call" }, "StarknetOutsideExecutionSchema": { "properties": { "caller": { "type": "string", "title": "Caller", "description": "The address allowed to execute, or 0 for ANY_CALLER" }, "nonce": { "type": "string", "title": "Nonce", "description": "Replay-protection nonce, scoped to the outside execution context" }, "execute_after": { "type": "string", "title": "Execute After", "description": "Unix timestamp. The message cannot be executed before this time." }, "execute_before": { "type": "string", "title": "Execute Before", "description": "Unix timestamp. The message cannot be executed after this time." }, "calls": { "items": { "$ref": "#/components/schemas/StarknetOutsideCallSchema" }, "type": "array", "minItems": 1, "title": "Calls", "description": "The calls to execute on the user's account." } }, "type": "object", "required": [ "caller", "nonce", "execute_after", "execute_before", "calls" ], "title": "Outside Execution (SNIP-9)" }, "StarknetOptions": { "type": "string", "enum": ["validation", "simulation"], "title": "Options" }, "StarknetRelationshipType": { "type": "string", "enum": ["created_by", "first_funded_by", "paid_by", "related_to"], "title": "RelationshipType" }, "StarknetRiskLevel": { "type": "string", "enum": ["low", "medium", "high", "severe"], "title": "RiskLevel" }, "StarknetSimulationErrorSchema": { "properties": { "status": { "type": "string", "const": "Error", "title": "Status" }, "error": { "type": "string", "title": "Error", "description": "Error message" } }, "type": "object", "required": ["status", "error"], "title": "Simulation Error" }, "StarknetStarknetSimulationResultSchema": { "properties": { "status": { "type": "string", "const": "Success", "title": "Status" }, "assets_diffs": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/StarknetERC20AssetDiff", "docs_api_name": "ERC20AssetDiff", "title": "ERC20 Asset Diff" }, { "$ref": "#/components/schemas/StarknetERC721AssetDiff", "docs_api_name": "ERC721AssetDiff", "title": "ERC721 Asset Diff" }, { "$ref": "#/components/schemas/StarknetERC1155AssetDiff", "docs_api_name": "ERC1155AssetDiff", "title": "ERC1155 Asset Diff" } ] }, "type": "array", "description": "Assets diff of an account address" }, "type": "object", "title": "Assets Diffs", "description": "Mapping between the address of an account to the assets diff during the transaction" }, "exposures": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/StarknetERC20Exposure", "docs_api_name": "ERC20Exposure", "title": "ERC20 Exposure" }, { "$ref": "#/components/schemas/StarknetERC721Exposure", "docs_api_name": "ERC721Exposure", "title": "ERC721 Exposure" }, { "$ref": "#/components/schemas/StarknetERC1155Exposure", "docs_api_name": "ERC1155Exposure", "title": "ERC1155 Exposure" } ] }, "type": "array" }, "type": "object", "title": "Exposures", "description": "Mapping between the address of an account to the exposure of the assets during the transaction" }, "address_details": { "items": { "$ref": "#/components/schemas/StarknetAddressDetailsBaseSchema" }, "type": "array", "title": "Address Details", "description": "Details of addresses involved in the transaction" }, "account_summary": { "$ref": "#/components/schemas/StarknetAccountSummary", "description": "Summary of the actions and asset transfers that were made by the requested account address", "docs_api_name": "AccountSummary", "title": "Account Summary" }, "block_number": { "type": "string", "title": "Block Number", "description": "Optional block number or tag context for the simulation", "nullable": true } }, "type": "object", "required": ["status", "account_summary"], "title": "Simulation Result" }, "StarknetTotalUsdDiffSchema": { "properties": { "in": { "type": "number", "title": "In", "description": "Total incoming USD transfers" }, "out": { "type": "number", "title": "Out", "description": "Total outgoing USD transfers" }, "total": { "type": "number", "title": "Total", "description": "Total USD transfers" } }, "type": "object", "required": ["in", "out"], "title": "Total USD Diff" }, "StarknetTransactionScanRequest": { "properties": { "chain": { "anyOf": [ { "$ref": "#/components/schemas/StarknetChain", "description": "A CAIP-2 or a Starknet network name or a Starknet network name", "title": "Chain Name" }, { "type": "string", "title": "Chain ID", "description": "A Starknet network ID as hex or decimal string" } ], "title": "Chain", "description": "The chain name or chain ID" }, "options": { "items": { "$ref": "#/components/schemas/StarknetOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "title": "Options", "description": "List of options to include in the response\n- `Options.validation`: Include Options.validation output in the response\n\n- `Options.simulation`: Include Options.simulation output in the response\n", "default": ["validation", "simulation"] }, "account_address": { "type": "string", "title": "Account Address" }, "transaction": { "anyOf": [ { "$ref": "#/components/schemas/StarknetInvokeV1TransactionSchema" }, { "$ref": "#/components/schemas/StarknetInvokeV3TransactionSchema" }, { "$ref": "#/components/schemas/StarknetDeployAccountV1TransactionSchema" }, { "$ref": "#/components/schemas/StarknetDeployAccountV3TransactionSchema" }, { "$ref": "#/components/schemas/StarknetOutsideExecutionSchema" } ], "title": "Transaction" }, "metadata": { "anyOf": [ { "$ref": "#/components/schemas/StarknetWalletRequestMetadata" }, { "$ref": "#/components/schemas/StarknetInAppRequestMetadata" } ], "title": "Metadata", "description": "Metadata" }, "block_number": { "type": "string", "title": "Block Number", "description": "Optional block number or tag context for the simulation", "nullable": true } }, "type": "object", "required": ["chain", "account_address", "transaction", "metadata"], "title": "Request" }, "StarknetUpdateLabelRequest": { "properties": { "chains": { "items": { "type": "string" }, "type": "array", "title": "Chains" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": ["chains"], "title": "UpdateLabelRequest" }, "StarknetValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError" }, "StarknetValidationErrorSchema": { "properties": { "status": { "type": "string", "const": "Error", "title": "Status" }, "error": { "type": "string", "title": "Error", "description": "Error message" } }, "type": "object", "required": ["status", "error"], "title": "Validation Error" }, "StarknetValidationFeatureType": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Info"], "title": "ValidationFeatureType" }, "StarknetVerdict": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Error"], "title": "Verdict" }, "StarknetWalletRequestMetadata": { "properties": { "type": { "type": "string", "const": "wallet", "title": "Type", "description": "Metadata for wallet requests" }, "url": { "type": "string", "title": "Url", "description": "URL of the dApp originating the transaction" } }, "type": "object", "required": ["type", "url"], "title": "Wallet Request Metadata" }, "StarknetValidationFeature": { "properties": { "type": { "$ref": "#/components/schemas/StarknetValidationFeatureType", "description": "Feature Classification", "title": "type" }, "feature_id": { "type": "string", "title": "feature_id", "description": "" }, "description": { "type": "string", "title": "Description", "description": "Textual description" }, "address": { "type": "string", "title": "Address", "description": "Address the feature refers to" } }, "type": "object", "required": ["type", "feature_id", "description", "address"], "title": "ValidationFeatureSchemaType[Annotated[int, SkipValidation, PlainSerializer, GetPydanticSchema]]" }, "StarknetValidationResult": { "properties": { "status": { "type": "string", "const": "Success", "title": "Status" }, "result_type": { "$ref": "#/components/schemas/StarknetVerdict", "description": "Verdict of the validation", "title": "Result Verdict" }, "description": { "type": "string", "title": "Description", "description": "A textual description about the validation result" }, "reason": { "type": "string", "title": "Reason", "description": "A textual description about the reasons the transaction was flagged with result_type" }, "classification": { "type": "string", "title": "Classification", "description": "A textual classification that can be presented to the user explaining the reason." }, "features": { "items": { "$ref": "#/components/schemas/StarknetValidationFeature", "docs_api_name": "ValidationFeature", "title": "Feature" }, "type": "array", "title": "Features" } }, "type": "object", "required": [ "status", "result_type", "description", "reason", "classification", "features" ], "title": "Validation Result" }, "StarknetAccountSummary": { "properties": { "account_assets_diffs": { "items": { "anyOf": [ { "$ref": "#/components/schemas/StarknetERC20AssetDiff", "docs_api_name": "ERC20AssetDiff", "title": "ERC20 Asset Diff" }, { "$ref": "#/components/schemas/StarknetERC721AssetDiff", "docs_api_name": "ERC721AssetDiff", "title": "ERC721 Asset Diff" }, { "$ref": "#/components/schemas/StarknetERC1155AssetDiff", "docs_api_name": "ERC1155AssetDiff", "title": "ERC1155 Asset Diff" } ] }, "type": "array", "title": "Account Assets Diffs", "description": "Assets diffs of the requested account address" }, "account_exposures": { "items": { "anyOf": [ { "$ref": "#/components/schemas/StarknetERC20Exposure", "docs_api_name": "ERC20Exposure", "title": "ERC20 Exposure" }, { "$ref": "#/components/schemas/StarknetERC721Exposure", "docs_api_name": "ERC721Exposure", "title": "ERC721 Exposure" }, { "$ref": "#/components/schemas/StarknetERC1155Exposure", "docs_api_name": "ERC1155Exposure", "title": "ERC1155 Exposure" } ] }, "type": "array", "title": "Account Exposures", "description": "Exposures made by the requested account address" }, "total_usd_diff": { "$ref": "#/components/schemas/StarknetTotalUsdDiffSchema", "description": "Total USD diff for the requested account address" }, "total_usd_exposure": { "additionalProperties": { "type": "number" }, "type": "object", "title": "Total USD Exposure", "description": "Total USD exposure for each of the spender addresses during the transaction" } }, "type": "object", "required": ["account_exposures", "total_usd_diff"], "title": "Account Summary" }, "StarknetERC1155Exposure": { "properties": { "asset": { "$ref": "#/components/schemas/StarknetERC1155Details", "docs_api_name": "ERC1155Details" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/StarknetERC1155ExposureSchema" }, "type": "object", "title": "Spenders", "description": "Mapping between the spender address and the exposure of the asset" } }, "type": "object", "required": ["asset"], "title": "AddressAssetExposureSchemaType[Annotated[int, SkipValidation, PlainSerializer, GetPydanticSchema], Annotated[ERC1155DetailsSchema[Annotated[int, SkipValidation, PlainSerializer, GetPydanticSchema]], FieldInfo(annotation=NoneType, required=True, json_schema_extra={'docs_api_name': 'ERC1155Details'})], ERC1155ExposureSchema]" }, "StarknetERC721Exposure": { "properties": { "asset": { "$ref": "#/components/schemas/StarknetERC721Details", "docs_api_name": "ERC721Details" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/StarknetERC721ExposureSchema" }, "type": "object", "title": "Spenders", "description": "Mapping between the spender address and the exposure of the asset" } }, "type": "object", "required": ["asset"], "title": "AddressAssetExposureSchemaType[Annotated[int, SkipValidation, PlainSerializer, GetPydanticSchema], Annotated[ERC721DetailsSchema[Annotated[int, SkipValidation, PlainSerializer, GetPydanticSchema]], FieldInfo(annotation=NoneType, required=True, json_schema_extra={'docs_api_name': 'ERC721Details'})], ERC721ExposureSchema]" }, "StarknetERC20Exposure": { "properties": { "asset": { "$ref": "#/components/schemas/StarknetERC20Details", "docs_api_name": "ERC20Details" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/StarknetERC20ExposureSchema" }, "type": "object", "title": "Spenders", "description": "Mapping between the spender address and the exposure of the asset" } }, "type": "object", "required": ["asset"], "title": "AddressAssetExposureSchemaType[Annotated[int, SkipValidation, PlainSerializer, GetPydanticSchema], Annotated[ERC20DetailsSchema[Annotated[int, SkipValidation, PlainSerializer, GetPydanticSchema]], FieldInfo(annotation=NoneType, required=True, json_schema_extra={'docs_api_name': 'ERC20Details'})], ERC20ExposureSchema]" }, "StarknetERC1155AssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/StarknetERC1155Details" }, "in": { "$ref": "#/components/schemas/StarknetERC1155DiffSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/StarknetERC1155DiffSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[ERC1155DetailsSchema[Annotated[int, SkipValidation, PlainSerializer, GetPydanticSchema]], ERC1155DiffSchema]" }, "StarknetERC721AssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/StarknetERC721Details" }, "in": { "$ref": "#/components/schemas/StarknetERC721DiffSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/StarknetERC721DiffSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[ERC721DetailsSchema[Annotated[int, SkipValidation, PlainSerializer, GetPydanticSchema]], ERC721DiffSchema]" }, "StarknetERC20AssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/StarknetERC20Details" }, "in": { "$ref": "#/components/schemas/StarknetERC20DiffSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/StarknetERC20DiffSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[ERC20DetailsSchema[Annotated[int, SkipValidation, PlainSerializer, GetPydanticSchema]], ERC20DiffSchema]" }, "StarknetValidationResponse": { "anyOf": [ { "$ref": "#/components/schemas/StarknetValidationResult", "docs_api_name": "ValidationResult", "title": "Validation Successful Result" }, { "$ref": "#/components/schemas/StarknetValidationErrorSchema" } ], "title": "ValidationResponseSchemaType[Annotated[int, SkipValidation, PlainSerializer, GetPydanticSchema]]" }, "StarknetAppealTransactionDataReport": { "properties": { "type": { "type": "string", "const": "params", "title": "Type", "default": "params" }, "params": { "$ref": "#/components/schemas/StarknetTransactionScanRequest" } }, "type": "object", "required": ["params"], "title": "Appeal Transaction Data Report" }, "StarknetERC721Details": { "properties": { "type": { "type": "string", "const": "ERC721", "title": "Type", "description": "Type of the asset (`ERC721`)", "default": "ERC721" }, "name": { "type": "string", "title": "Name", "description": "token's name" }, "symbol": { "type": "string", "title": "Symbol", "description": "token's symbol" }, "address": { "type": "string", "title": "Address", "description": "Address of the token's contract" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "URL of the asset's logo", "nullable": true } }, "type": "object", "required": ["name", "symbol", "address"], "title": "ERC721 Asset Details" }, "StarknetERC20Details": { "properties": { "type": { "type": "string", "const": "ERC20", "title": "Type", "description": "Type of the asset (`ERC20`)", "default": "ERC20" }, "name": { "type": "string", "title": "Name", "description": "token's name" }, "symbol": { "type": "string", "title": "Symbol", "description": "token's symbol" }, "address": { "type": "string", "title": "Address", "description": "Address of the token's contract" }, "decimals": { "type": "integer", "title": "Decimals", "description": "token's decimals" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "URL of the asset's logo", "nullable": true } }, "type": "object", "required": ["name", "symbol", "address", "decimals"], "title": "ERC20 Asset Details" }, "StarknetERC1155Details": { "properties": { "type": { "type": "string", "const": "ERC1155", "title": "Type", "description": "Type of the asset (`ERC1155`)", "default": "ERC1155" }, "name": { "type": "string", "title": "Name", "description": "token's name" }, "symbol": { "type": "string", "title": "Symbol", "description": "token's symbol" }, "address": { "type": "string", "title": "Address", "description": "Address of the token's contract" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "URL of the asset's logo", "nullable": true } }, "type": "object", "required": ["name", "symbol", "address"], "title": "ERC1155 Asset Details" }, "StarknetReportTransactionRequest": { "properties": { "event": { "$ref": "#/components/schemas/StarknetAppealTypes" }, "report": { "anyOf": [ { "$ref": "#/components/schemas/StarknetAppealRequestId" }, { "$ref": "#/components/schemas/StarknetAppealTransactionDataReport", "docs_api_name": "AppealTransactionDataReport" } ], "title": "Report" }, "details": { "type": "string", "title": "Details" } }, "type": "object", "required": ["event", "report", "details"], "title": "AppealRequest[TransactionScanRequest]" }, "StarknetTransactionScanResponse": { "properties": { "simulation": { "anyOf": [ { "$ref": "#/components/schemas/StarknetStarknetSimulationResultSchema" }, { "$ref": "#/components/schemas/StarknetSimulationErrorSchema" } ], "title": "Simulation", "description": "Simulation result; Only present if simulation option is included in the request", "nullable": true }, "validation": { "$ref": "#/components/schemas/StarknetValidationResponse", "description": "Validation result; Only present if validation option is included in the request", "docs_api_name": "ValidationResponse", "nullable": true, "title": "Validation" } }, "type": "object", "title": "Response" }, "SuiAbiError": { "type": "object" }, "SuiAbiFunction": { "properties": { "signature": { "type": "string", "title": "Signature" }, "inputs": { "items": { "$ref": "#/components/schemas/SuiAbiFunctionInput" }, "type": "array", "title": "Inputs" }, "outputs": { "items": { "$ref": "#/components/schemas/SuiAbiFunctionInput" }, "type": "array", "title": "Outputs" } }, "type": "object", "required": ["signature", "inputs", "outputs"], "title": "AbiFunction" }, "SuiAbiFunctionInput": { "properties": { "name": { "type": "string", "title": "Name" }, "type": { "type": "string", "title": "Type" } }, "type": "object", "required": ["name", "type"], "title": "AbiFunctionInput" }, "SuiAddressAssetExposureSchemaType_SuiAddress_Union_NativeAssetDetailsSchema__CoinDetailsSchema__NFTDetailsSchema__AssetExposureSchema_": { "properties": { "asset": { "anyOf": [ { "$ref": "#/components/schemas/SuiNativeAssetDetailsSchema" }, { "$ref": "#/components/schemas/SuiSuiCoinDetailsSchema" }, { "$ref": "#/components/schemas/SuiNFTDetailsSchema" } ], "title": "Asset" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/SuiAssetExposureSchema" }, "type": "object", "title": "Spenders", "description": "Mapping between the spender address and the exposure of the asset" } }, "type": "object", "required": ["asset"], "title": "AddressAssetExposureSchemaType[SuiAddress, Union[NativeAssetDetailsSchema, CoinDetailsSchema, NFTDetailsSchema], AssetExposureSchema]" }, "SuiAddressCreateRequest": { "properties": { "address": { "type": "string", "title": "Address" }, "alias_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias Name" }, "linked_service": { "anyOf": [ { "$ref": "#/components/schemas/SuiLinkedServiceRequest" }, { "type": "null" } ] } }, "type": "object", "required": ["address"], "title": "AddressCreateRequest" }, "SuiAddressDetailsBaseSchema_SuiAddress_": { "properties": { "account_address": { "type": "string", "title": "Account Address", "description": "Encoded public key of the account" }, "description": { "type": "string", "title": "Description", "description": "Description of the account", "nullable": true } }, "type": "object", "required": ["account_address"], "title": "Address Details" }, "SuiAddressEnrichResponseSchema": { "properties": { "result_type": { "anyOf": [ { "$ref": "#/components/schemas/SuiResultType" }, { "$ref": "#/components/schemas/SuiInternalVerdict" } ], "title": "Result Verdict", "description": "Verdict of the validation" }, "features": { "items": { "$ref": "#/components/schemas/SuiAddressFeatureModel" }, "type": "array", "title": "Features", "description": "A list of textual features about this transaction that can be presented to the user." }, "address": { "type": "string", "title": "Address" }, "chain": { "$ref": "#/components/schemas/SuiChain" }, "info_labels": { "items": { "$ref": "#/components/schemas/SuiAddressInfoLabel" }, "type": "array", "title": "Info Labels" }, "abi": { "anyOf": [ { "$ref": "#/components/schemas/SuiContractAbi" }, { "type": "null" } ] }, "metadata": { "anyOf": [ { "$ref": "#/components/schemas/SuiObjectEntityMetadata" }, { "$ref": "#/components/schemas/SuiTokenMetadataSchema" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": ["result_type", "address", "chain"], "title": "AddressEnrichResponseSchema" }, "SuiAddressFeatureModel": { "properties": { "type": { "$ref": "#/components/schemas/SuiInternalValidationFeatureType" }, "feature_id": { "type": "string", "title": "Feature Id" }, "description": { "type": "string", "title": "Description" } }, "type": "object", "required": ["type", "feature_id", "description"], "title": "AddressFeatureModel" }, "SuiAddressInfoLabel": { "properties": { "label": { "$ref": "#/components/schemas/SuiInfoLabel" } }, "type": "object", "required": ["label"], "title": "AddressInfoLabel" }, "SuiAddressRelationshipRequest": { "properties": { "relationship": { "$ref": "#/components/schemas/SuiRelationshipType" }, "related_address": { "type": "string", "title": "Related Address" }, "entity_type": { "type": "string", "const": "address", "title": "Entity Type" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "type": "object", "required": ["relationship", "related_address", "entity_type"], "title": "AddressRelationshipRequest" }, "SuiAddressRelationshipResponse": { "properties": { "relationship": { "type": "string", "title": "Relationship" }, "entity_type": { "type": "string", "title": "Entity Type" }, "entity": { "type": "string", "title": "Entity" }, "timestamp": { "type": "integer", "title": "Timestamp" }, "chain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain" } }, "type": "object", "required": ["relationship", "entity_type", "entity", "timestamp"], "title": "AddressRelationshipResponse" }, "SuiAddressResponse": { "properties": { "address": { "type": "string", "title": "Address" }, "risk_level": { "type": "string", "title": "Risk Level" }, "risk_labels": { "items": { "type": "string" }, "type": "array", "title": "Risk Labels" }, "alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias" }, "linked_service": { "anyOf": [ { "$ref": "#/components/schemas/SuiLinkedServiceResponse" }, { "type": "null" } ] }, "labels": { "items": { "$ref": "#/components/schemas/SuiLabelResponse" }, "type": "array", "title": "Labels", "default": [] }, "relationships": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SuiAddressRelationshipResponse" }, "type": "array" }, { "type": "null" } ], "title": "Relationships" } }, "type": "object", "required": ["address", "risk_level", "risk_labels"], "title": "AddressResponse" }, "SuiAddressScanRequestSchema": { "properties": { "address": { "type": "string", "title": "Address" }, "chain": { "$ref": "#/components/schemas/SuiChain" } }, "type": "object", "required": ["address", "chain"], "title": "AddressScanRequestSchema" }, "SuiAddressScanResponseSchema": { "properties": { "result_type": { "anyOf": [ { "$ref": "#/components/schemas/SuiResultType" }, { "$ref": "#/components/schemas/SuiInternalVerdict" } ], "title": "Result Verdict", "description": "Verdict of the validation" }, "features": { "items": { "$ref": "#/components/schemas/SuiAddressFeatureModel" }, "type": "array", "title": "Features", "description": "A list of textual features about this transaction that can be presented to the user." } }, "type": "object", "required": ["result_type"], "title": "AddressScanResponseSchema" }, "SuiAssetExposureSchema": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/SuiAssetTransferDetailsSchema" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the exposure", "nullable": true } }, "type": "object", "required": ["exposure"], "title": "AssetExposureSchema" }, "SuiAssetTransferDetailsSchema": { "properties": { "usd_price": { "type": "number", "title": "Usd Price", "description": "USD price of the asset", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the transfer", "nullable": true }, "value": { "type": "string", "title": "Value", "description": "Value of the transfer" }, "raw_value": { "type": "integer", "title": "Raw Value", "description": "Raw value of the transfer" } }, "type": "object", "required": ["value", "raw_value"], "title": "Asset Transfer Details" }, "SuiBulkCreateMonitoredAddressesRequest": { "properties": { "addresses": { "items": { "type": "string" }, "type": "array", "title": "Addresses" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "label": { "type": "string", "title": "Label", "default": "" }, "organization_id": { "type": "string", "title": "Organization Id" } }, "type": "object", "required": ["addresses", "organization_id"], "title": "BulkCreateMonitoredAddressesRequest" }, "SuiBulkRequest": { "properties": { "addresses": { "items": { "type": "string" }, "type": "array", "title": "Addresses" }, "chain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain" } }, "type": "object", "required": ["addresses"], "title": "BulkRequest" }, "SuiChain": { "type": "string", "enum": ["mainnet"], "title": "Chain" }, "SuiCoinDetailsSchema": { "properties": { "type": { "type": "string", "const": "COIN", "title": "Type", "description": "Type of the asset (`COIN`)", "default": "COIN" }, "id": { "type": "string", "title": "Id", "description": "The Coin ID" }, "name": { "type": "string", "title": "Name", "description": "The Coin name" }, "symbol": { "type": "string", "title": "Symbol", "description": "The Coin's symbol" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "URL of the asset's logo", "nullable": true }, "decimals": { "type": "integer", "title": "Decimals", "description": "Decimals of the asset" } }, "type": "object", "required": ["id", "name", "symbol", "decimals"], "title": "Coin Asset Details" }, "SuiContractAbi": { "properties": { "functions": { "items": { "$ref": "#/components/schemas/SuiAbiFunction" }, "type": "array", "title": "Functions" }, "events": { "items": { "$ref": "#/components/schemas/SuiAbiFunction" }, "type": "array", "title": "Events" }, "errors": { "items": { "$ref": "#/components/schemas/SuiAbiError" }, "type": "array", "title": "Errors" } }, "type": "object", "required": ["functions", "events", "errors"], "title": "ContractAbi" }, "SuiCreateLabelRequest": { "properties": { "label_name": { "$ref": "#/components/schemas/SuiLabelName" }, "origin": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Origin", "default": "blockaid" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": ["label_name"], "title": "CreateLabelRequest" }, "SuiDomainRelationshipRequest": { "properties": { "relationship": { "$ref": "#/components/schemas/SuiRelationshipType" }, "related_domain": { "type": "string", "title": "Related Domain" }, "entity_type": { "type": "string", "const": "domain", "title": "Entity Type" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "type": "object", "required": ["relationship", "related_domain", "entity_type"], "title": "DomainRelationshipRequest" }, "SuiEmptyModel": { "properties": {}, "type": "object", "title": "EmptyModel" }, "SuiHTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/SuiValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "SuiInAppRequestMetadata": { "properties": { "type": { "type": "string", "const": "in_app", "title": "Type", "description": "Metadata for in-app requests", "default": "in_app" }, "account": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Account" } ], "title": "Account", "description": "Account information associated with the request" }, "connection": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Connection" } ], "title": "Connection", "description": "Connection metadata including user agent and IP information" } }, "type": "object", "title": "In-App Request Metadata" }, "SuiInfoLabel": { "type": "string", "enum": [ "wallet", "vault", "transparent_upgradeable_proxy", "token", "staking_pool", "smart_account", "safe_smart_account", "safe_proxy", "proxy", "ownable", "minimal_proxy", "liquidity_pool", "erc721", "erc4337", "erc20", "erc1967", "erc1155", "eoa", "eip7702_smart_account", "eip4626", "create2_beacon_proxy", "contract", "beacon_proxy", "argent_wallet_contract", "package", "object", "coin", "nft" ], "title": "InfoLabel" }, "SuiInternalValidationFeatureType": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Info"], "title": "InternalValidationFeatureType" }, "SuiInternalVerdict": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Error"], "title": "InternalVerdict" }, "SuiLabelName": { "type": "string", "enum": [ "custom_malicious", "wallet_drainer", "ofac_address", "malicious_airdrop_operator", "address_poisoning_operator", "rugpull_operator", "address_poisoning_impersonator_wallet", "exploit_contract", "exploiter", "exploit_contract_deployer", "compromised", "malicious_token_deployer", "malicious_implementation", "malicious_contract_deployer", "market_manipulator", "deprecated", "custom_trusted", "custom_trusted_for_spending_funds", "custom_trusted_for_receiving_funds", "verified_contract", "fresh", "empty", "unverified_contract", "infected", "smart_account", "erc4337", "safe_smart_account", "argent_wallet_contract", "eip7702_smart_account", "contract", "wallet", "vault", "liquidity_pool", "staking_pool", "token", "eip4626", "proxy", "implementation", "safe_proxy", "beacon_proxy", "transparent_upgradeable_proxy", "erc1967", "minimal_proxy", "uups_proxy", "create2_beacon_proxy", "proxy_admin", "eip2535", "diamond", "facet", "erc20", "erc20_extensions", "erc721", "erc721_extensions", "erc1155", "erc1155_extensions", "eoa", "ownable", "rbac", "investment_scam", "package", "wallet_customer", "paid_by_malicious_address", "toctou", "toctou_deployer", "malicious_contract", "suspicious_contract", "pig_butchering_disputed", "pig_butchering_investment_scam_site", "pig_butchering_direct_exposure_to_disputed", "pig_butchering_direct_exposure_to_investment_scam_site", "pig_butchering_high_exposure_to_disputed", "pig_butchering_high_exposure_to_investment_scam_site", "pig_butchering_behavior", "pig_butchering_suspicious" ], "title": "LabelName" }, "SuiLabelResponse": { "properties": { "origin": { "type": "string", "title": "Origin" }, "reporting_organization": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reporting Organization" }, "date_added": { "type": "string", "title": "Date Added" }, "is_public": { "type": "boolean", "title": "Is Public" }, "label": { "type": "string", "title": "Label" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "severity": { "$ref": "#/components/schemas/SuiRiskLevel" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": ["origin", "date_added", "is_public", "label", "severity"], "title": "LabelResponse" }, "SuiLabelWithAddressRequest": { "properties": { "label_name": { "$ref": "#/components/schemas/SuiLabelName" }, "origin": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Origin", "default": "blockaid" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "address": { "type": "string", "title": "Address" } }, "type": "object", "required": ["label_name", "address"], "title": "LabelWithAddressRequest" }, "SuiLinkedServiceRequest": { "properties": { "service_name": { "type": "string", "title": "Service Name" }, "service_type": { "type": "string", "title": "Service Type" }, "address_role_in_service": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Role In Service" } }, "type": "object", "required": ["service_name", "service_type"], "title": "LinkedServiceRequest" }, "SuiLinkedServiceResponse": { "properties": { "service_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Service Name" }, "service_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Service Type" }, "address_role_in_service": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Role In Service" } }, "type": "object", "required": ["service_name", "service_type"], "title": "LinkedServiceResponse" }, "SuiMonitoredAddressModel": { "properties": { "address": { "type": "string", "title": "Address" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "label": { "type": "string", "title": "Label", "default": "" }, "organization_id": { "type": "string", "title": "Organization Id" }, "id": { "type": "string", "title": "Id" } }, "type": "object", "required": ["address", "organization_id", "id"], "title": "MonitoredAddressModel" }, "SuiMonitoredAddressRequest": { "properties": { "address": { "type": "string", "title": "Address" }, "chain": { "items": { "type": "string" }, "type": "array", "title": "Chain" }, "label": { "type": "string", "title": "Label", "default": "" }, "organization_id": { "type": "string", "title": "Organization Id" } }, "type": "object", "required": ["address", "chain", "organization_id"], "title": "MonitoredAddressRequest" }, "SuiNFTDetailsSchema": { "properties": { "type": { "type": "string", "const": "NFT", "title": "Type", "description": "Type of the asset (`NFT`)", "default": "NFT" }, "id": { "type": "string", "title": "Id", "description": "The NFT ID" }, "nft_type": { "type": "string", "title": "Nft Type", "description": "The NFT's collection ID" }, "name": { "type": "string", "title": "Name", "description": "NFT's display name" }, "description": { "type": "string", "title": "Description", "description": "The NFT's description" }, "url": { "type": "string", "title": "Url", "description": "URL of the nft's image", "nullable": true } }, "type": "object", "required": ["id", "nft_type", "name", "description"], "title": "NFT Asset Details" }, "SuiNFTDiffSchema": { "properties": { "usd_price": { "type": "number", "title": "Usd Price", "description": "USD price of the asset", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the transfer", "nullable": true }, "id": { "type": "string", "title": "Id", "description": "NFT ID of the transfer" } }, "type": "object", "required": ["id"], "title": "NFT Transfer Details" }, "SuiNativeAssetDetailsSchema": { "properties": { "type": { "type": "string", "const": "NATIVE", "title": "Type", "description": "Type of the asset (`NATIVE`)", "default": "NATIVE" }, "symbol": { "type": "string", "const": "SUI", "title": "Symbol", "description": "Symbol of the asset", "default": "SUI" }, "name": { "type": "string", "const": "Sui", "title": "Name", "description": "Name of the asset", "default": "Sui" }, "decimals": { "type": "integer", "const": 9, "title": "Decimals", "description": "Decimals of the asset", "default": 9 }, "logo_url": { "type": "string", "title": "Logo Url", "description": "URL of the asset's logo", "default": "https://dm8wquhbuh2eq.cloudfront.net/chain/sui-mainnet/token/0x2::sui::SUI" } }, "type": "object", "title": "Native Asset Details" }, "SuiObjectEntityMetadata": { "properties": { "type": { "type": "string", "const": "object", "title": "Type", "default": "object" }, "object_type": { "$ref": "#/components/schemas/SuiObjectTypeMetadata" } }, "type": "object", "required": ["object_type"], "title": "ObjectEntityMetadata" }, "SuiObjectReadResponseSchema": { "properties": { "data": { "type": "object", "title": "Data" } }, "type": "object", "required": ["data"], "title": "ObjectReadResponseSchema" }, "SuiObjectSampleRequestSchema": { "properties": { "objects": { "items": { "$ref": "#/components/schemas/SuiSampleRequest" }, "type": "array", "title": "Objects" } }, "type": "object", "required": ["objects"], "title": "ObjectSampleRequestSchema" }, "SuiObjectSampleResponseSchema": { "properties": { "data": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SuiSampleResult" }, { "$ref": "#/components/schemas/SuiSampleError" } ] }, "type": "array", "title": "Data" } }, "type": "object", "required": ["data"], "title": "ObjectSampleResponseSchema" }, "SuiObjectTypeMetadata": { "properties": { "package_id": { "type": "string", "title": "Package Id" }, "module": { "type": "string", "title": "Module" }, "struct_name": { "type": "string", "title": "Struct Name" } }, "type": "object", "required": ["package_id", "module", "struct_name"], "title": "ObjectTypeMetadata" }, "SuiOptions": { "type": "string", "enum": ["validation", "simulation"], "title": "Options" }, "SuiPostTransactionRequestData": { "properties": { "tx_hash": { "type": "string", "title": "Tx Hash" } }, "type": "object", "required": ["tx_hash"], "title": "PostTransactionRequestData" }, "SuiPostTransactionRequestMetadata": { "properties": { "non_dapp": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Non Dapp", "description": "Indicates that the transaction was not initiated by a dapp. Use false when the transaction is from a dapp.", "default": false }, "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "description": "cross reference transaction against the domain." } }, "type": "object", "title": "PostTransactionRequestMetadata" }, "SuiPostTransactionRequestSchema": { "properties": { "metadata": { "$ref": "#/components/schemas/SuiPostTransactionRequestMetadata" }, "chain": { "$ref": "#/components/schemas/SuiChain" }, "options": { "items": { "$ref": "#/components/schemas/SuiOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "title": "Options", "description": "List of options to include in the response\n- `Options.validation`: Include Options.validation output in the response\n\n- `Options.simulation`: Include Options.simulation output in the response\n", "default": ["simulation", "validation"] }, "data": { "$ref": "#/components/schemas/SuiPostTransactionRequestData" } }, "type": "object", "required": ["metadata", "chain", "data"], "title": "PostTransactionRequestSchema" }, "SuiRelationshipType": { "type": "string", "enum": ["created_by", "first_funded_by", "paid_by", "related_to"], "title": "RelationshipType" }, "SuiResultType": { "type": "string", "enum": ["Benign", "Spam", "Warning", "Malicious"], "title": "ResultType" }, "SuiRiskLevel": { "type": "string", "enum": ["low", "medium", "high", "severe"], "title": "RiskLevel" }, "SuiSampleError": { "properties": { "status": { "type": "string", "const": "error", "title": "Status", "default": "error" }, "object_id": { "type": "string", "title": "Object Id" }, "object_version": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Object Version" }, "field_path": { "type": "string", "title": "Field Path" }, "error": { "type": "string", "title": "Error" } }, "type": "object", "required": ["object_id", "field_path", "error"], "title": "SampleError" }, "SuiSampleRequest": { "properties": { "object_id": { "type": "string", "title": "Object Id" }, "object_version": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Object Version" }, "field_path": { "type": "string", "title": "Field Path" } }, "type": "object", "required": ["object_id", "field_path"], "title": "SampleRequest" }, "SuiSampleResult": { "properties": { "status": { "type": "string", "const": "success", "title": "Status", "default": "success" }, "value": { "anyOf": [ { "type": "integer" }, { "type": "string" }, { "type": "number" } ], "title": "Value" }, "object_id": { "type": "string", "title": "Object Id" }, "object_version": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Object Version" }, "timestamp": { "type": "string", "format": "date-time", "title": "Timestamp" }, "field_path": { "type": "string", "title": "Field Path" } }, "type": "object", "required": ["value", "object_id", "timestamp", "field_path"], "title": "SampleResult" }, "SuiSimulationErrorSchema": { "properties": { "status": { "type": "string", "const": "Error", "title": "Status" }, "error": { "type": "string", "title": "Error", "description": "Error message" } }, "type": "object", "required": ["status", "error"], "title": "Simulation Error" }, "SuiSimulationParams": { "properties": { "from": { "type": "string", "title": "From" }, "value": { "type": "string", "title": "Value" }, "block_tag": { "type": "string", "title": "Block Tag" }, "chain": { "type": "string", "title": "Chain" } }, "additionalProperties": true, "type": "object", "required": ["from", "value", "block_tag", "chain"], "title": "SimulationParams" }, "SuiSuiCoinDetailsSchema": { "properties": { "type": { "type": "string", "const": "fungible", "title": "Type", "description": "Type of the asset (`Coin`)", "default": "fungible" }, "name": { "type": "string", "title": "Name", "description": "Token's name" }, "symbol": { "type": "string", "title": "Symbol", "description": "Token's symbol (abbreviation)" }, "address": { "type": "string", "title": "Address", "description": "Token's package address" }, "decimals": { "type": "integer", "title": "Decimals", "description": "Token's decimal precision" }, "logo_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Logo Url", "description": "URL of the token's logo" }, "deployer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Deployer", "description": "Address of the token's deployer" }, "creation_timestamp": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Creation Timestamp" }, "verified": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Verified" }, "scam": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Scam" }, "total_supply": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Total Supply" } }, "type": "object", "required": ["name", "symbol", "address", "decimals"], "title": "Coin Asset Details" }, "SuiSuiNftCollectionDetailsSchema": { "properties": { "type": { "type": "string", "const": "non_fungible", "title": "Type", "description": "Type of the asset (`NFT`)", "default": "non_fungible" }, "name": { "type": "string", "title": "Name", "description": "Token's name" }, "symbol": { "type": "string", "title": "Symbol", "description": "Token's symbol (abbreviation)" }, "address": { "type": "string", "title": "Address", "description": "Token's package address" }, "logo_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Logo Url", "description": "URL of the token's logo" }, "deployer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Deployer", "description": "Address of the token's deployer" }, "creation_timestamp": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Creation Timestamp" }, "description": { "type": "string", "title": "Description" } }, "type": "object", "required": ["name", "symbol", "address", "description"], "title": "NFT Asset Details" }, "SuiSuiRequestSchema": { "properties": { "chain": { "$ref": "#/components/schemas/SuiChain" }, "options": { "items": { "$ref": "#/components/schemas/SuiOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "title": "Options", "description": "List of options to include in the response\n- `Options.validation`: Include Options.validation output in the response\n\n- `Options.simulation`: Include Options.simulation output in the response\n", "default": ["simulation", "validation"] }, "account_address": { "type": "string", "title": "Account Address" }, "transaction": { "type": "string", "title": "Transaction" }, "metadata": { "anyOf": [ { "$ref": "#/components/schemas/SuiWalletRequestMetadata" }, { "$ref": "#/components/schemas/SuiInAppRequestMetadata" } ], "title": "Metadata", "description": "Metadata" }, "transaction_hints": { "$ref": "#/components/schemas/TransactionHints", "title": "Transaction Hints", "description": "Optional customer-supplied hints about transaction intent that cannot be inferred from on-chain simulation." } }, "type": "object", "required": ["chain", "account_address", "transaction", "metadata"], "title": "Request" }, "SuiSuiTokenPricingSchema": { "properties": { "type": { "$ref": "#/components/schemas/SuiTokenType" }, "usd_price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Usd Price" } }, "type": "object", "required": ["type", "usd_price"], "title": "SuiTokenPricingSchema" }, "SuiTokenMetadataSchema": { "properties": { "type": { "type": "string", "enum": ["coin", "nft"], "title": "Type" }, "creator_address": { "type": "string", "title": "Creator Address" } }, "type": "object", "required": ["type", "creator_address"], "title": "TokenMetadataSchema" }, "SuiTokenType": { "type": "string", "enum": ["fungible", "non_fungible"], "title": "TokenType" }, "SuiTotalUsdDiffSchema": { "properties": { "in": { "type": "number", "title": "In", "description": "Total incoming USD transfers" }, "out": { "type": "number", "title": "Out", "description": "Total outgoing USD transfers" }, "total": { "type": "number", "title": "Total", "description": "Total USD transfers" } }, "type": "object", "required": ["in", "out"], "title": "Total USD Diff" }, "SuiUpdateLabelRequest": { "properties": { "chains": { "items": { "type": "string" }, "type": "array", "title": "Chains" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": ["chains"], "title": "UpdateLabelRequest" }, "SuiUpdateMonitoredAddress": { "properties": { "address": { "type": "string", "title": "Address" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Label" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" } }, "type": "object", "required": ["address"], "title": "UpdateMonitoredAddress" }, "SuiValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError" }, "SuiValidationErrorSchema": { "properties": { "status": { "type": "string", "const": "Error", "title": "Status" }, "error": { "type": "string", "title": "Error", "description": "Error message" } }, "type": "object", "required": ["status", "error"], "title": "Validation Error" }, "SuiValidationFeatureType": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Info"], "title": "ValidationFeatureType" }, "SuiVerdict": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Error"], "title": "Verdict" }, "SuiWalletRequestMetadata": { "properties": { "type": { "type": "string", "const": "wallet", "title": "Type", "description": "Metadata for wallet requests" }, "url": { "type": "string", "title": "Url", "description": "URL of the dApp originating the transaction" }, "account": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Account" } ], "title": "Account", "description": "Account information associated with the request" }, "connection": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Connection" } ], "title": "Connection", "description": "Connection metadata including user agent and IP information" } }, "type": "object", "required": ["type", "url"], "title": "Wallet Request Metadata" }, "SuiAccountSummary": { "properties": { "account_assets_diffs": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SuiNativeAssetDiff", "docs_api_name": "NativeAssetDiff", "title": "Native asset Diff" }, { "$ref": "#/components/schemas/SuiNFTAssetDiff", "docs_api_name": "NFTAssetDiff", "title": "NFT Asset Diff" }, { "$ref": "#/components/schemas/SuiCoinsAssetDiff", "docs_api_name": "CoinsAssetDiff", "title": "Coins Asset Diff" } ] }, "type": "array", "title": "Account Assets Diffs", "description": "Assets diffs of the requested account address" }, "total_usd_diff": { "$ref": "#/components/schemas/SuiTotalUsdDiffSchema", "description": "Total USD diff for the requested account address" } }, "type": "object", "required": ["total_usd_diff"], "title": "Account Summary" }, "SuiCoinsAssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/SuiSuiCoinDetailsSchema" }, "in": { "$ref": "#/components/schemas/SuiAssetTransferDetailsSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/SuiAssetTransferDetailsSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[CoinDetailsSchema, AssetTransferDetailsSchema]" }, "SuiNFTAssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/SuiNFTDetailsSchema" }, "in": { "$ref": "#/components/schemas/SuiNFTDiffSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/SuiNFTDiffSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[NFTDetailsSchema, NFTDiffSchema]" }, "SuiNativeAssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/SuiNativeAssetDetailsSchema" }, "in": { "$ref": "#/components/schemas/SuiAssetTransferDetailsSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/SuiAssetTransferDetailsSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[NativeAssetDetailsSchema, AssetTransferDetailsSchema]" }, "SuiValidationFeature": { "properties": { "type": { "$ref": "#/components/schemas/SuiValidationFeatureType", "description": "Feature Classification", "title": "type" }, "feature_id": { "type": "string", "title": "feature_id", "description": "" }, "description": { "type": "string", "title": "Description", "description": "Textual description" }, "address": { "type": "string", "title": "Address", "description": "Address the feature refers to" } }, "type": "object", "required": ["type", "feature_id", "description", "address"], "title": "ValidationFeatureSchemaType[Union[SuiAddress, StructTag]]" }, "SuiValidationResult": { "properties": { "status": { "type": "string", "const": "Success", "title": "Status" }, "result_type": { "$ref": "#/components/schemas/SuiVerdict", "description": "Verdict of the validation", "title": "Result Verdict" }, "description": { "type": "string", "title": "Description", "description": "A textual description about the validation result" }, "reason": { "type": "string", "title": "Reason", "description": "A textual description about the reasons the transaction was flagged with result_type" }, "classification": { "type": "string", "title": "Classification", "description": "A textual classification that can be presented to the user explaining the reason." }, "features": { "items": { "$ref": "#/components/schemas/SuiValidationFeature", "docs_api_name": "ValidationFeature", "title": "Feature" }, "type": "array", "title": "Features" } }, "type": "object", "required": [ "status", "result_type", "description", "reason", "classification", "features" ], "title": "Validation Result" }, "SuiValidationResponse": { "anyOf": [ { "$ref": "#/components/schemas/SuiValidationResult", "docs_api_name": "ValidationResult", "title": "Validation Successful Result" }, { "$ref": "#/components/schemas/SuiValidationErrorSchema" } ], "title": "ValidationResponseSchemaType[Union[SuiAddress, StructTag]]" }, "SuiPostTransactionSimulationResult": { "properties": { "status": { "type": "string", "const": "Success", "title": "Status" }, "assets_diffs": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SuiNativeAssetDiff", "docs_api_name": "NativeAssetDiff", "title": "Native asset Diff" }, { "$ref": "#/components/schemas/SuiNFTAssetDiff", "docs_api_name": "NFTAssetDiff", "title": "NFT Asset Diff" }, { "$ref": "#/components/schemas/SuiCoinsAssetDiff", "docs_api_name": "CoinsAssetDiff", "title": "Coins Asset Diff" } ] }, "type": "array", "description": "Assets diff of an account address" }, "type": "object", "title": "Assets Diffs", "description": "Mapping between the address of an account to the assets diff during the transaction" }, "address_details": { "items": { "$ref": "#/components/schemas/SuiAddressDetailsBaseSchema_SuiAddress_" }, "type": "array", "title": "Address Details", "description": "Details of addresses involved in the transaction" }, "account_summary": { "$ref": "#/components/schemas/SuiAccountSummary", "description": "Summary of the actions and asset transfers that were made by the requested account address", "docs_api_name": "AccountSummary" }, "params": { "$ref": "#/components/schemas/SuiSimulationParams" } }, "type": "object", "required": ["status", "account_summary", "params"], "title": "Simulation Result" }, "SuiSimulationResult": { "properties": { "status": { "type": "string", "const": "Success", "title": "Status" }, "assets_diffs": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SuiNativeAssetDiff", "docs_api_name": "NativeAssetDiff", "title": "Native asset Diff" }, { "$ref": "#/components/schemas/SuiNFTAssetDiff", "docs_api_name": "NFTAssetDiff", "title": "NFT Asset Diff" }, { "$ref": "#/components/schemas/SuiCoinsAssetDiff", "docs_api_name": "CoinsAssetDiff", "title": "Coins Asset Diff" } ] }, "type": "array", "description": "Assets diff of an account address" }, "type": "object", "title": "Assets Diffs", "description": "Mapping between the address of an account to the assets diff during the transaction" }, "address_details": { "items": { "$ref": "#/components/schemas/SuiAddressDetailsBaseSchema_SuiAddress_" }, "type": "array", "title": "Address Details", "description": "Details of addresses involved in the transaction" }, "account_summary": { "$ref": "#/components/schemas/SuiAccountSummary", "description": "Summary of the actions and asset transfers that were made by the requested account address", "docs_api_name": "AccountSummary", "title": "Account Summary" } }, "type": "object", "required": ["status", "account_summary"], "title": "Simulation Result" }, "SuiPostTransactionScanResponse": { "properties": { "simulation": { "anyOf": [ { "$ref": "#/components/schemas/SuiPostTransactionSimulationResult", "docs_api_name": "PostTransactionSimulationResult", "title": "Post Transaction Simulation Result Schema" }, { "$ref": "#/components/schemas/SuiSimulationErrorSchema" } ], "title": "Simulation", "description": "Simulation result; Only present if simulation option is included in the request", "nullable": true }, "validation": { "$ref": "#/components/schemas/SuiValidationResponse", "description": "Validation result; Only present if validation option is included in the request", "docs_api_name": "ValidationResponse", "nullable": true, "title": "Validation" }, "account_address": { "type": "string", "title": "Account Address" } }, "type": "object", "required": ["account_address"], "title": "Response" }, "SuiTransactionScanResponse": { "properties": { "simulation": { "anyOf": [ { "$ref": "#/components/schemas/SuiSimulationResult", "docs_api_name": "SimulationResult", "title": "Simulation Result Schema" }, { "$ref": "#/components/schemas/SuiSimulationErrorSchema" } ], "title": "Simulation", "description": "Simulation result; Only present if simulation option is included in the request", "nullable": true }, "validation": { "$ref": "#/components/schemas/SuiValidationResponse", "description": "Validation result; Only present if validation option is included in the request", "docs_api_name": "ValidationResponse", "nullable": true, "title": "Validation" } }, "type": "object", "title": "Response" }, "SolanaAccountSummary": { "properties": { "account_assets_diff": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaNativeAssetDiff", "docs_api_name": "NativeAssetDiff", "title": "Native SOL Diff" }, { "$ref": "#/components/schemas/SolanaSplFungibleAssetDiff", "docs_api_name": "SplFungibleAssetDiff", "title": "Fungible SPL Diff" }, { "$ref": "#/components/schemas/SolanaSplNonFungibleAssetDiff", "docs_api_name": "SplNonFungibleAssetDiff", "title": "Non Fungible SPL Diff" }, { "$ref": "#/components/schemas/SolanaCnftAssetDiff", "docs_api_name": "CnftAssetDiff", "title": "Compressed Non Fungible Diff" } ] }, "type": "array", "title": "Account Assets Diffs", "description": "Assets diffs of the requested account address" }, "account_delegations": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaCnftDelegation", "docs_api_name": "CnftDelegation", "title": "Cnft Delegation" }, { "$ref": "#/components/schemas/SolanaFungibleSplTokenDelegation", "docs_api_name": "FungibleSplTokenDelegation", "title": "Fungible SPL Token Delegation" }, { "$ref": "#/components/schemas/SolanaNonFungibleSplTokenDelegation", "docs_api_name": "NonFungibleSplTokenDelegation", "title": "Non-Fungible SPL Token Delegation" } ] }, "type": "array", "title": "Account Exposures", "description": "Exposures made by the requested account address" }, "account_ownerships_diff": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaNativeSOLOwnershipDiff", "docs_api_name": "NativeSOLOwnershipDiff", "title": "Native SOL Ownership Diff" }, { "$ref": "#/components/schemas/SolanaStakedSOLOwnershipDiff", "docs_api_name": "StakedSOLOwnershipDiff", "title": "Staked SOL Ownership Diff" }, { "$ref": "#/components/schemas/SolanaFungibleSOLOwnershipDiff", "docs_api_name": "FungibleSOLOwnershipDiff", "title": "Fungible SPL Token Ownership Diff" }, { "$ref": "#/components/schemas/SolanaNonFungibleSOLOwnershipDiff", "docs_api_name": "NonFungibleSOLOwnershipDiff", "title": "Non Fungible SPL Token Ownership Diff" } ] }, "type": "array", "title": "Account Ownership Diffs", "description": "Ownership diffs of the requested account address" }, "total_usd_diff": { "$ref": "#/components/schemas/SolanaTotalUsdDiffSchema", "description": "Total USD diff for the requested account address" }, "total_usd_exposure": { "additionalProperties": { "type": "number" }, "type": "object", "title": "Total USD Exposure", "description": "Total USD exposure for each of the spender addresses during the transaction" } }, "type": "object", "required": [ "account_delegations", "account_ownerships_diff", "total_usd_diff" ], "title": "Account Summary" }, "SolanaAddressChange": { "properties": { "address": { "type": "string", "title": "Address" } }, "additionalProperties": true, "type": "object", "required": ["address"], "title": "AddressChange" }, "SolanaAddressContext": { "properties": { "address": { "type": "string", "title": "Address" }, "obj": { "items": { "$ref": "#/components/schemas/SolanaAddressContextObject" }, "type": "array", "title": "Obj" } }, "additionalProperties": true, "type": "object", "required": ["address", "obj"], "title": "AddressContext" }, "SolanaAddressContextObject": { "properties": { "type": { "type": "string", "title": "Type" }, "trigger": { "type": "string", "title": "Trigger" } }, "additionalProperties": true, "type": "object", "required": ["type", "trigger"], "title": "AddressContextObject" }, "SolanaAddressCreateRequest": { "properties": { "address": { "type": "string", "title": "Address" }, "alias_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias Name" }, "linked_service": { "anyOf": [ { "$ref": "#/components/schemas/SolanaLinkedServiceRequest" }, { "type": "null" } ] } }, "type": "object", "required": ["address"], "title": "AddressCreateRequest" }, "SolanaAddressDetails": { "properties": { "address": { "type": "string", "title": "Address" }, "name_tag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name Tag" }, "contract_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Contract Name" }, "is_eoa": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Eoa" } }, "additionalProperties": true, "type": "object", "required": ["address"], "title": "AddressDetails" }, "SolanaAddressEnrichResponseSchema": { "properties": { "result_type": { "$ref": "#/components/schemas/SolanaInternalVerdict", "description": "Verdict of the validation", "title": "Result Verdict" }, "features": { "items": { "$ref": "#/components/schemas/SolanaAddressFeatureModel" }, "type": "array", "title": "Features", "description": "A list of textual features about this transaction that can be presented to the user." }, "address": { "type": "string", "title": "Address" }, "chain": { "$ref": "#/components/schemas/SolanaChain" }, "info_labels": { "items": { "$ref": "#/components/schemas/SolanaAddressInfoLabel" }, "type": "array", "title": "Info Labels" }, "metadata": { "anyOf": [ { "$ref": "#/components/schemas/SolanaAddressMetadata" }, { "$ref": "#/components/schemas/SolanaEoaMetadata" }, { "$ref": "#/components/schemas/SolanaContractMetadata" }, { "$ref": "#/components/schemas/SolanaMintMetadata" }, { "$ref": "#/components/schemas/SolanaTokenMetadata" }, { "$ref": "#/components/schemas/SolanaCnftMetadata" }, { "$ref": "#/components/schemas/SolanaStakeMetadata" }, { "type": "null" } ], "title": "Metadata" }, "malicious_urls": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Malicious Urls" } }, "type": "object", "required": ["result_type", "address", "chain"], "title": "AddressEnrichResponseSchema" }, "SolanaAddressFeature": { "properties": { "entity": { "type": "string", "const": "address", "title": "Entity", "default": "address" }, "type": { "anyOf": [ { "$ref": "#/components/schemas/SolanaFeatureType" }, { "type": "string" } ], "title": "Type" }, "feature_id": { "type": "string", "title": "Feature Id" }, "description": { "type": "string", "title": "Description" }, "address": { "type": "string", "title": "Address" } }, "type": "object", "required": ["type", "feature_id", "description", "address"], "title": "AddressFeature" }, "SolanaAddressFeatureModel": { "properties": { "type": { "$ref": "#/components/schemas/SolanaInternalValidationFeatureType" }, "feature_id": { "type": "string", "title": "Feature Id" }, "description": { "type": "string", "title": "Description" } }, "type": "object", "required": ["type", "feature_id", "description"], "title": "AddressFeatureModel" }, "SolanaAddressInfoLabel": { "properties": { "label": { "$ref": "#/components/schemas/Solanablockaid_application_runner__app__schemas__transaction_scanning__simulation__InfoLabel" } }, "type": "object", "required": ["label"], "title": "AddressInfoLabel" }, "SolanaAddressMetadata": { "properties": { "type": { "type": "string", "const": "address", "title": "Type", "default": "address" } }, "type": "object", "title": "AddressMetadata" }, "SolanaAddressRelationshipRequest": { "properties": { "relationship": { "$ref": "#/components/schemas/SolanaRelationshipType" }, "related_address": { "type": "string", "title": "Related Address" }, "entity_type": { "type": "string", "const": "address", "title": "Entity Type" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "type": "object", "required": ["relationship", "related_address", "entity_type"], "title": "AddressRelationshipRequest" }, "SolanaAddressRelationshipResponse": { "properties": { "relationship": { "type": "string", "title": "Relationship" }, "entity_type": { "type": "string", "title": "Entity Type" }, "entity": { "type": "string", "title": "Entity" }, "timestamp": { "type": "integer", "title": "Timestamp" }, "chain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain" } }, "type": "object", "required": ["relationship", "entity_type", "entity", "timestamp"], "title": "AddressRelationshipResponse" }, "SolanaAddressResponse": { "properties": { "address": { "type": "string", "title": "Address" }, "risk_level": { "type": "string", "title": "Risk Level" }, "risk_labels": { "items": { "type": "string" }, "type": "array", "title": "Risk Labels" }, "alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias" }, "linked_service": { "anyOf": [ { "$ref": "#/components/schemas/SolanaLinkedServiceResponse" }, { "type": "null" } ] }, "labels": { "items": { "$ref": "#/components/schemas/SolanaLabelResponse" }, "type": "array", "title": "Labels", "default": [] }, "relationships": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaAddressRelationshipResponse" }, "type": "array" }, { "type": "null" } ], "title": "Relationships" } }, "type": "object", "required": ["address", "risk_level", "risk_labels"], "title": "AddressResponse" }, "SolanaAddressScanRequestSchema": { "properties": { "address": { "type": "string", "title": "Address" }, "chain": { "$ref": "#/components/schemas/SolanaMainnetChains", "default": "mainnet" } }, "type": "object", "required": ["address"], "title": "Request" }, "SolanaAddressScanResponseSchema": { "properties": { "result_type": { "$ref": "#/components/schemas/SolanaInternalVerdict", "description": "Verdict of the validation", "title": "Result Verdict" }, "features": { "items": { "$ref": "#/components/schemas/SolanaAddressFeatureModel" }, "type": "array", "title": "Features", "description": "A list of textual features about this transaction that can be presented to the user." } }, "type": "object", "required": ["result_type"], "title": "AddressScanResponseSchema" }, "SolanaArgumentCondition": { "properties": { "index": { "type": "integer", "title": "Index" }, "condition": { "$ref": "#/components/schemas/SolanaCondition" }, "value": { "type": "string", "title": "Value" } }, "additionalProperties": true, "type": "object", "required": ["index", "condition", "value"], "title": "ArgumentCondition" }, "SolanaAssetBalance": { "properties": { "raw_value": { "type": "string", "title": "Raw Value" }, "summary": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Summary" }, "usd_price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Usd Price" }, "value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value" } }, "additionalProperties": true, "type": "object", "required": ["raw_value"], "title": "AssetBalance" }, "SolanaAssetBalanceChanges": { "properties": { "before": { "$ref": "#/components/schemas/SolanaAssetBalance" }, "after": { "$ref": "#/components/schemas/SolanaAssetBalance" } }, "additionalProperties": true, "type": "object", "required": ["before", "after"], "title": "AssetBalanceChanges" }, "SolanaAssetDetails": { "properties": { "type": { "$ref": "#/components/schemas/SolanaAssetType" }, "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address" }, "logo_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Logo Url" }, "decimals": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Decimals" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "symbol": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Symbol" }, "chain_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Name" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "additionalProperties": true, "type": "object", "required": ["type"], "title": "AssetDetails" }, "SolanaAssetDetailsErrorDetails": { "properties": { "type": { "$ref": "#/components/schemas/SolanaAssetType" }, "details": { "$ref": "#/components/schemas/SolanaAssetDetails" } }, "additionalProperties": true, "type": "object", "required": ["type", "details"], "title": "AssetDetailsErrorDetails" }, "SolanaAssetDiff": { "properties": { "raw_value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Raw Value" }, "value": { "anyOf": [ { "type": "number" }, { "type": "string" }, { "type": "null" } ], "title": "Value" }, "usd_price": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "null" } ], "title": "Usd Price" } }, "additionalProperties": true, "type": "object", "title": "AssetDiff" }, "SolanaAssetDiffObject": { "properties": { "asset_type": { "$ref": "#/components/schemas/SolanaAssetType" }, "asset": { "$ref": "#/components/schemas/SolanaAssetDetails" }, "in": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaERC1155AssetValueChange" }, { "$ref": "#/components/schemas/SolanaAssetValueChange" }, { "$ref": "#/components/schemas/SolanaBaseAssetBalance" } ] }, "type": "array", "title": "In" }, "out": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaERC1155AssetValueChange" }, { "$ref": "#/components/schemas/SolanaAssetValueChange" }, { "$ref": "#/components/schemas/SolanaBaseAssetBalance" } ] }, "type": "array", "title": "Out" }, "balance_changes": { "anyOf": [ { "$ref": "#/components/schemas/SolanaAssetBalanceChanges" }, { "items": { "$ref": "#/components/schemas/SolanaERC1155AssetBalanceChanges" }, "type": "array" }, { "type": "null" } ], "title": "Balance Changes" } }, "additionalProperties": true, "type": "object", "required": ["asset_type", "asset", "in", "out"], "title": "AssetDiffObject" }, "SolanaAssetDiffSchema": { "properties": { "usd_price": { "type": "number", "title": "Usd Price", "description": "USD price of the asset", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the transfer", "nullable": true }, "value": { "type": "number", "title": "Value", "description": "Value of the transfer" }, "raw_value": { "type": "integer", "title": "Raw Value", "description": "Raw value of the transfer" } }, "type": "object", "required": ["value", "raw_value"], "title": "Asset Transfer Details" }, "SolanaAssetDiffs": { "properties": { "address": { "type": "string", "title": "Address" }, "obj": { "items": { "$ref": "#/components/schemas/SolanaAssetDiffObject" }, "type": "array", "title": "Obj" } }, "additionalProperties": true, "type": "object", "required": ["address", "obj"], "title": "AssetDiffs" }, "SolanaAssetExposureBaseSchemaType_AssetDiffSchema_": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/SolanaAssetDiffSchema" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the exposure", "nullable": true } }, "type": "object", "required": ["exposure"], "title": "AssetExposureBaseSchemaType[AssetDiffSchema]" }, "SolanaAssetTrace": { "properties": { "type": { "type": "string", "enum": [ "AssetTrace", "NativeAssetTrace", "ERC721AssetTrace", "ERC1155AssetTrace", "ERC20AssetTrace" ], "title": "Type" }, "asset": { "$ref": "#/components/schemas/SolanaAssetDetails" }, "trace_address": { "items": { "type": "integer" }, "type": "array", "title": "Trace Address" }, "log_index": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Log Index" }, "from_address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "From Address" }, "to_address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "To Address" }, "diff": { "anyOf": [ { "$ref": "#/components/schemas/SolanaERC1155AssetBalance" }, { "$ref": "#/components/schemas/SolanaAssetDiff" } ], "title": "Diff" }, "transferred_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Transferred By" }, "labels": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaTraceLabels" }, "type": "array" }, { "type": "null" } ], "title": "Labels" } }, "additionalProperties": true, "type": "object", "required": ["type", "asset", "diff"], "title": "AssetTrace" }, "SolanaAssetType": { "type": "string", "enum": [ "NATIVE", "FUNGIBLE", "NON_FUNGIBLE", "ERC721", "ERC1155", "ERC20", "NONERC" ], "title": "AssetType" }, "SolanaAssetValueChange": { "properties": { "raw_value": { "type": "string", "title": "Raw Value" }, "summary": { "type": "string", "title": "Summary" }, "usd_price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Usd Price" }, "value": { "type": "string", "title": "Value" }, "chain_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Name" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "additionalProperties": true, "type": "object", "required": ["raw_value", "summary", "value"], "title": "AssetValueChange" }, "SolanaBaseAssetBalance": { "properties": { "raw_value": { "type": "string", "title": "Raw Value" }, "summary": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Summary" } }, "additionalProperties": true, "type": "object", "required": ["raw_value"], "title": "BaseAssetBalance" }, "SolanaBaseFeature": { "properties": { "entity": { "type": "string", "title": "Entity" }, "type": { "anyOf": [ { "$ref": "#/components/schemas/SolanaFeatureType" }, { "type": "string" } ], "title": "Type" }, "feature_id": { "type": "string", "title": "Feature Id" }, "description": { "type": "string", "title": "Description" } }, "type": "object", "required": ["entity", "type", "feature_id", "description"], "title": "BaseFeature" }, "SolanaCaip2Chain": { "type": "string", "enum": [ "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", "EtWTRABZaYq6iMfeYKouRu166VU2xqa1", "EAQLJCV2mh23BsK2P9oYpV5CHVLDNHTxY" ], "title": "Caip2Chain" }, "SolanaCallData": { "properties": { "function_selector": { "type": "string", "title": "Function Selector" }, "function_signature": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Function Signature" }, "function_declaration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Function Declaration" }, "params": { "items": { "$ref": "#/components/schemas/SolanaLogParamInfo" }, "type": "array", "title": "Params" } }, "additionalProperties": true, "type": "object", "required": ["function_selector"], "title": "CallData" }, "SolanaCallPolicy": { "properties": { "type": { "type": "string", "const": "CALL_POLICY", "title": "Type", "default": "CALL_POLICY" }, "to_address": { "type": "string", "title": "To Address" }, "method": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Method" }, "value_limit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value Limit" }, "args": { "items": { "$ref": "#/components/schemas/SolanaArgumentCondition" }, "type": "array", "title": "Args" } }, "additionalProperties": true, "type": "object", "required": ["to_address"], "title": "CallPolicy" }, "SolanaChain": { "type": "string", "enum": [ "mainnet", "testnet", "devnet", "eclipse_mainnet", "eclipse_devnet", "sonic_mainnet" ], "title": "Chain" }, "SolanaCnftDetailsSchema": { "properties": { "type": { "type": "string", "const": "CNFT", "title": "Type", "default": "CNFT" }, "name": { "type": "string", "title": "Name", "description": "token's name" }, "symbol": { "type": "string", "title": "Symbol", "description": "token's symbol" }, "address": { "type": "string", "title": "Address", "description": "Address of the token's contract" }, "decimals": { "type": "integer", "const": 0, "title": "Decimals", "default": 0 }, "logo": { "type": "string", "title": "Logo", "description": "URL of the asset's logo", "nullable": true } }, "type": "object", "required": ["name", "symbol", "address"], "title": "cNFT Details" }, "SolanaCnftMetadata": { "properties": { "type": { "type": "string", "const": "cnft", "title": "Type", "default": "cnft" } }, "type": "object", "title": "CnftMetadata" }, "SolanaCnftMintAccountDetailsSchema": { "properties": { "account_address": { "type": "string", "title": "Account Address", "description": "Encoded public key of the account" }, "description": { "type": "string", "title": "Description", "description": "Description of the account", "nullable": true }, "type": { "type": "string", "const": "CNFT_MINT_ACCOUNT", "title": "Type", "default": "CNFT_MINT_ACCOUNT" }, "was_written_to": { "type": "boolean", "title": "Was Written To" }, "was_created": { "type": "boolean", "title": "Was Created" }, "name": { "type": "string", "title": "Name", "description": "Name of the mint" }, "symbol": { "type": "string", "title": "Symbol", "description": "Symbol of the mint" }, "uri": { "type": "string", "title": "Uri", "description": "URI of the mint" }, "logo": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Logo", "description": "Logo of the mint" } }, "type": "object", "required": [ "account_address", "was_written_to", "was_created", "name", "symbol", "uri", "logo" ], "title": "cNFT Mint Account Details" }, "SolanaCondition": { "type": "string", "enum": [ "UNCONSTRAINED", "EQUAL", "GREATER", "LESS", "GREATER_OR_EQUAL", "LESS_OR_EQUAL", "NOT_EQUAL" ], "title": "Condition" }, "SolanaContext": { "properties": { "infected_addresses": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaInfectedAddress" }, "type": "array" }, { "type": "null" } ], "title": "Infected Addresses" }, "profile_addresses": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaInfectedAddress" }, "type": "array" }, { "type": "null" } ], "title": "Profile Addresses" }, "all_involved_addresses": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "All Involved Addresses" }, "urlscan_request_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Urlscan Request Id" }, "organizations_context": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaOrganizationsContext" }, "type": "array" }, { "type": "null" } ], "title": "Organizations Context" } }, "additionalProperties": true, "type": "object", "title": "Context" }, "SolanaContractCreation": { "properties": { "type": { "type": "string", "const": "CONTRACT_CREATION", "title": "Type" }, "deployer_address": { "type": "string", "title": "Deployer Address" } }, "additionalProperties": true, "type": "object", "required": ["type", "deployer_address"], "title": "ContractCreation" }, "SolanaContractEvent": { "properties": { "emitter_address": { "type": "string", "title": "Emitter Address" }, "topics": { "items": { "type": "string" }, "type": "array", "title": "Topics" }, "data": { "type": "string", "title": "Data" }, "emitter_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Emitter Name" }, "params": { "items": { "$ref": "#/components/schemas/SolanaLogParamInfo" }, "type": "array", "title": "Params" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" } }, "additionalProperties": true, "type": "object", "required": ["emitter_address", "topics", "data"], "title": "ContractEvent" }, "SolanaContractManagement": { "properties": { "address": { "type": "string", "title": "Address" }, "obj": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaProxyUpgradeManagement" }, { "$ref": "#/components/schemas/SolanaOwnershipChangeManagement" }, { "$ref": "#/components/schemas/SolanaModulesChangeManagement" }, { "$ref": "#/components/schemas/SolanaSetCodeAccount" }, { "$ref": "#/components/schemas/SolanaContractCreation" }, { "$ref": "#/components/schemas/SolanaGeneralContractManagement" } ] }, "type": "array", "title": "Obj" } }, "additionalProperties": true, "type": "object", "required": ["address", "obj"], "title": "ContractManagement" }, "SolanaContractMetadata": { "properties": { "type": { "type": "string", "const": "contract", "title": "Type", "default": "contract" } }, "type": "object", "title": "ContractMetadata" }, "SolanaCreateLabelRequest": { "properties": { "label_name": { "$ref": "#/components/schemas/SolanaLabelName" }, "origin": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Origin", "default": "blockaid" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": ["label_name"], "title": "CreateLabelRequest" }, "SolanaDomainRelationshipRequest": { "properties": { "relationship": { "$ref": "#/components/schemas/SolanaRelationshipType" }, "related_domain": { "type": "string", "title": "Related Domain" }, "entity_type": { "type": "string", "const": "domain", "title": "Entity Type" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "type": "object", "required": ["relationship", "related_domain", "entity_type"], "title": "DomainRelationshipRequest" }, "SolanaERC1155AssetBalance": { "properties": { "usd_price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Usd Price" }, "token_id": { "type": "string", "title": "Token Id" }, "value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value" }, "arbitrary_collection_token": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Arbitrary Collection Token" }, "logo_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Logo Url" }, "amount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Amount" }, "is_mint": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Mint" } }, "additionalProperties": true, "type": "object", "required": ["token_id"], "title": "ERC1155AssetBalance" }, "SolanaERC1155AssetBalanceChanges": { "properties": { "before": { "$ref": "#/components/schemas/SolanaERC1155AssetBalance" }, "after": { "$ref": "#/components/schemas/SolanaERC1155AssetBalance" } }, "additionalProperties": true, "type": "object", "required": ["before", "after"], "title": "ERC1155AssetBalanceChanges" }, "SolanaERC1155AssetValueChange": { "properties": { "summary": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Summary" }, "token_id": { "type": "string", "title": "Token Id" }, "arbitrary_collection_token": { "type": "boolean", "title": "Arbitrary Collection Token" }, "logo_url": { "type": "string", "title": "Logo Url" }, "usd_price": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Usd Price" }, "value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value" }, "chain_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Name" }, "chain_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain Id" } }, "additionalProperties": true, "type": "object", "required": ["token_id", "arbitrary_collection_token", "logo_url"], "title": "ERC1155AssetValueChange" }, "SolanaERC1155ExposureSpender": { "properties": { "address": { "type": "string", "title": "Address" }, "exposure": { "items": { "$ref": "#/components/schemas/SolanaERC1155AssetValueChange" }, "type": "array", "title": "Exposure" }, "is_approved_for_all": { "type": "boolean", "title": "Is Approved For All" }, "summary": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Summary" } }, "additionalProperties": true, "type": "object", "required": ["address", "exposure", "is_approved_for_all"], "title": "ERC1155ExposureSpender" }, "SolanaEmptyModel": { "properties": {}, "type": "object", "title": "EmptyModel" }, "SolanaEncodingSchema": { "type": "string", "enum": ["base58", "base64"], "title": "EncodingSchema" }, "SolanaEoaMetadata": { "properties": { "type": { "type": "string", "const": "eoa", "title": "Type", "default": "eoa" } }, "type": "object", "title": "EoaMetadata" }, "SolanaEvidence": { "properties": { "addresses": { "items": { "$ref": "#/components/schemas/SolanaEvidenceAddress" }, "type": "array", "title": "Addresses" }, "trace_indexes": { "items": { "type": "integer" }, "type": "array", "title": "Trace Indexes" } }, "type": "object", "required": ["addresses", "trace_indexes"], "title": "Evidence" }, "SolanaEvidenceAddress": { "properties": { "address": { "type": "string", "title": "Address" }, "labels": { "items": { "type": "object" }, "type": "array", "title": "Labels" } }, "type": "object", "required": ["address", "labels"], "title": "EvidenceAddress" }, "SolanaExpirationPolicy": { "properties": { "type": { "type": "string", "const": "EXPIRATION_POLICY", "title": "Type", "default": "EXPIRATION_POLICY" }, "start_time": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Start Time" }, "end_time": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "End Time" } }, "additionalProperties": true, "type": "object", "title": "ExpirationPolicy" }, "SolanaExposureObject": { "properties": { "asset": { "$ref": "#/components/schemas/SolanaAssetDetails" }, "spenders": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaExposureSpender" }, { "$ref": "#/components/schemas/SolanaERC1155ExposureSpender" } ] }, "type": "array", "title": "Spenders" } }, "additionalProperties": true, "type": "object", "required": ["asset", "spenders"], "title": "ExposureObject" }, "SolanaExposureSpender": { "properties": { "address": { "type": "string", "title": "Address" }, "exposure": { "items": { "$ref": "#/components/schemas/SolanaExposureValue" }, "type": "array", "title": "Exposure" }, "summary": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Summary" }, "approval": { "type": "string", "title": "Approval" }, "approval_usd_price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Approval Usd Price" } }, "additionalProperties": true, "type": "object", "required": ["address", "exposure", "approval"], "title": "ExposureSpender" }, "SolanaExposureTrace": { "properties": { "type": { "type": "string", "enum": [ "AssetExposureTrace", "NativeAssetExposureTrace", "ERC20ExposureTrace", "ERC721ExposureTrace", "ERC1155ExposureTrace" ], "title": "Type" }, "asset": { "$ref": "#/components/schemas/SolanaAssetDetails" }, "owner": { "type": "string", "title": "Owner" }, "spender": { "type": "string", "title": "Spender" }, "event": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Event" }, "is_approval_for_all": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Approval For All" }, "exposed": { "anyOf": [ { "$ref": "#/components/schemas/SolanaERC1155AssetBalance" }, { "$ref": "#/components/schemas/SolanaAssetDiff" }, { "type": "null" } ], "title": "Exposed" }, "log_index": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Log Index" }, "trace_address": { "anyOf": [ { "items": { "type": "integer" }, "type": "array" }, { "type": "null" } ], "title": "Trace Address" } }, "additionalProperties": true, "type": "object", "required": ["type", "asset", "owner", "spender"], "title": "ExposureTrace" }, "SolanaExposureValue": { "properties": { "raw_value": { "type": "string", "title": "Raw Value" }, "summary": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Summary" }, "usd_price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Usd Price" }, "value": { "type": "string", "title": "Value" } }, "additionalProperties": true, "type": "object", "required": ["raw_value", "value"], "title": "ExposureValue" }, "SolanaExposures": { "properties": { "address": { "type": "string", "title": "Address" }, "obj": { "items": { "$ref": "#/components/schemas/SolanaExposureObject" }, "type": "array", "title": "Obj" } }, "additionalProperties": true, "type": "object", "required": ["address", "obj"], "title": "Exposures" }, "SolanaFeatureType": { "type": "string", "enum": ["Malicious", "Warning", "Benign", "Info"], "title": "FeatureType" }, "SolanaForceDomainTagRequest": { "properties": { "domain": { "type": "string", "title": "Domain" }, "tag": { "type": "string", "title": "Tag" } }, "type": "object", "required": ["domain", "tag"], "title": "ForceDomainTagRequest" }, "SolanaForceDomainTagResponse": { "properties": { "domain": { "type": "string", "title": "Domain" }, "tag": { "type": "string", "title": "Tag" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": ["domain", "tag", "created_at", "updated_at"], "title": "ForceDomainTagResponse" }, "SolanaFunctionCallTrace": { "properties": { "type": { "type": "string", "const": "FunctionCallTrace", "title": "Type", "default": "FunctionCallTrace" }, "from_address": { "type": "string", "title": "From Address" }, "to_address": { "type": "string", "title": "To Address" }, "function_selector": { "type": "string", "title": "Function Selector" }, "function_signature": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Function Signature" }, "function_declaration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Function Declaration" }, "params": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaLogParamInfo" }, "type": "array" }, { "type": "null" } ], "title": "Params" }, "input": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Input" }, "output": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Output" }, "trace_address": { "anyOf": [ { "items": { "type": "integer" }, "type": "array" }, { "type": "null" } ], "title": "Trace Address" }, "call_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Call Type" } }, "additionalProperties": true, "type": "object", "required": ["from_address", "to_address", "function_selector"], "title": "FunctionCallTrace" }, "SolanaFungibleMintAccountDetailsSchema": { "properties": { "account_address": { "type": "string", "title": "Account Address", "description": "Encoded public key of the account" }, "description": { "type": "string", "title": "Description", "description": "Description of the account", "nullable": true }, "type": { "type": "string", "const": "FUNGIBLE_MINT_ACCOUNT", "title": "Type", "default": "FUNGIBLE_MINT_ACCOUNT" }, "was_written_to": { "type": "boolean", "title": "Was Written To" }, "was_created": { "type": "boolean", "title": "Was Created" }, "name": { "type": "string", "title": "Name", "description": "Name of the mint" }, "symbol": { "type": "string", "title": "Symbol", "description": "Symbol of the mint" }, "logo": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Logo", "description": "Logo of the mint" } }, "type": "object", "required": [ "account_address", "was_written_to", "was_created", "name", "symbol", "logo" ], "title": "Fungible Mint Account Details" }, "SolanaAccountRentFeeSchema": { "properties": { "account_address": { "type": "string", "title": "Account Address" }, "account_type": { "type": "string", "title": "Account Type" }, "lamports": { "type": "string", "title": "Lamports" } }, "type": "object", "required": ["account_address", "account_type", "lamports"], "title": "AccountRentFee" }, "SolanaGasEstimationSchema": { "properties": { "network_fee": { "type": "string", "title": "Network Fee", "description": "Base transaction fee in lamports" }, "priority_fee": { "type": "string", "title": "Priority Fee", "description": "Prioritization fee in lamports" }, "account_rent_fees": { "items": { "$ref": "#/components/schemas/SolanaAccountRentFeeSchema" }, "type": "array", "title": "Account Rent Fees", "description": "Rent deposit fees for newly created accounts", "default": [] }, "total": { "type": "string", "title": "Total", "description": "Total fee in lamports" } }, "type": "object", "required": ["network_fee", "priority_fee", "total"], "title": "GasEstimationSchema" }, "SolanaGasPolicy": { "properties": { "type": { "type": "string", "const": "GAS_POLICY", "title": "Type", "default": "GAS_POLICY" }, "value_limit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value Limit" }, "paymaster": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Paymaster" } }, "additionalProperties": true, "type": "object", "title": "GasPolicy" }, "SolanaGeneralContractManagement": { "properties": { "type": { "type": "string", "title": "Type" } }, "additionalProperties": true, "type": "object", "required": ["type"], "title": "GeneralContractManagement" }, "SolanaGeneralInsufficientFundsErrorDetails": { "properties": { "code": { "type": "string", "const": "GENERAL_INSUFFICIENT_FUNDS", "title": "Code", "default": "GENERAL_INSUFFICIENT_FUNDS" }, "category": { "type": "string", "const": "REVERT", "title": "Category", "default": "REVERT" }, "account_address": { "type": "string", "title": "Account Address" }, "current_balance": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Current Balance" }, "required_balance": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Required Balance" }, "asset": { "$ref": "#/components/schemas/SolanaAssetDetailsErrorDetails" } }, "additionalProperties": true, "type": "object", "required": ["account_address", "asset"], "title": "GeneralInsufficientFundsErrorDetails" }, "SolanaGeneralInvalidAddressErrorDetails": { "properties": { "code": { "type": "string", "const": "GENERAL_INVALID_ADDRESS", "title": "Code", "default": "GENERAL_INVALID_ADDRESS" }, "category": { "type": "string", "const": "INVALID_INPUT", "title": "Category", "default": "INVALID_INPUT" }, "address": { "type": "string", "title": "Address" } }, "additionalProperties": true, "type": "object", "required": ["address"], "title": "GeneralInvalidAddressErrorDetails" }, "SolanaGenericErrorDetails": { "properties": { "code": { "type": "string", "title": "Code" }, "category": { "type": "string", "title": "Category" } }, "additionalProperties": true, "type": "object", "required": ["code", "category"], "title": "GenericErrorDetails" }, "SolanaHTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/SolanaValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "SolanaInfectedAddress": { "properties": { "consumer_name": { "type": "string", "title": "Consumer Name" }, "address": { "type": "string", "title": "Address" }, "organization_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Name" } }, "additionalProperties": true, "type": "object", "required": ["consumer_name", "address"], "title": "InfectedAddress" }, "SolanaInternalValidationFeatureType": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Info"], "title": "InternalValidationFeatureType" }, "SolanaInternalVerdict": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Error"], "title": "InternalVerdict" }, "SolanaInvalidEIP712MessageErrorDetails": { "properties": { "code": { "type": "string", "const": "INVALID_EIP712_MESSAGE", "title": "Code", "default": "INVALID_EIP712_MESSAGE" }, "category": { "type": "string", "const": "INVALID_INPUT", "title": "Category", "default": "INVALID_INPUT" }, "field_name": { "type": "string", "title": "Field Name" }, "field_value": { "type": "string", "title": "Field Value" } }, "additionalProperties": true, "type": "object", "required": ["field_name", "field_value"], "title": "InvalidEIP712MessageErrorDetails" }, "SolanaLabel": { "properties": { "label": { "type": "string", "title": "Label" }, "risk_level": { "$ref": "#/components/schemas/SolanaRiskLevel" }, "details": { "$ref": "#/components/schemas/SolanaLabelDetails" }, "metadata": { "type": "object", "title": "Metadata" }, "evidences": { "items": { "$ref": "#/components/schemas/SolanaEvidence" }, "type": "array", "title": "Evidences" } }, "type": "object", "required": ["label", "risk_level", "details", "metadata", "evidences"], "title": "Label" }, "SolanaLabelDetails": { "properties": { "name": { "type": "string", "title": "Name" }, "description": { "type": "string", "title": "Description" } }, "type": "object", "required": ["name", "description"], "title": "LabelDetails" }, "SolanaLabelName": { "type": "string", "enum": [ "custom_malicious", "wallet_drainer", "ofac_address", "malicious_airdrop_operator", "address_poisoning_operator", "rugpull_operator", "address_poisoning_impersonator_wallet", "exploit_contract", "exploiter", "exploit_contract_deployer", "compromised", "malicious_token_deployer", "malicious_implementation", "malicious_contract_deployer", "market_manipulator", "deprecated", "custom_trusted", "custom_trusted_for_spending_funds", "custom_trusted_for_receiving_funds", "verified_contract", "fresh", "empty", "unverified_contract", "infected", "smart_account", "erc4337", "safe_smart_account", "argent_wallet_contract", "eip7702_smart_account", "contract", "wallet", "vault", "liquidity_pool", "staking_pool", "token", "eip4626", "proxy", "implementation", "safe_proxy", "beacon_proxy", "transparent_upgradeable_proxy", "erc1967", "minimal_proxy", "uups_proxy", "create2_beacon_proxy", "proxy_admin", "eip2535", "diamond", "facet", "erc20", "erc20_extensions", "erc721", "erc721_extensions", "erc1155", "erc1155_extensions", "eoa", "ownable", "rbac", "investment_scam", "package", "wallet_customer", "paid_by_malicious_address", "toctou", "toctou_deployer", "malicious_contract", "suspicious_contract", "pig_butchering_disputed", "pig_butchering_investment_scam_site", "pig_butchering_direct_exposure_to_disputed", "pig_butchering_direct_exposure_to_investment_scam_site", "pig_butchering_high_exposure_to_disputed", "pig_butchering_high_exposure_to_investment_scam_site", "pig_butchering_behavior", "pig_butchering_suspicious" ], "title": "LabelName" }, "SolanaLabelResponse": { "properties": { "origin": { "type": "string", "title": "Origin" }, "reporting_organization": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reporting Organization" }, "date_added": { "type": "string", "title": "Date Added" }, "is_public": { "type": "boolean", "title": "Is Public" }, "label": { "type": "string", "title": "Label" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "severity": { "$ref": "#/components/schemas/SolanaRiskLevel" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": ["origin", "date_added", "is_public", "label", "severity"], "title": "LabelResponse" }, "SolanaLabelWithAddressRequest": { "properties": { "label_name": { "$ref": "#/components/schemas/SolanaLabelName" }, "origin": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Origin", "default": "blockaid" }, "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "address": { "type": "string", "title": "Address" } }, "type": "object", "required": ["label_name", "address"], "title": "LabelWithAddressRequest" }, "SolanaLinkedServiceRequest": { "properties": { "service_name": { "type": "string", "title": "Service Name" }, "service_type": { "type": "string", "title": "Service Type" }, "address_role_in_service": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Role In Service" } }, "type": "object", "required": ["service_name", "service_type"], "title": "LinkedServiceRequest" }, "SolanaLinkedServiceResponse": { "properties": { "service_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Service Name" }, "service_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Service Type" }, "address_role_in_service": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Role In Service" } }, "type": "object", "required": ["service_name", "service_type"], "title": "LinkedServiceResponse" }, "SolanaLogParamInfo": { "properties": { "type": { "type": "string", "title": "Type" }, "value": { "anyOf": [ { "type": "string" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "$ref": "#/components/schemas/SolanaLogParamInfo" }, { "items": { "$ref": "#/components/schemas/SolanaLogParamInfo" }, "type": "array" }, { "items": { "anyOf": [ { "type": "string" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "$ref": "#/components/schemas/SolanaLogParamInfo" }, { "items": { "$ref": "#/components/schemas/SolanaLogParamInfo" }, "type": "array" } ] }, "type": "array" } ], "title": "Value" }, "internalType": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Internaltype" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" } }, "additionalProperties": true, "type": "object", "required": ["type", "value"], "title": "LogParamInfo" }, "SolanaMainnetChains": { "type": "string", "enum": [ "mainnet", "eclipse_mainnet", "sonic_mainnet", "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", "EtWTRABZaYq6iMfeYKouRu166VU2xqa1", "EAQLJCV2mh23BsK2P9oYpV5CHVLDNHTxY" ], "title": "MainnetChains" }, "SolanaMessageScanRequestSchema": { "properties": { "encoding": { "$ref": "#/components/schemas/SolanaEncodingSchema", "default": "base58" }, "chain": { "anyOf": [ { "$ref": "#/components/schemas/SolanaChain" }, { "$ref": "#/components/schemas/SolanaCaip2Chain" } ], "title": "Chain", "default": "mainnet" }, "options": { "items": { "$ref": "#/components/schemas/SolanaOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "title": "Options", "description": "List of options to include in the response\n- `Options.validation`: Include Options.validation output in the response\n\n- `Options.simulation`: Include Options.simulation output in the response\n\n- `Options.gas_estimation`: Include gas estimation output in the response\n", "default": ["validation", "simulation"] }, "account_address": { "type": "string", "title": "Account Address" }, "transactions": { "items": { "type": "string" }, "type": "array", "minItems": 1, "title": "Transactions", "description": "Transactions to scan" }, "metadata": { "$ref": "#/components/schemas/SolanaRequestMetadataSchema" }, "method": { "type": "string", "title": "Method", "description": "The RPC method used by the dApp to propose the transaction", "default": "signAllTransactions" }, "execution_mode": { "$ref": "#/components/schemas/SolanaExecutionMode", "default": "standard", "description": "The execution mode for the transaction(s). Use `jito_bundle` when the transactions are intended to be submitted as a Jito bundle. In bundle mode, simulation uses pre/post account state diffs instead of instruction-level parsing, and validation allows the `account_address` to appear in any (not necessarily all) of the bundle's transactions." } }, "type": "object", "required": ["account_address", "transactions", "metadata"], "title": "Transaction Scanning Request" }, "SolanaExecutionMode": { "type": "string", "enum": ["standard", "jito_bundle"], "title": "ExecutionMode", "description": "Execution mode for transaction scanning. `standard` for regular transactions, `jito_bundle` for Jito bundle transactions." }, "SolanaMintMetadata": { "properties": { "type": { "type": "string", "const": "mint", "title": "Type", "default": "mint" }, "mint_authority": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mint Authority" }, "freeze_authority": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Freeze Authority" } }, "type": "object", "title": "MintMetadata" }, "SolanaModulesChange": { "properties": { "modules": { "items": { "type": "string" }, "type": "array", "title": "Modules" } }, "additionalProperties": true, "type": "object", "required": ["modules"], "title": "ModulesChange" }, "SolanaModulesChangeManagement": { "properties": { "type": { "type": "string", "const": "MODULES_CHANGE", "title": "Type" }, "before": { "$ref": "#/components/schemas/SolanaModulesChange" }, "after": { "$ref": "#/components/schemas/SolanaModulesChange" } }, "additionalProperties": true, "type": "object", "required": ["type", "before", "after"], "title": "ModulesChangeManagement" }, "SolanaNativeAssetDetailsSchema": { "properties": { "type": { "$ref": "#/components/schemas/SolanaNativeToken", "description": "Type of the asset (`\"NativeToken\"`)" }, "decimals": { "type": "integer", "title": "Decimals" }, "logo": { "type": "string", "title": "Logo", "description": "Logo of SOL", "nullable": true } }, "type": "object", "required": ["type", "decimals"], "title": "Native SOL Details" }, "SolanaNativeToken": { "type": "string", "enum": ["SOL", "ETH"], "title": "NativeToken" }, "SolanaNonFungibleMintAccountDetailsSchema": { "properties": { "account_address": { "type": "string", "title": "Account Address", "description": "Encoded public key of the account" }, "description": { "type": "string", "title": "Description", "description": "Description of the account", "nullable": true }, "type": { "type": "string", "const": "NON_FUNGIBLE_MINT_ACCOUNT", "title": "Type", "default": "NON_FUNGIBLE_MINT_ACCOUNT" }, "was_written_to": { "type": "boolean", "title": "Was Written To" }, "was_created": { "type": "boolean", "title": "Was Created" }, "name": { "type": "string", "title": "Name", "description": "Name of the mint" }, "symbol": { "type": "string", "title": "Symbol", "description": "Symbol of the mint" }, "uri": { "type": "string", "title": "Uri", "description": "URI of the mint" }, "logo": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Logo", "description": "Logo of the mint" } }, "type": "object", "required": [ "account_address", "was_written_to", "was_created", "name", "symbol", "uri", "logo" ], "title": "Non-Fungible Mint Account Details" }, "SolanaOptions": { "type": "string", "enum": ["validation", "simulation", "gas_estimation"], "title": "Options" }, "SolanaOrganizationsContext": { "properties": { "address": { "type": "string", "title": "Address" }, "consumer_name": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Consumer Name" }, "organization_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Name" }, "organization_monitored": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Organization Monitored" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" } }, "additionalProperties": true, "type": "object", "required": ["address"], "title": "OrganizationsContext" }, "SolanaOwnershipChange": { "properties": { "owners": { "items": { "type": "string" }, "type": "array", "title": "Owners" } }, "additionalProperties": true, "type": "object", "required": ["owners"], "title": "OwnershipChange" }, "SolanaOwnershipChangeManagement": { "properties": { "type": { "type": "string", "const": "OWNERSHIP_CHANGE", "title": "Type" }, "before": { "$ref": "#/components/schemas/SolanaOwnershipChange" }, "after": { "$ref": "#/components/schemas/SolanaOwnershipChange" } }, "additionalProperties": true, "type": "object", "required": ["type", "before", "after"], "title": "OwnershipChangeManagement" }, "SolanaPdaAccountSchema": { "properties": { "account_address": { "type": "string", "title": "Account Address", "description": "Encoded public key of the account" }, "description": { "type": "string", "title": "Description", "description": "Description of the account", "nullable": true }, "type": { "type": "string", "const": "PDA", "title": "Type", "default": "PDA" }, "was_written_to": { "type": "boolean", "title": "Was Written To" }, "was_created": { "type": "boolean", "title": "Was Created" }, "owner": { "type": "string", "title": "Owner", "description": "The address of the owning program" } }, "type": "object", "required": ["account_address", "was_written_to", "was_created", "owner"], "title": "PDA" }, "SolanaPostTransactionScanRequestSchema": { "properties": { "chain": { "anyOf": [ { "$ref": "#/components/schemas/SolanaChain" }, { "$ref": "#/components/schemas/SolanaCaip2Chain" } ], "title": "Chain", "default": "mainnet" }, "options": { "items": { "$ref": "#/components/schemas/SolanaOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "title": "Options", "description": "List of options to include in the response\n- `Options.validation`: Include Options.validation output in the response\n\n- `Options.simulation`: Include Options.simulation output in the response\n\n- `Options.gas_estimation`: Include gas estimation output in the response\n", "default": ["validation", "simulation"] }, "tx_hash": { "type": "string", "title": "Tx Hash" } }, "type": "object", "required": ["tx_hash"], "title": "PostTransactionScanRequestSchema" }, "SolanaProfileLostUsd": { "properties": { "effective": { "type": "number", "title": "Effective" }, "exposure": { "type": "number", "title": "Exposure" }, "transaction": { "type": "number", "title": "Transaction" }, "total": { "type": "number", "title": "Total" } }, "additionalProperties": true, "type": "object", "required": ["effective", "exposure", "transaction", "total"], "title": "ProfileLostUsd" }, "SolanaProgramAccountDetailsSchema": { "properties": { "account_address": { "type": "string", "title": "Account Address", "description": "Encoded public key of the account" }, "description": { "type": "string", "title": "Description", "description": "Description of the account", "nullable": true }, "type": { "type": "string", "enum": ["PROGRAM", "NATIVE_PROGRAM"], "title": "Type", "default": "PROGRAM" }, "was_written_to": { "type": "boolean", "title": "Was Written To" }, "was_created": { "type": "boolean", "title": "Was Created" } }, "type": "object", "required": ["account_address", "was_written_to", "was_created"], "title": "Program Account Details" }, "SolanaProxyUpgradeManagement": { "properties": { "type": { "type": "string", "const": "PROXY_UPGRADE", "title": "Type" }, "before": { "$ref": "#/components/schemas/SolanaAddressChange" }, "after": { "$ref": "#/components/schemas/SolanaAddressChange" } }, "additionalProperties": true, "type": "object", "required": ["type", "before", "after"], "title": "ProxyUpgradeManagement" }, "SolanaRelationshipType": { "type": "string", "enum": ["created_by", "first_funded_by", "paid_by", "related_to"], "title": "RelationshipType" }, "SolanaReplayContext": { "properties": { "transaction_hash": { "type": "string", "title": "Transaction Hash" }, "consumer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Consumer" }, "address_contexts": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaAddressContext" }, "type": "array" }, { "type": "null" } ], "title": "Address Contexts" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" } }, "additionalProperties": true, "type": "object", "required": ["transaction_hash"], "title": "ReplayContext" }, "SolanaRequest": { "properties": { "transactions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Transactions" }, "method": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Method" }, "metadata": { "$ref": "#/components/schemas/SolanaRequestMetadata" }, "chain": { "type": "string", "title": "Chain" }, "replay_context": { "anyOf": [ { "$ref": "#/components/schemas/SolanaReplayContext" }, { "type": "null" } ] }, "data": { "anyOf": [ { "$ref": "#/components/schemas/SolanaRequestData" }, { "type": "null" } ] }, "transaction_hints": { "$ref": "#/components/schemas/TransactionHints", "title": "Transaction Hints", "description": "Optional customer-supplied hints about transaction intent that cannot be inferred from on-chain simulation." } }, "additionalProperties": true, "type": "object", "required": ["metadata", "chain"], "title": "Request" }, "SolanaRequestData": { "properties": { "method": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Method" }, "_parsed_params": { "anyOf": [ { "$ref": "#/components/schemas/SolanaRequestParsedParams" }, { "type": "string" }, { "type": "null" } ], "title": "Parsed Params" }, "provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } }, "additionalProperties": true, "type": "object", "title": "RequestData" }, "SolanaRequestMetadata": { "properties": { "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain" }, "non_dapp": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Non Dapp", "description": "Indicates that the transaction was not initiated by a dapp. Use false when the transaction is from a dapp.", "default": false }, "provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" }, "chainId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chainid" }, "account": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Account" } ], "title": "Account", "description": "Account information associated with the request" }, "connection": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Connection" } ], "title": "Connection", "description": "Connection metadata including user agent and IP information" } }, "additionalProperties": true, "type": "object", "title": "RequestMetadata" }, "SolanaRequestMetadataSchema": { "properties": { "url": { "type": "string", "title": "Url", "description": "URL of the dApp that originated the transaction", "nullable": true }, "non_dapp": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Non Dapp", "description": "Indicates that the transaction was not initiated by a dapp. Use false when the transaction is from a dapp.", "default": false }, "account": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Account" } ], "title": "Account", "description": "Account information associated with the request" }, "connection": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Connection" } ], "title": "Connection", "description": "Connection metadata including user agent and IP information" } }, "type": "object", "title": "Metadata" }, "SolanaRequestParsedParams": { "properties": { "profile": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Profile" }, "sign_typed_data": { "anyOf": [ { "$ref": "#/components/schemas/SolanaSignTypedData" }, { "type": "null" } ] } }, "additionalProperties": true, "type": "object", "title": "RequestParsedParams" }, "SolanaResponse": { "properties": { "validation": { "anyOf": [ { "$ref": "#/components/schemas/SolanaValidationResultError" }, { "$ref": "#/components/schemas/SolanaValidationResultSuccess" } ], "title": "Validation" }, "simulation": { "anyOf": [ { "$ref": "#/components/schemas/SolanaSimulationSuccess" }, { "$ref": "#/components/schemas/SolanaSimulationError" }, { "type": "null" } ], "title": "Simulation" }, "events": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaContractEvent" }, "type": "array" }, { "type": "null" } ], "title": "Events" }, "account_address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Account Address" }, "chain": { "type": "string", "title": "Chain" }, "block": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Block" } }, "additionalProperties": true, "type": "object", "required": ["validation", "chain"], "title": "Response" }, "SolanaResponseResult": { "properties": { "simulation": { "$ref": "#/components/schemas/SolanaSimulationResultSchema", "description": "Transaction Simulation Result", "nullable": true, "title": "Simulation" }, "validation": { "$ref": "#/components/schemas/SolanaValidationResultSchema", "description": "Transaction Validation Result", "nullable": true, "title": "Validation" }, "gas_estimation": { "$ref": "#/components/schemas/SolanaGasEstimationSchema", "description": "Transaction Gas Estimation", "nullable": true, "title": "Gas Estimation" } }, "type": "object", "required": ["simulation", "validation", "gas_estimation"], "title": "Result" }, "SolanaResponseSchema": { "properties": { "encoding": { "$ref": "#/components/schemas/SolanaEncodingSchema" }, "status": { "$ref": "#/components/schemas/SolanaResponseStatus" }, "result": { "$ref": "#/components/schemas/SolanaResponseResult", "description": "Result of the request", "nullable": true }, "error": { "type": "string", "title": "Error", "description": "Error message if the simulation failed", "nullable": true }, "error_details": { "oneOf": [ { "$ref": "#/components/schemas/Solanamodules__transaction_scanning__controllers__schemas__error__ApiErrorDetails" }, { "$ref": "#/components/schemas/Solanamodules__transaction_scanning__controllers__schemas__error__TransactionErrorDetails" }, { "$ref": "#/components/schemas/Solanamodules__transaction_scanning__controllers__schemas__error__InstructionErrorDetails" } ], "title": "Error Details", "description": "Error details", "discriminator": { "propertyName": "type", "mapping": { "ApiError": "#/components/schemas/Solanamodules__transaction_scanning__controllers__schemas__error__ApiErrorDetails", "InstructionError": "#/components/schemas/Solanamodules__transaction_scanning__controllers__schemas__error__InstructionErrorDetails", "TransactionError": "#/components/schemas/Solanamodules__transaction_scanning__controllers__schemas__error__TransactionErrorDetails" } }, "nullable": true }, "request_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Request Id", "description": "Unique identifier of the request" } }, "type": "object", "required": ["encoding", "status", "request_id"], "title": "Transaction Scanning Result" }, "SolanaResponseStatus": { "type": "string", "enum": ["SUCCESS", "ERROR"], "title": "ResponseStatus" }, "SolanaRiskLevel": { "type": "string", "enum": ["low", "medium", "high", "severe"], "title": "RiskLevel" }, "SolanaScanAddressInfoLabels": { "properties": { "address": { "type": "string", "title": "Address" }, "info_labels": { "items": { "$ref": "#/components/schemas/Solanablockaid_schemas__v0__simulation__response__InfoLabel" }, "type": "array", "title": "Info Labels" } }, "additionalProperties": true, "type": "object", "required": ["address"], "title": "ScanAddressInfoLabels" }, "SolanaScanSessionKey": { "properties": { "key": { "type": "string", "title": "Key" }, "signer": { "type": "string", "title": "Signer" }, "policies": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaCallPolicy" }, { "$ref": "#/components/schemas/SolanaGasPolicy" }, { "$ref": "#/components/schemas/SolanaTransferPolicy" }, { "$ref": "#/components/schemas/SolanaExpirationPolicy" } ] }, "type": "array", "title": "Policies" } }, "additionalProperties": true, "type": "object", "required": ["key", "signer", "policies"], "title": "ScanSessionKey" }, "SolanaScanSessionKeyObj": { "properties": { "address": { "type": "string", "title": "Address" }, "obj": { "items": { "$ref": "#/components/schemas/SolanaScanSessionKey" }, "type": "array", "title": "Obj" } }, "additionalProperties": true, "type": "object", "required": ["address", "obj"], "title": "ScanSessionKeyObj" }, "SolanaScanTrigger": { "type": "string", "enum": ["on-chain", "pre-sign"], "title": "ScanTrigger" }, "SolanaSetCodeAccount": { "properties": { "type": { "type": "string", "const": "SET_CODE_ACCOUNT", "title": "Type" }, "delegated_address": { "type": "string", "title": "Delegated Address" } }, "additionalProperties": true, "type": "object", "required": ["type", "delegated_address"], "title": "SetCodeAccount" }, "SolanaSignTypedData": { "properties": { "primaryType": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Primarytype" }, "domain": { "anyOf": [ { "$ref": "#/components/schemas/SolanaSignTypedDataDomain" }, { "type": "null" } ] }, "message": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Message" } }, "additionalProperties": true, "type": "object", "title": "SignTypedData" }, "SolanaSignTypedDataDomain": { "properties": { "verifyingContract": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Verifyingcontract" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "chainId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chainid" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version" } }, "additionalProperties": true, "type": "object", "title": "SignTypedDataDomain" }, "SolanaSimulationError": { "properties": { "status": { "type": "string", "const": "Error", "title": "Status", "default": "Error" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "error_details": { "anyOf": [ { "$ref": "#/components/schemas/SolanaGeneralInsufficientFundsErrorDetails" }, { "$ref": "#/components/schemas/SolanaGeneralInvalidAddressErrorDetails" }, { "$ref": "#/components/schemas/SolanaUnsupportedEIP712MessageErrorDetails" }, { "$ref": "#/components/schemas/SolanaInvalidEIP712MessageErrorDetails" }, { "$ref": "#/components/schemas/Solanablockaid_schemas__v0__simulation__response__ApiErrorDetails" }, { "$ref": "#/components/schemas/Solanablockaid_schemas__v0__simulation__response__TransactionErrorDetails" }, { "$ref": "#/components/schemas/Solanablockaid_schemas__v0__simulation__response__InstructionErrorDetails" }, { "$ref": "#/components/schemas/SolanaGenericErrorDetails" }, { "type": "null" } ], "title": "Error Details" }, "traces": { "anyOf": [ { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaExposureTrace" }, { "$ref": "#/components/schemas/SolanaAssetTrace" }, { "$ref": "#/components/schemas/SolanaFunctionCallTrace" } ] }, "type": "array" }, { "type": "null" } ], "title": "Traces" } }, "additionalProperties": true, "type": "object", "title": "SimulationError" }, "SolanaSimulationParams": { "properties": { "from": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "From" }, "to": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "To" }, "value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value" }, "data": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Data" }, "block_tag": { "type": "string", "title": "Block Tag" }, "chain": { "type": "string", "title": "Chain" }, "calldata": { "anyOf": [ { "$ref": "#/components/schemas/SolanaCallData" }, { "type": "null" } ] } }, "additionalProperties": true, "type": "object", "required": ["block_tag", "chain"], "title": "SimulationParams" }, "SolanaSimulationResultSchema": { "properties": { "assets_diff": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaNativeAssetDiff", "docs_api_name": "NativeAssetDiff", "title": "Native SOL Diff" }, { "$ref": "#/components/schemas/SolanaSplFungibleAssetDiff", "docs_api_name": "SplFungibleAssetDiff", "title": "Fungible SPL Diff" }, { "$ref": "#/components/schemas/SolanaSplNonFungibleAssetDiff", "docs_api_name": "SplNonFungibleAssetDiff", "title": "Non Fungible SPL Diff" }, { "$ref": "#/components/schemas/SolanaCnftAssetDiff", "docs_api_name": "CnftAssetDiff", "title": "Compressed Non Fungible Diff" } ] }, "type": "array", "description": "Assets diff of an account address" }, "type": "object", "title": "Assets Diffs", "description": "Mapping between the address of an account to the assets diff during the transaction" }, "delegations": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaCnftDelegation", "docs_api_name": "CnftDelegation", "title": "Cnft Delegation" }, { "$ref": "#/components/schemas/SolanaFungibleSplTokenDelegation", "docs_api_name": "FungibleSplTokenDelegation", "title": "Fungible SPL Token Delegation" }, { "$ref": "#/components/schemas/SolanaNonFungibleSplTokenDelegation", "docs_api_name": "NonFungibleSplTokenDelegation", "title": "Non-Fungible SPL Token Delegation" } ] }, "type": "array" }, "type": "object", "title": "Exposures", "description": "Mapping between the address of an account to the exposure of the assets during the transaction" }, "assets_ownership_diff": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaNativeSOLOwnershipDiff", "docs_api_name": "NativeSOLOwnershipDiff", "title": "Native SOL Ownership Diff" }, { "$ref": "#/components/schemas/SolanaStakedSOLOwnershipDiff", "docs_api_name": "StakedSOLOwnershipDiff", "title": "Staked SOL Ownership Diff" }, { "$ref": "#/components/schemas/SolanaFungibleSOLOwnershipDiff", "docs_api_name": "FungibleSOLOwnershipDiff", "title": "Fungible SPL Token Ownership Diff" }, { "$ref": "#/components/schemas/SolanaNonFungibleSOLOwnershipDiff", "docs_api_name": "NonFungibleSOLOwnershipDiff", "title": "Non Fungible SPL Token Ownership Diff" } ] }, "type": "array" }, "type": "object", "title": "Ownership Diffs", "description": "Ownership diffs of the account addresses" }, "accounts_details": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaPdaAccountSchema" }, { "$ref": "#/components/schemas/SolanaSystemAccountDetailsSchema" }, { "$ref": "#/components/schemas/SolanaProgramAccountDetailsSchema" }, { "$ref": "#/components/schemas/SolanaTokenAccountDetailsSchema" }, { "$ref": "#/components/schemas/SolanaFungibleMintAccountDetailsSchema" }, { "$ref": "#/components/schemas/SolanaNonFungibleMintAccountDetailsSchema" }, { "$ref": "#/components/schemas/SolanaCnftMintAccountDetailsSchema" } ] }, "type": "array", "title": "Accounts Details", "description": "Details of addresses involved in the transaction" }, "account_summary": { "$ref": "#/components/schemas/SolanaAccountSummary", "description": "Summary of the actions and asset transfers that were made by the requested account address", "docs_api_name": "AccountSummary" }, "transaction_actions": { "anyOf": [ { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaTransactionAction" }, { "type": "string" } ] }, "type": "array" }, { "type": "null" } ], "title": "Transaction Actions" } }, "type": "object", "required": ["assets_ownership_diff", "account_summary"], "title": "Simulation Result" }, "SolanaSimulationSuccess": { "properties": { "status": { "type": "string", "const": "Success", "title": "Status", "default": "Success" }, "assets_diffs": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaAssetDiffs" }, "type": "array" }, { "type": "null" } ], "title": "Assets Diffs" }, "traces": { "anyOf": [ { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaExposureTrace" }, { "$ref": "#/components/schemas/SolanaAssetTrace" }, { "$ref": "#/components/schemas/SolanaFunctionCallTrace" } ] }, "type": "array" }, { "type": "null" } ], "title": "Traces" }, "contract_management": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaContractManagement" }, "type": "array" }, { "type": "null" } ], "title": "Contract Management" }, "state_diff": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaStateDiff" }, "type": "array" }, { "type": "null" } ], "title": "State Diff" }, "params": { "anyOf": [ { "$ref": "#/components/schemas/SolanaSimulationParams" }, { "type": "null" } ] }, "total_usd_diff": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaUsdDiff" }, "type": "array" }, { "type": "null" } ], "title": "Total Usd Diff" }, "exposures": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaExposures" }, "type": "array" }, { "type": "null" } ], "title": "Exposures" }, "total_usd_exposure": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaTotalUsdExposure" }, "type": "array" }, { "type": "null" } ], "title": "Total Usd Exposure" }, "address_details": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaAddressDetails" }, "type": "array" }, { "type": "null" } ], "title": "Address Details" }, "address_info_labels": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaScanAddressInfoLabels" }, "type": "array" }, { "type": "null" } ], "title": "Address Info Labels" }, "account_summary": { "anyOf": [ { "$ref": "#/components/schemas/SolanaAccountSummary" }, { "type": "null" } ] }, "transaction_actions": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaTransactionAction" }, "type": "array" }, { "type": "null" } ], "title": "Transaction Actions" }, "asset_traces": { "anyOf": [ { "items": { "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Asset Traces" }, "session_keys": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaScanSessionKeyObj" }, "type": "array" }, { "type": "null" } ], "title": "Session Keys" } }, "additionalProperties": true, "type": "object", "title": "SimulationSuccess" }, "SolanaSplFungibleAssetDetailsSchema": { "properties": { "type": { "type": "string", "const": "TOKEN", "title": "Type", "default": "TOKEN" }, "name": { "type": "string", "title": "Name", "description": "token's name" }, "symbol": { "type": "string", "title": "Symbol", "description": "token's symbol" }, "address": { "type": "string", "title": "Address", "description": "Address of the token's contract" }, "decimals": { "type": "integer", "title": "Decimals", "description": "token's decimals" }, "logo": { "type": "string", "title": "Logo", "description": "URL of the asset's logo", "nullable": true } }, "type": "object", "required": ["name", "symbol", "address", "decimals"], "title": "Fungible Token Details" }, "SolanaSplNonFungibleAssetDetailsSchema": { "properties": { "type": { "type": "string", "const": "NFT", "title": "Type", "default": "NFT" }, "name": { "type": "string", "title": "Name", "description": "token's name" }, "symbol": { "type": "string", "title": "Symbol", "description": "token's symbol" }, "address": { "type": "string", "title": "Address", "description": "Address of the token's contract" }, "decimals": { "type": "integer", "const": 0, "title": "Decimals", "default": 0 }, "logo": { "type": "string", "title": "Logo", "description": "URL of the asset's logo", "nullable": true } }, "type": "object", "required": ["name", "symbol", "address"], "title": "Non Fungible Token Details" }, "SolanaStakeMetadata": { "properties": { "type": { "type": "string", "const": "stake", "title": "Type", "default": "stake" }, "staked_sol": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Staked Sol" }, "withdraw_authority": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Withdraw Authority" }, "stake_authority": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Stake Authority" } }, "type": "object", "title": "StakeMetadata" }, "SolanaStakedNative": { "type": "string", "enum": ["STAKED_SOL", "STAKED_ETH"], "title": "StakedNative" }, "SolanaStakedNativeDetailsSchema": { "properties": { "type": { "$ref": "#/components/schemas/SolanaStakedNative", "description": "Type of the asset (`\"StakedNative\"`)" }, "decimals": { "type": "integer", "title": "Decimals" }, "logo": { "type": "string", "title": "Logo", "description": "Logo of SOL", "nullable": true } }, "type": "object", "required": ["type", "decimals"], "title": "Staked SOL Details" }, "SolanaStateDiff": { "properties": { "address": { "type": "string", "title": "Address" }, "obj": { "items": { "$ref": "#/components/schemas/SolanaStateDiffChange" }, "type": "array", "title": "Obj" } }, "additionalProperties": true, "type": "object", "required": ["address", "obj"], "title": "StateDiff" }, "SolanaStateDiffChange": { "properties": { "state_diff_type": { "$ref": "#/components/schemas/SolanaStateDiffChangeType" }, "change_sign": { "$ref": "#/components/schemas/SolanaStateDiffChangeSign" }, "slot": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Slot" }, "from": { "type": "string", "title": "From" }, "to": { "type": "string", "title": "To" } }, "additionalProperties": true, "type": "object", "required": ["state_diff_type", "change_sign", "from", "to"], "title": "StateDiffChange" }, "SolanaStateDiffChangeSign": { "type": "string", "enum": ["=", "+", "-", "*"], "title": "StateDiffChangeSign" }, "SolanaStateDiffChangeType": { "type": "string", "enum": ["balance", "storage", "contract_code"], "title": "StateDiffChangeType" }, "SolanaSystemAccountDetailsSchema": { "properties": { "account_address": { "type": "string", "title": "Account Address", "description": "Encoded public key of the account" }, "description": { "type": "string", "title": "Description", "description": "Description of the account", "nullable": true }, "type": { "type": "string", "const": "SYSTEM_ACCOUNT", "title": "Type", "default": "SYSTEM_ACCOUNT" }, "was_written_to": { "type": "boolean", "title": "Was Written To" }, "was_created": { "type": "boolean", "title": "Was Created" } }, "type": "object", "required": ["account_address", "was_written_to", "was_created"], "title": "System Account Details" }, "SolanaTokenAccountDetailsSchema": { "properties": { "account_address": { "type": "string", "title": "Account Address", "description": "Encoded public key of the account" }, "description": { "type": "string", "title": "Description", "description": "Description of the account", "nullable": true }, "type": { "type": "string", "const": "TOKEN_ACCOUNT", "title": "Type", "default": "TOKEN_ACCOUNT" }, "was_written_to": { "type": "boolean", "title": "Was Written To" }, "was_created": { "type": "boolean", "title": "Was Created" }, "mint_address": { "type": "string", "title": "Mint Address", "description": "Encoded public key of the mint" }, "owner_address": { "type": "string", "title": "Owner Address", "description": "Encoded public key of the owner" } }, "type": "object", "required": [ "account_address", "was_written_to", "was_created", "mint_address", "owner_address" ], "title": "Token Account Details" }, "SolanaTokenMetadata": { "properties": { "type": { "type": "string", "const": "token", "title": "Type", "default": "token" }, "mint": { "type": "string", "title": "Mint" }, "state": { "type": "string", "title": "State" }, "delegate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Delegate" }, "delegate_amount": { "type": "integer", "title": "Delegate Amount", "default": 0 } }, "type": "object", "required": ["mint", "state"], "title": "TokenMetadata" }, "SolanaTotalUsdDiff": { "properties": { "in": { "type": "number", "title": "In" }, "out": { "type": "number", "title": "Out" }, "total": { "type": "number", "title": "Total" }, "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address" } }, "additionalProperties": true, "type": "object", "required": ["in", "out", "total"], "title": "TotalUsdDiff" }, "SolanaTotalUsdDiffSchema": { "properties": { "in": { "type": "number", "title": "In", "description": "Total incoming USD transfers" }, "out": { "type": "number", "title": "Out", "description": "Total outgoing USD transfers" }, "total": { "type": "number", "title": "Total", "description": "Total USD transfers" } }, "type": "object", "required": ["in", "out"], "title": "Total USD Diff" }, "SolanaTotalUsdExposure": { "properties": { "address": { "type": "string", "title": "Address" }, "obj": { "items": { "$ref": "#/components/schemas/SolanaUsdExposureObject" }, "type": "array", "title": "Obj" } }, "additionalProperties": true, "type": "object", "required": ["address", "obj"], "title": "TotalUsdExposure" }, "SolanaTraceLabels": { "type": "string", "enum": ["GAS_FEE"], "title": "TraceLabels" }, "SolanaTransactionAction": { "type": "string", "enum": [ "native_wrap", "native_transfer", "token_transfer", "swap", "mint", "stake", "approval", "proxy_upgrade", "ownership_change", "set_code_account" ], "title": "TransactionAction" }, "SolanaTransactionData": { "properties": { "request": { "$ref": "#/components/schemas/SolanaRequest" }, "response": { "$ref": "#/components/schemas/SolanaResponse" }, "profile_lost_usd": { "anyOf": [ { "$ref": "#/components/schemas/SolanaProfileLostUsd" }, { "type": "null" } ] }, "context": { "anyOf": [ { "$ref": "#/components/schemas/SolanaContext" }, { "type": "null" } ] }, "scan_trigger": { "anyOf": [ { "$ref": "#/components/schemas/SolanaScanTrigger" }, { "type": "null" } ] } }, "additionalProperties": true, "type": "object", "required": ["request", "response"], "title": "TransactionData" }, "SolanaTransactionFeature": { "properties": { "entity": { "type": "string", "const": "transaction", "title": "Entity", "default": "transaction" }, "type": { "anyOf": [ { "$ref": "#/components/schemas/SolanaFeatureType" }, { "type": "string" } ], "title": "Type" }, "feature_id": { "type": "string", "title": "Feature Id" }, "description": { "type": "string", "title": "Description" } }, "type": "object", "required": ["type", "feature_id", "description"], "title": "TransactionFeature" }, "SolanaTransactionScan": { "properties": { "run_time": { "type": "string", "enum": [ "evm", "solana", "stellar", "cosmos", "bitcoin", "starknet", "sui", "hedera" ], "title": "Run Time" }, "entity_type": { "type": "string", "const": "transaction", "title": "Entity Type", "default": "transaction" }, "data": { "$ref": "#/components/schemas/SolanaTransactionData" }, "id": { "type": "string", "title": "Id" }, "result_type": { "anyOf": [ { "$ref": "#/components/schemas/SolanaValidationResultType" }, { "type": "null" } ] }, "timestamp": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Timestamp" }, "start_time": { "type": "string", "format": "date-time", "title": "Start Time" }, "end_time": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "End Time" }, "requesting_user": { "type": "string", "title": "Requesting User" } }, "additionalProperties": true, "type": "object", "required": ["run_time", "data", "id", "start_time", "requesting_user"], "title": "TransactionScan" }, "SolanaTransactionScanStatus": { "type": "string", "enum": ["Success", "Error"], "title": "TransactionScanStatus" }, "SolanaTransferPolicy": { "properties": { "type": { "type": "string", "const": "TRANSFER_POLICY", "title": "Type", "default": "TRANSFER_POLICY" }, "asset_details": { "$ref": "#/components/schemas/SolanaAssetDetails" }, "value_limit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value Limit" }, "recipient": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Recipient" } }, "additionalProperties": true, "type": "object", "required": ["asset_details"], "title": "TransferPolicy" }, "SolanaUnsupportedEIP712MessageErrorDetails": { "properties": { "code": { "type": "string", "const": "UNSUPPORTED_EIP712_MESSAGE", "title": "Code", "default": "UNSUPPORTED_EIP712_MESSAGE" }, "category": { "type": "string", "const": "INVALID_INPUT", "title": "Category", "default": "INVALID_INPUT" }, "domain_name": { "type": "string", "title": "Domain Name" }, "message_type": { "type": "string", "title": "Message Type" } }, "additionalProperties": true, "type": "object", "required": ["domain_name", "message_type"], "title": "UnsupportedEIP712MessageErrorDetails" }, "SolanaUpdateLabelRequest": { "properties": { "chains": { "items": { "type": "string" }, "type": "array", "title": "Chains" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": ["chains"], "title": "UpdateLabelRequest" }, "SolanaUrlFeature": { "properties": { "entity": { "type": "string", "const": "url", "title": "Entity", "default": "url" }, "type": { "anyOf": [ { "$ref": "#/components/schemas/SolanaFeatureType" }, { "type": "string" } ], "title": "Type" }, "feature_id": { "type": "string", "title": "Feature Id" }, "description": { "type": "string", "title": "Description" }, "url": { "type": "string", "title": "Url" } }, "type": "object", "required": ["type", "feature_id", "description", "url"], "title": "UrlFeature" }, "SolanaUsdDiff": { "properties": { "address": { "type": "string", "title": "Address" }, "in": { "type": "string", "title": "In" }, "out": { "type": "string", "title": "Out" }, "total": { "type": "string", "title": "Total" } }, "additionalProperties": true, "type": "object", "required": ["address", "in", "out", "total"], "title": "UsdDiff" }, "SolanaUsdExposureObject": { "properties": { "address": { "type": "string", "title": "Address" }, "obj": { "type": "string", "title": "Obj" } }, "additionalProperties": true, "type": "object", "required": ["address", "obj"], "title": "UsdExposureObject" }, "SolanaValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError" }, "SolanaValidationFeature": { "properties": { "type": { "$ref": "#/components/schemas/SolanaValidationFeatureType", "description": "Feature Classification", "title": "type" }, "feature_id": { "type": "string", "title": "feature_id", "description": "" }, "description": { "type": "string", "title": "Description", "description": "Textual description" }, "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address", "description": "Address the feature refers to" } }, "type": "object", "required": ["type", "feature_id", "description", "address"], "title": "ValidationFeature" }, "SolanaValidationFeatureType": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Info"], "title": "ValidationFeatureType" }, "SolanaValidationResultError": { "properties": { "status": { "$ref": "#/components/schemas/SolanaTransactionScanStatus" }, "result_type": { "type": "string", "const": "Error", "title": "Result Type", "default": "Error" }, "error": { "type": "string", "title": "Error" }, "description": { "type": "string", "title": "Description", "default": "" }, "reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reason", "default": "" }, "features": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaAddressFeature" }, { "$ref": "#/components/schemas/SolanaUrlFeature" }, { "$ref": "#/components/schemas/SolanaTransactionFeature" }, { "$ref": "#/components/schemas/SolanaBaseFeature" } ] }, "type": "array", "title": "Features" } }, "type": "object", "required": ["status", "error"], "title": "ValidationResultError" }, "SolanaValidationResultSchema": { "properties": { "result_type": { "$ref": "#/components/schemas/SolanaVerdict", "description": "Verdict of the validation", "title": "Result Verdict" }, "description": { "type": "string", "title": "Description", "description": "A textual description about the validation result" }, "reason": { "type": "string", "title": "Reason", "description": "A textual description about the reasons the transaction was flagged with result_type" }, "classification": { "type": "string", "title": "Classification", "description": "A textual classification that can be presented to the user explaining the reason." }, "features": { "items": { "type": "string" }, "type": "array", "uniqueItems": true, "title": "Features", "description": "A list of features about this transaction explaining the validation" }, "extended_features": { "items": { "$ref": "#/components/schemas/SolanaValidationFeature" }, "type": "array", "title": "Extended Features", "description": "A list of features explaining what is happening in the transaction in different levels of severity" } }, "type": "object", "required": [ "result_type", "description", "reason", "classification", "features", "extended_features" ], "title": "Validation Result" }, "SolanaValidationResultSuccess": { "properties": { "status": { "type": "string", "const": "Success", "title": "Status", "default": "Success" }, "result_type": { "anyOf": [ { "$ref": "#/components/schemas/SolanaValidationResultType" }, { "type": "string" } ], "title": "Result Type" }, "classification": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Classification" }, "reason": { "type": "string", "title": "Reason", "default": "" }, "description": { "type": "string", "title": "Description", "default": "" }, "features": { "items": { "anyOf": [ { "$ref": "#/components/schemas/SolanaAddressFeature" }, { "$ref": "#/components/schemas/SolanaUrlFeature" }, { "$ref": "#/components/schemas/SolanaTransactionFeature" }, { "$ref": "#/components/schemas/SolanaBaseFeature" } ] }, "type": "array", "title": "Features" }, "labels": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SolanaLabel" }, "type": "array" }, { "type": "null" } ], "title": "Labels" } }, "type": "object", "required": ["result_type"], "title": "ValidationResultSuccess" }, "SolanaValidationResultType": { "type": "string", "enum": ["Malicious", "Warning", "Benign", "Error"], "title": "ValidationResultType" }, "SolanaVerdict": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Error"], "title": "Verdict" }, "SolanaWashTraderEntry": { "properties": { "actor_address": { "type": "string", "title": "Actor Address" }, "total_traders": { "type": "integer", "title": "Total Traders" }, "total_trades": { "type": "integer", "title": "Total Trades" }, "total_trades_on_token": { "type": "integer", "title": "Total Trades On Token" } }, "type": "object", "required": [ "actor_address", "total_traders", "total_trades", "total_trades_on_token" ], "title": "WashTraderEntry" }, "SolanaWashTradingResponse": { "properties": { "wash_traders": { "items": { "$ref": "#/components/schemas/SolanaWashTraderEntry" }, "type": "array", "title": "Wash Traders" }, "is_new_pool": { "type": "boolean", "title": "Is New Pool" } }, "type": "object", "required": ["wash_traders", "is_new_pool"], "title": "WashTradingResponse" }, "Solanablockaid_application_runner__app__schemas__transaction_scanning__simulation__InfoLabel": { "type": "string", "enum": [ "wallet", "vault", "transparent_upgradeable_proxy", "token", "staking_pool", "smart_account", "safe_smart_account", "safe_proxy", "proxy", "ownable", "minimal_proxy", "liquidity_pool", "erc721", "erc4337", "erc20", "erc1967", "erc1155", "eoa", "eip7702_smart_account", "eip4626", "create2_beacon_proxy", "contract", "beacon_proxy", "argent_wallet_contract", "package", "object", "coin", "nft" ], "title": "InfoLabel" }, "Solanablockaid_schemas__v0__simulation__response__ApiErrorDetails": { "properties": { "code": { "type": "string", "const": "ApiError", "title": "Code", "default": "ApiError" }, "category": { "type": "string", "const": "NODE_ERROR", "title": "Category", "default": "NODE_ERROR" }, "message": { "type": "string", "title": "Message" } }, "additionalProperties": true, "type": "object", "required": ["message"], "title": "ApiErrorDetails" }, "Solanablockaid_schemas__v0__simulation__response__InfoLabel": { "properties": { "label": { "type": "string", "title": "Label" } }, "additionalProperties": true, "type": "object", "required": ["label"], "title": "InfoLabel" }, "Solanablockaid_schemas__v0__simulation__response__InstructionErrorDetails": { "properties": { "code": { "type": "string", "const": "InstructionError", "title": "Code", "default": "InstructionError" }, "category": { "type": "string", "const": "REVERT", "title": "Category", "default": "REVERT" }, "message": { "type": "string", "title": "Message" }, "number": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Number" }, "machine_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Machine Code" }, "transaction_index": { "type": "integer", "title": "Transaction Index" }, "instruction_index": { "type": "integer", "title": "Instruction Index" }, "program_account": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Program Account" } }, "additionalProperties": true, "type": "object", "required": ["message", "transaction_index", "instruction_index"], "title": "InstructionErrorDetails" }, "Solanablockaid_schemas__v0__simulation__response__TransactionErrorDetails": { "properties": { "code": { "type": "string", "const": "TransactionError", "title": "Code", "default": "TransactionError" }, "category": { "type": "string", "const": "REVERT", "title": "Category", "default": "REVERT" }, "message": { "type": "string", "title": "Message" }, "transaction_index": { "type": "integer", "title": "Transaction Index" } }, "additionalProperties": true, "type": "object", "required": ["message", "transaction_index"], "title": "TransactionErrorDetails" }, "Solanamodules__transaction_scanning__controllers__schemas__error__ApiErrorDetails": { "properties": { "type": { "type": "string", "const": "ApiError", "title": "Type", "default": "ApiError" }, "category": { "type": "string", "const": "NODE_ERROR", "title": "Category", "default": "NODE_ERROR" }, "message": { "type": "string", "title": "Message", "description": "Advanced message of the error", "default": "" } }, "additionalProperties": true, "type": "object", "title": "Api Error Details" }, "Solanamodules__transaction_scanning__controllers__schemas__error__InstructionErrorDetails": { "properties": { "type": { "type": "string", "const": "InstructionError", "title": "Type", "default": "InstructionError" }, "category": { "type": "string", "const": "REVERT", "title": "Category", "default": "REVERT" }, "message": { "type": "string", "title": "Message", "description": "Human readable error", "default": "" }, "number": { "type": "integer", "title": "Number", "description": "Error number", "nullable": true }, "code": { "type": "string", "title": "Code", "description": "Machine readable error code", "nullable": true }, "transaction_index": { "type": "integer", "title": "Transaction Index", "description": "Index of the transaction in the bulk" }, "instruction_index": { "type": "integer", "title": "Instruction Index", "description": "Index of the instruction in the transaction" }, "program_account": { "type": "string", "title": "Program Account", "description": "The program account that caused the error", "nullable": true } }, "additionalProperties": true, "type": "object", "required": ["transaction_index", "instruction_index"], "title": "Instruction Error Details" }, "Solanamodules__transaction_scanning__controllers__schemas__error__TransactionErrorDetails": { "properties": { "type": { "type": "string", "const": "TransactionError", "title": "Type", "default": "TransactionError" }, "category": { "type": "string", "const": "REVERT", "title": "Category", "default": "REVERT" }, "message": { "type": "string", "title": "Message", "description": "Advanced message of the error", "default": "" }, "transaction_index": { "type": "integer", "title": "Transaction Index", "description": "Index of the transaction in the bulk" } }, "additionalProperties": true, "type": "object", "required": ["transaction_index"], "title": "Transaction Error Details" }, "SolanaNonFungibleSOLOwnershipDiff": { "properties": { "asset": { "$ref": "#/components/schemas/SolanaSplNonFungibleAssetDetailsSchema" }, "in": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "pre_owner": { "type": "string", "title": "Pre Owner", "description": "The owner prior to the transaction", "nullable": true }, "post_owner": { "type": "string", "title": "Post Owner", "description": "The owner post the transaction", "nullable": true }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "pre_owner", "post_owner", "asset_type"], "title": "Account Single Asset Ownership Details" }, "SolanaFungibleSOLOwnershipDiff": { "properties": { "asset": { "$ref": "#/components/schemas/SolanaSplFungibleAssetDetailsSchema" }, "in": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "pre_owner": { "type": "string", "title": "Pre Owner", "description": "The owner prior to the transaction", "nullable": true }, "post_owner": { "type": "string", "title": "Post Owner", "description": "The owner post the transaction", "nullable": true }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "pre_owner", "post_owner", "asset_type"], "title": "Account Single Asset Ownership Details" }, "SolanaStakedSOLOwnershipDiff": { "properties": { "asset": { "$ref": "#/components/schemas/SolanaStakedNativeDetailsSchema" }, "in": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "pre_owner": { "type": "string", "title": "Pre Owner", "description": "The owner prior to the transaction", "nullable": true }, "post_owner": { "type": "string", "title": "Post Owner", "description": "The owner post the transaction", "nullable": true }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "pre_owner", "post_owner", "asset_type"], "title": "Account Single Asset Ownership Details" }, "SolanaNativeSOLOwnershipDiff": { "properties": { "asset": { "$ref": "#/components/schemas/SolanaNativeAssetDetailsSchema" }, "in": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "pre_owner": { "type": "string", "title": "Pre Owner", "description": "The owner prior to the transaction", "nullable": true }, "post_owner": { "type": "string", "title": "Post Owner", "description": "The owner post the transaction", "nullable": true }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "pre_owner", "post_owner", "asset_type"], "title": "Account Single Asset Ownership Details" }, "SolanaNonFungibleSplTokenDelegation": { "properties": { "asset": { "$ref": "#/components/schemas/SolanaSplNonFungibleAssetDetailsSchema" }, "asset_type": { "type": "string", "title": "Asset Type", "readOnly": true }, "delegate": { "type": "string", "title": "Delegate", "readOnly": true }, "delegation": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type", "delegate", "delegation"], "title": "AccountSingleAssetDelegationSchemaType[Annotated[Pubkey, SkipValidation, PlainSerializer, GetPydanticSchema], SplNonFungibleAssetDetailsSchema, AssetExposureBaseSchemaType[AssetDiffSchema]]" }, "SolanaFungibleSplTokenDelegation": { "properties": { "asset": { "$ref": "#/components/schemas/SolanaSplFungibleAssetDetailsSchema" }, "asset_type": { "type": "string", "title": "Asset Type", "readOnly": true }, "delegate": { "type": "string", "title": "Delegate", "readOnly": true }, "delegation": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type", "delegate", "delegation"], "title": "AccountSingleAssetDelegationSchemaType[Annotated[Pubkey, SkipValidation, PlainSerializer, GetPydanticSchema], SplFungibleAssetDetailsSchema, AssetExposureBaseSchemaType[AssetDiffSchema]]" }, "SolanaCnftDelegation": { "properties": { "asset": { "$ref": "#/components/schemas/SolanaCnftDetailsSchema" }, "asset_type": { "type": "string", "title": "Asset Type", "readOnly": true }, "delegate": { "type": "string", "title": "Delegate", "readOnly": true }, "delegation": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type", "delegate", "delegation"], "title": "AccountSingleAssetDelegationSchemaType[Annotated[Pubkey, SkipValidation, PlainSerializer, GetPydanticSchema], CnftDetailsSchema, AssetExposureBaseSchemaType[AssetDiffSchema]]" }, "SolanaCnftAssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/SolanaCnftDetailsSchema" }, "in": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[CnftDetailsSchema, AssetDiffSchema]" }, "SolanaSplNonFungibleAssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/SolanaSplNonFungibleAssetDetailsSchema" }, "in": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[SplNonFungibleAssetDetailsSchema, AssetDiffSchema]" }, "SolanaSplFungibleAssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/SolanaSplFungibleAssetDetailsSchema" }, "in": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[SplFungibleAssetDetailsSchema, AssetDiffSchema]" }, "SolanaNativeAssetDiff": { "properties": { "asset": { "$ref": "#/components/schemas/SolanaNativeAssetDetailsSchema" }, "in": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the incoming transfer", "nullable": true, "title": "In" }, "out": { "$ref": "#/components/schemas/SolanaAssetDiffSchema", "description": "Details of the outgoing transfer", "nullable": true, "title": "Out" }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[NativeAssetDetailsSchema, AssetDiffSchema]" }, "Amount": { "properties": { "amount": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Amount", "description": "" }, "amount_wei": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Amount Wei", "description": "" } }, "type": "object", "title": "Amount" }, "AttackType": { "properties": { "score": { "type": "string", "title": "Score", "description": "Score between 0 to 1 (double) that indicates the assurance this attack happened" }, "threshold": { "type": "string", "title": "Threshold", "description": "If score is higher or equal to this field, the token is using this attack type", "default": "1.0" }, "features": { "type": "object", "title": "Features", "description": "Object contains an extra information related to the attack" } }, "type": "object", "required": ["score"], "title": "AttackType" }, "BitcoinMetadataToken": { "properties": { "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type", "description": "Type of the token" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "Name of the token" }, "symbol": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Symbol", "description": "Symbol of the token" }, "decimals": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Decimals", "description": "Decimals of the token" }, "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Id", "description": "The unique ID for the Rune" }, "number": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Number", "description": "The rune's unique sequential number." }, "formatted_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Formatted Name", "description": "The formatted name of the rune, with spacers" } }, "type": "object", "title": "BitcoinMetadataToken" }, "BitcoinAddressScanRequestSchema": { "properties": { "address": { "type": "string", "title": "Address" }, "chain": { "$ref": "#/components/schemas/BitcoinChainSchema" } }, "type": "object", "required": ["address", "chain"], "title": "Request" }, "BitcoinAddressFeatureModel": { "properties": { "type": { "$ref": "#/components/schemas/BitcoinValidationFeatureType" }, "feature_id": { "type": "string", "title": "Feature Id" }, "description": { "type": "string", "title": "Description" } }, "type": "object", "required": ["type", "feature_id", "description"], "title": "AddressFeatureModel" }, "BitcoinAddressScanResponseSchema": { "properties": { "result_type": { "$ref": "#/components/schemas/BitcoinVerdict", "description": "Verdict of the validation", "title": "Result Verdict" }, "features": { "items": { "$ref": "#/components/schemas/BitcoinAddressFeatureModel" }, "type": "array", "title": "Features", "description": "A list of textual features about this address that can be presented to the user." } }, "type": "object", "required": ["result_type"], "title": "AddressScanResponseSchema" }, "BulkExportJobRequest": { "properties": { "chain": { "$ref": "#/components/schemas/TokenScanSupportedChains" }, "token_type": { "anyOf": [ { "$ref": "#/components/schemas/TokenType" }, { "type": "null" } ], "description": "Type of token standard: `fungible` for interchangeable tokens (e.g., ERC-20), or `non_fungible` for unique tokens (e.g., NFTs such as ERC-721/ERC-1155). If empty, all token types will be exported." }, "format": { "$ref": "#/components/schemas/ExportFormat" }, "sync_start_time": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Sync Start Time", "description": "Export only records with timestamps at or after this Unix timestamp. If empty or 0, all records will be exported." } }, "type": "object", "required": ["chain", "format"], "title": "BulkExportJobRequest" }, "BulkExportJobResponse": { "properties": { "job_id": { "type": "string", "title": "Job Id" }, "status": { "$ref": "#/components/schemas/JobStatus" } }, "type": "object", "required": ["job_id", "status"], "title": "BulkExportJobResponse" }, "BulkExportJobStatusResponse": { "properties": { "status": { "$ref": "#/components/schemas/JobStatus" }, "files": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Files" }, "expires_in": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expires In", "description": "Seconds until URLs expire" }, "chain": { "anyOf": [ { "$ref": "#/components/schemas/TokenScanSupportedChains" }, { "type": "null" } ] }, "tokens_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tokens Count", "description": "Number of tokens exported" } }, "type": "object", "required": ["status"], "title": "BulkExportJobStatusResponse" }, "BulkScanErrorType": { "type": "string", "enum": ["PENDING_SCAN_RESULT", "NOT_A_TOKEN"], "title": "BulkScanErrorType" }, "BulkScanError": { "properties": { "message": { "$ref": "#/components/schemas/BulkScanErrorType", "description": "Error message describing why the scan failed for this token" } }, "type": "object", "required": ["message"], "title": "BulkScanError" }, "BulkTokenValidationRequest": { "properties": { "metadata": { "$ref": "#/components/schemas/TokenMetadata", "description": "Optional token metadata context (e.g., source/integration hints) used to enrich results.", "default": {} }, "chain": { "$ref": "#/components/schemas/TokenScanSupportedChains" }, "tokens": { "items": { "type": "string" }, "type": "array", "title": "Tokens", "description": "A list of token addresses to scan" } }, "type": "object", "required": ["chain", "tokens"], "title": "BulkTokenValidationRequest" }, "BulkTokenValidationResponse": { "properties": { "results": { "additionalProperties": { "$ref": "#/components/schemas/TokenValidationResponse" }, "type": "object", "title": "Results" }, "errors": { "additionalProperties": { "$ref": "#/components/schemas/BulkScanError" }, "type": "object", "title": "Errors", "description": "Errors encountered during bulk scanning, keyed by token address" } }, "type": "object", "required": ["results"], "title": "BulkTokenValidationResponse" }, "ErrorResponse": { "properties": { "detail": { "type": "string", "title": "Detail" } }, "type": "object", "required": ["detail"], "title": "ErrorResponse" }, "EvaluateTransactionRequest": { "discriminator": { "propertyName": "evaluation_type" }, "oneOf": [ { "additionalProperties": false, "description": "Simulate mode: evaluate a hypothetical EVM transaction against cosigner policies.", "properties": { "account_address": { "description": "Address of the account initiating the transaction.", "title": "Account Address", "type": "string" }, "chain": { "allOf": [ { "enum": [ "arbitrum", "base", "bsc", "gnosis", "ethereum", "optimism", "polygon", "sepolia", "monad", "katana" ], "title": "SupportedEvmChains", "type": "string" } ], "description": "Chain name, e.g. \"ethereum\", \"polygon\"." }, "data": { "anyOf": [ { "additionalProperties": false, "description": "Standard EVM transaction payload.", "properties": { "data": { "description": "Calldata as a hex string, for example \"0xa22cb465...\".", "title": "Data", "type": "string" }, "from": { "description": "Sender address.", "title": "From", "type": "string" }, "to": { "description": "Recipient or contract address.", "title": "To", "type": "string" }, "type": { "const": "transaction", "default": "transaction", "description": "Transaction type discriminator. Defaults to \"transaction\".", "enum": ["transaction"], "title": "Type", "type": "string" }, "value": { "description": "Wei value as a hex string, for example \"0x0\".", "title": "Value", "type": "string" } }, "required": ["from", "to", "value", "data"], "title": "EvmSendTransaction", "type": "object" }, { "additionalProperties": false, "description": "EIP-712 typed-data signing payload.", "properties": { "eip712_executor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Executor contract address, for example a Safe executor.", "title": "Eip712 Executor" }, "type": { "const": "eip712", "description": "Must be \"eip712\".", "enum": ["eip712"], "title": "Type", "type": "string" }, "typed_data": { "description": "EIP-712 typed-data structure as a JSON string.", "title": "Typed Data", "type": "string" } }, "required": ["type", "typed_data"], "title": "EvmEip712Data", "type": "object" } ], "description": "EVM transaction payload.", "title": "Data" }, "evaluation_type": { "const": "simulate", "description": "Evaluation mode. Use \"simulate\" for dry-run evaluation of calldata.", "enum": ["simulate"], "title": "Evaluation Type", "type": "string" }, "inline_policies": { "anyOf": [ { "items": { "additionalProperties": true, "description": "A single policy definition for inline evaluation, bypassing persisted policy lookup.", "properties": { "action": { "description": "Policy action: \"approve\", \"reject\", or \"pending\".", "title": "Action", "type": "string" }, "name": { "description": "Policy name.", "title": "Name", "type": "string" }, "policy": { "description": "Policy definition with policy_type_id, conditions, targets, etc.", "title": "Policy", "type": "object" } }, "required": ["name", "action", "policy"], "title": "InlinePolicyEntry", "type": "object" }, "type": "array" }, { "type": "null" } ], "description": "Optional list of inline policy definitions to evaluate against instead of persisted policies. When provided, the cosigner's stored policies are ignored and these are used instead. Priority is derived from list order (index 0 = highest).", "title": "Inline Policies" }, "metadata": { "description": "Additional context. Accepts a \"domain\" key for the dapp origin domain.", "title": "Metadata", "type": "object" }, "options": { "description": "Evaluation options to apply. Defaults to [\"validation\"].", "items": { "type": "string" }, "title": "Options", "type": "array" } }, "required": ["evaluation_type", "chain", "account_address", "data"], "title": "EvaluateSimulateRequest", "type": "object" }, { "additionalProperties": false, "properties": { "chain": { "allOf": [ { "enum": [ "arbitrum", "base", "bsc", "gnosis", "ethereum", "optimism", "polygon", "sepolia", "monad", "katana" ], "title": "SupportedEvmChains", "type": "string" } ], "description": "Chain identifier." }, "evaluation_type": { "const": "tx_hash", "description": "Evaluation mode.", "enum": ["tx_hash"], "title": "Evaluation Type", "type": "string" }, "inline_policies": { "anyOf": [ { "items": { "additionalProperties": true, "description": "A single policy definition for inline evaluation, bypassing persisted policy lookup.", "properties": { "action": { "description": "Policy action: \"approve\", \"reject\", or \"pending\".", "title": "Action", "type": "string" }, "name": { "description": "Policy name.", "title": "Name", "type": "string" }, "policy": { "description": "Policy definition with policy_type_id, conditions, targets, etc.", "title": "Policy", "type": "object" } }, "required": ["name", "action", "policy"], "title": "InlinePolicyEntry", "type": "object" }, "type": "array" }, { "type": "null" } ], "description": "Optional list of inline policy definitions to evaluate against instead of persisted policies. When provided, the cosigner's stored policies are ignored and these are used instead. Priority is derived from list order (index 0 = highest).", "title": "Inline Policies" }, "show_transaction_detail_for": { "anyOf": [ { "items": { "enum": ["approved", "rejected", "manual_approved"], "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "Transaction hash lists for asked verdicts.", "title": "Show Transaction Detail For" }, "tx_hash": { "description": "Transaction hash to evaluate.", "title": "Tx Hash", "type": "string" } }, "required": ["evaluation_type", "tx_hash", "chain"], "title": "EvaluateTxHashRequest", "type": "object" }, { "additionalProperties": false, "properties": { "chain": { "allOf": [ { "enum": [ "arbitrum", "base", "bsc", "gnosis", "ethereum", "optimism", "polygon", "sepolia", "monad", "katana" ], "title": "SupportedEvmChains", "type": "string" } ], "description": "Chain identifier." }, "evaluation_type": { "const": "time_period", "description": "Evaluation mode.", "enum": ["time_period"], "title": "Evaluation Type", "type": "string" }, "show_transaction_detail_for": { "anyOf": [ { "items": { "enum": ["approved", "rejected", "manual_approved"], "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "Transaction hash lists for asked verdicts.", "title": "Show Transaction Detail For" }, "time_period": { "allOf": [ { "additionalProperties": false, "properties": { "from": { "description": "Start of window (inclusive, ISO 8601).", "format": "date-time", "title": "From", "type": "string" }, "to": { "description": "End of window (inclusive, ISO 8601).", "format": "date-time", "title": "To", "type": "string" } }, "required": ["from", "to"], "title": "TimePeriodInput", "type": "object" } ], "description": "Time window for query." } }, "required": ["evaluation_type", "time_period", "chain"], "title": "EvaluateTimePeriodRequest", "type": "object" } ], "title": "EvaluateTransactionRequest", "description": "Request body for evaluating an EVM transaction against cosigner policies." }, "EvaluateTransactionResponse": { "properties": { "policies": { "$ref": "#/components/schemas/PoliciesExternal" }, "scan_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Scan Id" } }, "additionalProperties": true, "type": "object", "required": ["policies"], "title": "EvaluateTransactionResponse", "description": "Response containing the policy evaluation result for the submitted EVM transaction." }, "EvaluateHistoricalDataResponse": { "properties": { "cosigner_id": { "type": "string", "title": "Cosigner Id", "description": "The cosigner that was evaluated." }, "chain": { "type": "string", "title": "Chain", "description": "Chain used for evaluation." }, "summary": { "allOf": [ { "$ref": "#/components/schemas/EvaluationSummary" } ], "description": "Aggregated counts across all transactions." }, "policies": { "items": { "$ref": "#/components/schemas/PolicyEvaluationSummary" }, "type": "array", "title": "Policies", "description": "Per-policy aggregates and optional transaction hash lists." }, "scan": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "description": "Full scan payload of the first scanned transaction. Used for publishing to platform-api.", "title": "Scan" }, "scan_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Scan ID of the first scanned transaction. Present for single-tx evaluations.", "title": "Scan Id" }, "scan_result": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Result type of the first scanned transaction. Present for single-tx evaluations.", "title": "Scan Result" }, "scan_timestamp": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO timestamp of the first scanned transaction. Present for single-tx evaluations.", "title": "Scan Timestamp" }, "transaction_timestamp": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO timestamp for the on-chain transaction when available from the scan (for example block or transaction time). Distinct from scan_timestamp when both are present.", "title": "Transaction Timestamp" } }, "additionalProperties": false, "type": "object", "required": ["cosigner_id", "chain", "summary", "policies"], "title": "EvaluateHistoricalDataResponse", "description": "Response containing the policy evaluation result for historical data." }, "EvaluationSummary": { "properties": { "total_transactions": { "type": "integer", "title": "Total Transactions", "description": "Total number of transactions scanned for this evaluation." }, "approved": { "type": "integer", "title": "Approved", "description": "Transactions approved by all policies under this mode." }, "rejected": { "type": "integer", "title": "Rejected", "description": "Transactions rejected by at least one policy or blocked before policy evaluation (non-benign scans). Per-policy counts only reflect transactions that reached policy evaluation, so the sum of per-policy rejected counts may be less than this value." }, "manual_approved": { "type": "integer", "title": "Manual Approved", "description": "Transactions that required manual approval (pending decision)." } }, "additionalProperties": false, "type": "object", "required": [ "total_transactions", "approved", "rejected", "manual_approved" ], "title": "EvaluationSummary", "description": "Aggregated counts across all transactions.\n\nNote: ``rejected`` includes transactions blocked before policy evaluation\n(non-benign scans). Per-policy counts only reflect transactions that\nreached policy evaluation, so ``sum(p.rejected for p in policies)`` may be\nless than ``summary.rejected``." }, "PolicyEvaluationSummary": { "properties": { "policy_id": { "type": "string", "title": "Policy Id", "description": "Policy identifier." }, "policy_name": { "type": "string", "title": "Policy Name", "description": "Human-readable policy name." }, "total_evaluated": { "type": "integer", "title": "Total Evaluated", "description": "Transactions evaluated against this policy (excludes non-benign scans where policy eval was skipped)." }, "approved": { "type": "integer", "title": "Approved", "description": "Count approved for this policy." }, "rejected": { "type": "integer", "title": "Rejected", "description": "Count rejected for this policy." }, "manual_approved": { "type": "integer", "title": "Manual Approved", "description": "Count manually approved for this policy." }, "approved_transactions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Approved Transactions", "description": "Tx hashes when \"approved\" was requested in show_transaction_detail_for." }, "rejected_transactions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Rejected Transactions", "description": "Tx hashes when \"rejected\" was requested in show_transaction_detail_for." }, "manual_approved_transactions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Manual Approved Transactions", "description": "Tx hashes when \"manual_approved\" was requested in show_transaction_detail_for." }, "policy_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Policy type identifier.", "title": "Policy Type" } }, "additionalProperties": false, "type": "object", "required": [ "policy_id", "policy_name", "total_evaluated", "approved", "rejected", "manual_approved" ], "title": "PolicyEvaluationSummary" }, "EvmEip712Data": { "properties": { "type": { "type": "string", "enum": ["eip712"], "const": "eip712", "title": "Type", "description": "Must be \"eip712\"." }, "typed_data": { "type": "string", "title": "Typed Data", "description": "EIP-712 typed-data structure as a JSON string." }, "eip712_executor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Eip712 Executor", "description": "Executor contract address, for example a Safe executor." } }, "additionalProperties": false, "type": "object", "required": ["type", "typed_data"], "title": "EvmEip712Data", "description": "EIP-712 typed-data signing payload." }, "EvmSendTransaction": { "allOf": [ { "$ref": "#/components/schemas/routers__evm__transaction__models__Transaction" } ], "title": "EvmSendTransaction", "description": "Standard EVM transaction payload." }, "MatchedPolicyInfoExternal": { "properties": { "name": { "type": "string", "title": "Name", "description": "Policy name." }, "action": { "type": "string", "title": "Action", "description": "Action defined by the policy." }, "type": { "type": "string", "title": "Type", "description": "Policy type." } }, "additionalProperties": false, "type": "object", "required": ["name", "action", "type"], "title": "MatchedPolicyInfoExternal" }, "PoliciesExternal": { "properties": { "decision": { "type": "string", "enum": ["approve", "reject", "error", "pending"], "title": "Decision", "description": "Policy decision outcome: \"approve\", \"reject\", \"error\", or \"pending\"." }, "reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reason", "description": "Human-readable reason for the decision. Present when a policy matched." }, "matched_policy": { "anyOf": [ { "$ref": "#/components/schemas/MatchedPolicyInfoExternal" }, { "type": "null" } ], "description": "Policy that determined the final decision. Null if no policy matched." }, "trace": { "items": { "$ref": "#/components/schemas/PolicyTraceEntryExternal" }, "type": "array", "title": "Trace", "description": "Per-policy evaluation log." }, "should_handle_pending_tx": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Should Handle Pending Tx", "description": "True when this dry-run pending result means a real scan would create a manual pending transaction." } }, "additionalProperties": false, "type": "object", "required": ["decision", "trace"], "title": "PoliciesExternal" }, "PolicyTraceEntryExternal": { "properties": { "name": { "type": "string", "title": "Name", "description": "Policy name." }, "action": { "type": "string", "title": "Action", "description": "Action defined by the policy." }, "type": { "type": "string", "title": "Type", "description": "Policy type." }, "result": { "type": "string", "enum": ["matched", "not_matched", "skipped"], "title": "Result", "description": "Evaluation result for this policy entry: \"matched\", \"not_matched\", or \"skipped\"." } }, "additionalProperties": false, "type": "object", "required": ["name", "action", "type", "result"], "title": "PolicyTraceEntryExternal" }, "EvmMetadataToken": { "properties": { "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type", "description": "Type of the token" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "Name of the token" }, "symbol": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Symbol", "description": "Symbol of the token" }, "decimals": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Decimals", "description": "Decimals of the token" }, "image_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Image Url", "description": "URL of the token image" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Description of the token" }, "deployer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Deployer", "description": "Address of the deployer of the fungible token" }, "deployer_balance": { "anyOf": [ { "$ref": "#/components/schemas/Amount" }, { "type": "null" } ], "description": "Contract creator balance" }, "contract_balance": { "anyOf": [ { "$ref": "#/components/schemas/Amount" }, { "type": "null" } ], "description": "Contract balance" }, "owner_balance": { "anyOf": [ { "$ref": "#/components/schemas/Amount" }, { "type": "null" } ], "description": "Contract owner balance" }, "owner": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Owner", "description": "Contract owner address" }, "creation_timestamp": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Creation Timestamp", "description": "Contract deploy date" }, "external_links": { "$ref": "#/components/schemas/ExternalLinks", "description": "social links of the token", "default": {} }, "urls": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Urls", "description": "Urls associated with the token" }, "malicious_urls": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Malicious Urls", "description": "Malicious urls associated with the token" }, "token_creation_initiator": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token Creation Initiator", "description": "Address of the token creation initiator, only set if the tokens was created by a well known token launch platform" }, "impersonation_targets": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ImpersonationTarget" }, "type": "array" }, { "type": "null" } ], "title": "Impersonation Targets", "description": "List of tokens that this token is impersonating, if detected as an impersonator" } }, "type": "object", "title": "EvmMetadataToken" }, "ExportFormat": { "type": "string", "enum": ["jsonl_gzip", "parquet_snappy"], "title": "ExportFormat", "description": "Output file format for the export: `jsonl_gzip` (JSON Lines compressed with gzip) or `parquet_snappy` (Apache Parquet compressed with Snappy)." }, "ExternalLinks": { "properties": { "homepage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Homepage" }, "twitter_page": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Twitter Page" }, "telegram_channel_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Telegram Channel Id" } }, "type": "object", "title": "ExternalLinks" }, "FeatureID": { "type": "string", "enum": [ "VERIFIED_CONTRACT", "UNVERIFIED_CONTRACT", "HIGH_TRADE_VOLUME", "MARKET_PLACE_SALES_HISTORY", "HIGH_REPUTATION_TOKEN", "ONCHAIN_ACTIVITY_VALIDATOR", "STATIC_CODE_SIGNATURE", "KNOWN_MALICIOUS", "IS_EOA", "IS_CONTRACT", "ERC20_CONTRACT", "TRUSTED_CONTRACT", "BENIGN_CREATOR", "METADATA", "AIRDROP_PATTERN", "IMPERSONATOR", "INORGANIC_VOLUME", "DYNAMIC_ANALYSIS", "CONCENTRATED_SUPPLY_DISTRIBUTION", "HONEYPOT", "INSUFFICIENT_LOCKED_LIQUIDITY", "UNSTABLE_TOKEN_PRICE", "RUGPULL", "WASH_TRADING", "CONSUMER_OVERRIDE", "INAPPROPRIATE_CONTENT", "HIGH_TRANSFER_FEE", "HIGH_BUY_FEE", "HIGH_SELL_FEE", "UNSELLABLE_TOKEN", "IS_MINTABLE", "REBASE_TOKEN", "LIQUID_STAKING_TOKEN", "MODIFIABLE_TAXES", "CAN_BLACKLIST", "CAN_WHITELIST", "HAS_TRADING_COOLDOWN", "EXTERNAL_FUNCTIONS", "HIDDEN_OWNER", "TRANSFER_PAUSEABLE", "OWNERSHIP_RENOUNCED", "OWNER_CAN_CHANGE_BALANCE", "PROXY_CONTRACT", "SIMILAR_MALICIOUS_CONTRACT", "IMPERSONATOR_SENSITIVE_ASSET", "IMPERSONATOR_HIGH_CONFIDENCE", "IMPERSONATOR_MEDIUM_CONFIDENCE", "IMPERSONATOR_LOW_CONFIDENCE", "IMPERSONATION_PROTECTED", "FAKE_VOLUME", "HIDDEN_SUPPLY_BY_KEY_HOLDER", "FAKE_TRADE_MAKER_COUNT", "TRANSFER_FROM_REVERTS", "OFFENSIVE_TOKEN_METADATA", "LISTED_ON_CENTRALIZED_EXCHANGE", "SANCTIONED_CREATOR", "SPAM_TEXT", "BONDING_CURVE_TOKEN", "HEAVILY_SNIPED", "SOLANA_TOKEN_2022", "POST_DUMP", "DEX_PAID", "LOW_REPUTATION_CREATOR", "SNIPE_AT_MINT", "TRANSFER_HOOK_ENABLED", "CONFIDENTIAL_TRANSFERS_ENABLED", "NON_TRANSERABLE", "TOKEN_BACKDOOR", "CREATED_VIA_LAUNCHPAD", "COMPROMISED_TOKEN", "LONG_FUND_TRAIL" ], "title": "FeatureID" }, "FeatureType": { "type": "string", "enum": ["Benign", "Info", "Warning", "Malicious"], "title": "FeatureType" }, "Fees": { "properties": { "transfer": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Transfer", "description": "Transfer fee of the token" }, "transfer_fee_max_amount": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Transfer Fee Max Amount", "description": "The maximum value that a transfer fee will cost" }, "buy": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Buy", "description": "Buy fee of the token" }, "sell": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Sell", "description": "Sell fee of the token" } }, "type": "object", "title": "Fees" }, "FinancialStats": { "properties": { "supply": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Supply", "description": "token supply" }, "holders_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Holders Count", "description": "Amount of token holders" }, "usd_price_per_unit": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Usd Price Per Unit", "description": "token price in USD" }, "burned_liquidity_percentage": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Burned Liquidity Percentage", "description": "Token liquidity burned percentage" }, "locked_liquidity_percentage": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Locked Liquidity Percentage", "description": "Token liquidity locked percentage" }, "top_holders": { "items": { "$ref": "#/components/schemas/TopHolder" }, "type": "array", "title": "Top Holders", "description": "Top token holders", "default": [] }, "total_reserve_in_usd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Total Reserve In Usd", "description": "Total reserve in USD" }, "dev_holding_percentage": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Dev Holding Percentage", "description": "Percentage of token's supply held in known developer wallets (0.0 to 100.0)", "examples": [18.8] }, "initial_snipers_holding_percentage": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Initial Snipers Holding Percentage", "description": "Percentage of token's supply _currently_ held by sniper bots (0.0 to 100.0). Currently available for Solana only.", "examples": [18.8] }, "snipers_holding_percentage": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Snipers Holding Percentage", "description": "Percentage of token's supply _initially_ held by sniper bots (0.0 to 100.0). Currently available for Solana only.", "examples": [18.8] }, "bundlers_holding_percentage": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Bundlers Holding Percentage", "description": "Percentage of token currently held by bundlers - wallets that bought in the exact same Solana slot, at any point in the token's life-cycle. Currently available for Solana only.", "examples": [18.8] }, "insiders_holding_percentage": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Insiders Holding Percentage", "description": "Percentage of supply that is currently held by insiders - defined as wallets exhibiting early acquisition behaviors typically associated with insider activity.", "examples": [18.8] }, "markets": { "items": { "$ref": "#/components/schemas/TokenMarket" }, "type": "array", "title": "Markets", "description": "Token markets/pools" } }, "type": "object", "title": "FinancialStats" }, "Hook": { "properties": { "url": { "type": "string", "minLength": 1, "format": "uri", "title": "Url" }, "shared_secret_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Shared Secret Key", "description": "Optional shared secret key (32 characters), used to calculate the HMAC signature" }, "chain": { "$ref": "#/components/schemas/TokenScanSupportedChains" }, "active": { "type": "boolean", "title": "Active" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": ["url", "chain", "active", "created_at", "updated_at"], "title": "Hook" }, "HookRequest": { "properties": { "url": { "type": "string", "minLength": 1, "format": "uri", "title": "Url" }, "shared_secret_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Shared Secret Key", "description": "Optional shared secret key (32 characters), used to calculate the HMAC signature" }, "filter": { "anyOf": [ { "$ref": "#/components/schemas/TokenAddressFilter" }, { "$ref": "#/components/schemas/TokenTypeFilter" }, { "type": "null" } ], "title": "Filter", "description": "Filter for webhook updates" } }, "type": "object", "required": ["url"], "title": "HookRequest" }, "MarketType": { "type": "string", "enum": ["BONDING_CURVE", "AMM", "UNKNOWN"], "title": "MarketType" }, "TokenMarket": { "properties": { "market_type": { "$ref": "#/components/schemas/MarketType" }, "market_name": { "type": "string", "title": "Market Name" }, "pair_name": { "type": "string", "title": "Pair Name" }, "address": { "type": "string", "title": "Address" }, "base_token": { "type": "string", "title": "Base Token" }, "quote_token": { "type": "string", "title": "Quote Token" }, "reserve_in_usd": { "type": "number", "title": "Reserve In Usd" } }, "type": "object", "required": [ "market_type", "market_name", "pair_name", "address", "base_token", "quote_token", "reserve_in_usd" ], "title": "TokenMarket" }, "JobStatus": { "type": "string", "enum": ["queued", "running", "succeeded", "failed"], "title": "JobStatus", "description": "Current state of the job: `queued` (accepted, waiting to start), `running` (in progress), `succeeded` (completed successfully), `failed` (completed with an error)." }, "ParamReport_TokenReportParams_": { "properties": { "type": { "type": "string", "const": "params", "title": "Type" }, "params": { "$ref": "#/components/schemas/TokenReportParams" } }, "type": "object", "required": ["type", "params"], "title": "ParamReport[TokenReportParams]" }, "ReportRequest_TokenReportParams_": { "properties": { "event": { "$ref": "#/components/schemas/EventEnum", "description": "The event type of the report. Could be `FALSE_POSITIVE` or `FALSE_NEGATIVE`." }, "report": { "anyOf": [ { "$ref": "#/components/schemas/ParamReport_TokenReportParams_" }, { "$ref": "#/components/schemas/RequestIDReport" } ], "title": "Report", "description": "Parameters identifying the token to report, provided either as token details (address and chain) or as a request ID from a previous scan." }, "details": { "type": "string", "title": "Details", "description": "Details about the report." } }, "type": "object", "required": ["event", "report", "details"], "title": "ReportRequest[TokenReportParams]" }, "ResultType": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Spam"], "title": "ResultType" }, "SolanaMetadata": { "properties": { "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type", "description": "Type of the token" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "Name of the token" }, "symbol": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Symbol", "description": "Symbol of the token" }, "decimals": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Decimals", "description": "Decimals of the token" }, "image_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Image Url", "description": "URL of the token image" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Description of the token" }, "deployer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Deployer", "description": "Address of the deployer of the fungible token" }, "deployer_balance": { "anyOf": [ { "$ref": "#/components/schemas/Amount" }, { "type": "null" } ], "description": "Contract creator balance" }, "contract_balance": { "anyOf": [ { "$ref": "#/components/schemas/Amount" }, { "type": "null" } ], "description": "Contract balance" }, "owner_balance": { "anyOf": [ { "$ref": "#/components/schemas/Amount" }, { "type": "null" } ], "description": "Contract owner balance" }, "owner": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Owner", "description": "Contract owner address" }, "creation_timestamp": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Creation Timestamp", "description": "Contract deploy date" }, "external_links": { "$ref": "#/components/schemas/ExternalLinks", "description": "social links of the token", "default": {} }, "urls": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Urls", "description": "Urls associated with the token" }, "malicious_urls": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Malicious Urls", "description": "Malicious urls associated with the token" }, "token_creation_initiator": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token Creation Initiator", "description": "Address of the token creation initiator, only set if the tokens was created by a well known token launch platform" }, "impersonation_targets": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ImpersonationTarget" }, "type": "array" }, { "type": "null" } ], "title": "Impersonation Targets", "description": "List of tokens that this token is impersonating, if detected as an impersonator" }, "mint_authority": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mint Authority", "description": "Solana token mint authority account" }, "update_authority": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Update Authority", "description": "Solana token update authority account" }, "freeze_authority": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Freeze Authority", "description": "Solana token freeze authority account" }, "permanent_delegate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Permanent Delegate", "description": "Solana token permanent delegate account" } }, "type": "object", "title": "SolanaMetadata" }, "TokenAddressFilter": { "properties": { "filter_type": { "type": "string", "const": "token_address", "title": "Filter Type", "description": "Type of filter applied to the webhook updates", "default": "token_address" }, "token_addresses": { "items": { "type": "string" }, "type": "array", "title": "Token Addresses", "description": "List of up to 100000 token addresses to filter webhook updates" } }, "type": "object", "required": ["token_addresses"], "title": "TokenAddressFilter" }, "TokenCursorPage_TokenValidationResponse_": { "properties": { "items": { "items": { "$ref": "#/components/schemas/TokenValidationResponse" }, "type": "array", "title": "Items" }, "current_page": { "type": "string", "title": "Current Page", "description": "Cursor to refetch the current page" }, "previous_page": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Previous Page", "description": "Cursor for the previous page" }, "next_page": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Next Page", "description": "Cursor for the next page" } }, "type": "object", "required": ["items", "current_page"], "title": "TokenCursorPage[TokenValidationResponse]" }, "TokenMetadata": { "properties": { "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "description": "cross reference transaction against the domain." } }, "type": "object", "title": "TokenMetadata" }, "TokenReportParams": { "properties": { "address": { "type": "string", "title": "Address", "description": "The address of the token to report on." }, "chain": { "$ref": "#/components/schemas/TokenScanSupportedChains" } }, "type": "object", "required": ["address", "chain"], "title": "TokenReportParams" }, "TokenScanSupportedChains": { "type": "string", "enum": [ "arbitrum", "avalanche", "base", "bsc", "ethereum", "optimism", "polygon", "zora", "solana", "starknet", "starknet-sepolia", "stellar", "linea", "degen", "zksync", "scroll", "blast", "soneium-minato", "base-sepolia", "bitcoin", "abstract", "soneium", "ink", "berachain", "unichain", "ronin", "sui", "hedera", "hyperevm", "xlayer", "monad", "megaeth", "tempo", "sei", "kaia", "tron", "robinhood" ], "title": "TokenScanSupportedChains", "description": "The chain name" }, "TokenType": { "type": "string", "enum": ["fungible", "non_fungible"], "title": "TokenType", "description": "Type of token standard: `fungible` for interchangeable tokens (e.g., ERC-20), or `non_fungible` for unique tokens (e.g., NFTs such as ERC-721/ERC-1155)." }, "TokenTypeFilter": { "properties": { "filter_type": { "type": "string", "const": "token_type", "title": "Filter Type", "description": "Type of filter applied to the webhook updates", "default": "token_type" }, "token_type": { "type": "string", "enum": ["Fungible", "NonFungible"], "title": "Token Type", "description": "Type of token to filter" } }, "type": "object", "required": ["token_type"], "title": "TokenTypeFilter" }, "TokenValidationRequest": { "properties": { "metadata": { "$ref": "#/components/schemas/TokenMetadata", "description": "Optional token metadata context (e.g., source/integration hints) used to enrich results.", "default": {} }, "chain": { "$ref": "#/components/schemas/TokenScanSupportedChains" }, "address": { "type": "string", "title": "Address", "description": "Token address to validate (EVM / Solana / Stellar / Starknet)" }, "token_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Token Id", "description": "The ID of the specific NFT within an ERC-721 or ERC-1155 collection." } }, "type": "object", "required": ["chain", "address"], "title": "TokenValidationRequest" }, "TokenValidationResponse": { "properties": { "result_type": { "$ref": "#/components/schemas/ResultType", "description": "General indication" }, "malicious_score": { "type": "string", "title": "Malicious Score", "description": "Score between 0 to 1 (double)" }, "attack_types": { "additionalProperties": { "$ref": "#/components/schemas/AttackType" }, "type": "object", "title": "Attack Types", "description": "Dictionary of detected attacks found during the scan" }, "chain": { "$ref": "#/components/schemas/TokenScanSupportedChains", "description": "Blockchain network" }, "address": { "type": "string", "title": "Address", "description": "Token address to validate (EVM / Solana)" }, "metadata": { "anyOf": [ { "$ref": "#/components/schemas/SolanaMetadata" }, { "$ref": "#/components/schemas/BitcoinMetadataToken" }, { "$ref": "#/components/schemas/EvmMetadataToken" } ], "title": "Metadata", "description": "Metadata of the token" }, "fees": { "$ref": "#/components/schemas/Fees", "description": "Fees associated with the token" }, "features": { "items": { "$ref": "#/components/schemas/Feature" }, "type": "array", "title": "Features", "description": "List of features associated with the token", "default": [] }, "trading_limits": { "$ref": "#/components/schemas/TradingLimits", "description": "Trading limits of the token" }, "financial_stats": { "$ref": "#/components/schemas/FinancialStats", "description": "financial stats of the token" } }, "type": "object", "required": [ "result_type", "malicious_score", "attack_types", "chain", "address", "metadata", "fees", "trading_limits", "financial_stats" ], "title": "TokenValidationResponse" }, "TopHolder": { "properties": { "label": { "anyOf": [ { "$ref": "#/components/schemas/TopHolderLabel" }, { "type": "null" } ] }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address", "description": "Address" }, "holding_percentage": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Holding Percentage", "description": "Holding position out of total token liquidity" } }, "type": "object", "title": "TopHolder" }, "TopHolderLabel": { "type": "string", "enum": ["market", "locker", "wallet", "contract", "program"], "title": "TopHolderLabel" }, "TradingLimits": { "properties": { "max_buy": { "anyOf": [ { "$ref": "#/components/schemas/Amount" }, { "type": "null" } ], "description": "Max amount that can be bought at once" }, "max_sell": { "anyOf": [ { "$ref": "#/components/schemas/Amount" }, { "type": "null" } ], "description": "Max amount that can be sold at once" }, "max_holding": { "anyOf": [ { "$ref": "#/components/schemas/Amount" }, { "type": "null" } ], "description": "Max amount that can be held by a single address" }, "sell_limit_per_block": { "anyOf": [ { "$ref": "#/components/schemas/Amount" }, { "type": "null" } ], "description": "Maximum amount of the token that can be sold in a block" } }, "type": "object", "title": "TradingLimits" }, "NFTDetailsSchema_ERC721DiffSchema": { "properties": { "asset": { "$ref": "#/components/schemas/HederaNFTDetailsSchema" }, "in": { "$ref": "#/components/schemas/HederaERC721DiffSchema", "description": "Details of the incoming transfer", "title": "In", "nullable": true }, "out": { "$ref": "#/components/schemas/HederaERC721DiffSchema", "description": "Details of the outgoing transfer", "title": "Out", "nullable": true }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[NFTDetailsSchema, ERC721DiffSchema]" }, "HederaAccountNativeAssetTransferDiffDetailsSchema": { "properties": { "asset": { "$ref": "#/components/schemas/HederaNativeAssetDetailsSchema" }, "in": { "$ref": "#/components/schemas/HederaAssetTransferDetailsSchema", "description": "Details of the incoming transfer", "title": "In", "nullable": true }, "out": { "$ref": "#/components/schemas/HederaAssetTransferDetailsSchema", "description": "Details of the outgoing transfer", "title": "Out", "nullable": true }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[NativeAssetDetailsSchema, AssetTransferDetailsSchema]" }, "HederaAccountTokenTransferDiffDetailsSchema": { "properties": { "asset": { "$ref": "#/components/schemas/HederaTokenDetailsSchema" }, "in": { "$ref": "#/components/schemas/HederaAssetTransferDetailsSchema", "description": "Details of the incoming transfer", "title": "In", "nullable": true }, "out": { "$ref": "#/components/schemas/HederaAssetTransferDetailsSchema", "description": "Details of the outgoing transfer", "title": "Out", "nullable": true }, "asset_type": { "type": "string", "title": "Asset Type", "description": "The type of the assets in this diff", "readOnly": true } }, "type": "object", "required": ["asset", "asset_type"], "title": "AccountSingleAssetDiffSchemaType[TokenDetailsSchema, AssetTransferDetailsSchema]" }, "HederaAccountSummaryBaseSchemaType": { "properties": { "account_assets_diffs": { "items": { "anyOf": [ { "$ref": "#/components/schemas/HederaAccountNativeAssetTransferDiffDetailsSchema", "title": "Native asset Diff", "docs_api_name": "NativeAssetDiff" }, { "$ref": "#/components/schemas/HederaAccountTokenTransferDiffDetailsSchema", "title": "Tokens Asset Diff", "docs_api_name": "TokensAssetDiff" }, { "$ref": "#/components/schemas/NFTDetailsSchema_ERC721DiffSchema", "title": "NFT Asset Diff", "docs_api_name": "NFTAssetDiff" } ] }, "type": "array", "title": "Account Assets Diffs", "description": "Assets diffs of the requested account address" }, "account_exposures": { "items": { "$ref": "#/components/schemas/HederaAddressAssetExposureSchemaType" }, "type": "array", "title": "Account Exposures", "description": "Exposures made by the requested account address" }, "total_usd_diff": { "$ref": "#/components/schemas/HederaTotalUsdDiffSchema", "description": "Total USD diff for the requested account address" }, "total_usd_exposure": { "additionalProperties": { "type": "number" }, "type": "object", "title": "Total USD Exposure", "description": "Total USD exposure for each of the spender addresses during the transaction" } }, "type": "object", "required": ["account_exposures", "total_usd_diff"], "title": "Account Summary" }, "HederaAddressAssetExposureSchemaType": { "properties": { "asset": { "anyOf": [ { "$ref": "#/components/schemas/HederaNativeAssetDetailsSchema" }, { "$ref": "#/components/schemas/HederaTokenDetailsSchema" }, { "$ref": "#/components/schemas/HederaNFTDetailsSchema" } ], "title": "Asset" }, "spenders": { "additionalProperties": { "$ref": "#/components/schemas/HederaAssetExposureSchema" }, "type": "object", "title": "Spenders", "description": "Mapping between the spender address and the exposure of the asset" } }, "type": "object", "required": ["asset"], "title": "AddressAssetExposureSchemaType[Annotated[Address, GetPydanticSchema], Union[NativeAssetDetailsSchema, TokenDetailsSchema, NFTDetailsSchema], AssetExposureSchema]" }, "HederaAddressDetailsBaseSchema": { "properties": { "account_address": { "type": "string", "title": "Account Address", "description": "Encoded public key of the account" }, "description": { "type": "string", "title": "Description", "description": "Description of the account", "nullable": true } }, "type": "object", "required": ["account_address"], "title": "Address Details" }, "HederaAddressScanFeature": { "properties": { "type": { "anyOf": [ { "$ref": "#/components/schemas/HederaFeatureType" }, { "type": "string" } ], "title": "Type" }, "feature_id": { "type": "string", "title": "Feature Id", "description": "The unique identifier for the feature." }, "description": { "type": "string", "title": "Description", "description": "A human-readable description explaining the feature." } }, "type": "object", "required": ["type", "feature_id", "description"], "title": "AddressScanFeature" }, "HederaAddressScanRequestSchema": { "properties": { "address": { "type": "string", "title": "Address", "description": "The address to validate." }, "chain": { "$ref": "#/components/schemas/HederaChain" } }, "type": "object", "required": ["address", "chain"], "title": "AddressScanRequestSchema" }, "HederaAddressScanResponseSchema": { "properties": { "result_type": { "$ref": "#/components/schemas/HederaValidationResultType", "description": "The outcome of the address scan, indicating the assessed risk level of the scanned address.
Possible values:
- `Malicious` \u2014 The address is confirmed to be associated with malicious activity.
- `High-Risk` \u2014 The address shows strong indicators of high-risk or potentially malicious behavior.
- `Warning` \u2014 The address exhibits suspicious signals that may require caution.
- `Benign` \u2014 No known malicious or risky activity was detected for the address.
- `Error` \u2014 The scan could not be completed successfully." }, "features": { "items": { "$ref": "#/components/schemas/HederaAddressScanFeature" }, "type": "array", "title": "Features", "description": "A list of human-readable textual features describing the scanned address, intended for display to the end user." } }, "type": "object", "required": ["result_type"], "title": "AddressScanResponseSchema" }, "HederaAssetExposureSchema": { "properties": { "exposure": { "items": { "$ref": "#/components/schemas/HederaAssetTransferDetailsSchema" }, "type": "array", "title": "Exposure" }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the exposure", "nullable": true } }, "type": "object", "required": ["exposure"], "title": "AssetExposureSchema" }, "HederaAssetTransferDetailsSchema": { "properties": { "usd_price": { "type": "number", "title": "Usd Price", "description": "USD price of the asset", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the transfer", "nullable": true }, "value": { "type": "string", "title": "Value", "description": "Value of the transfer" }, "raw_value": { "type": "integer", "title": "Raw Value", "description": "Raw value of the transfer" } }, "type": "object", "required": ["value", "raw_value"], "title": "Asset Transfer Details" }, "HederaChain": { "type": "string", "enum": ["mainnet"], "title": "Chain", "description": "The chain the transaction runs on." }, "HederaERC721DiffSchema": { "properties": { "usd_price": { "type": "number", "title": "Usd Price", "description": "USD price of the asset", "nullable": true }, "summary": { "type": "string", "title": "Summary", "description": "Summarized description of the transfer", "nullable": true }, "token_id": { "type": "string", "title": "Token Id", "description": "Token ID of the transfer" } }, "type": "object", "required": ["token_id"], "title": "ERC721 Transfer Details" }, "HederaEmptyModel": { "properties": {}, "type": "object", "title": "EmptyModel" }, "HederaFeatureType": { "type": "string", "enum": ["Malicious", "Warning", "Benign", "High-Risk", "Info"], "title": "FeatureType", "description": "The risk classification indicated by the feature. Possible values are `Malicious`, `High-Risk`, `Warning`, `Benign`, or `Info`." }, "HederaHTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/HederaValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "HederaTransactionRequestSchema": { "properties": { "chain": { "$ref": "#/components/schemas/HederaChain" }, "options": { "items": { "$ref": "#/components/schemas/HederaOptions" }, "type": "array", "minItems": 1, "uniqueItems": true, "title": "Options", "description": "Select which component will be included in the response. \n\n - `simulation` - Include the results of the transaction simulation in your response. \n - `validation` - Include a security validation of the transaction in your response.", "default": ["validation", "simulation"] }, "account_address": { "title": "Account Address", "description": "The address to relate the transaction to. Account address determines in which perspective the transaction is simulated and validated." }, "transaction": { "type": "string", "title": "Transaction" }, "metadata": { "anyOf": [ { "$ref": "#/components/schemas/HederaWalletRequestMetadata" }, { "$ref": "#/components/schemas/HederaInAppRequestMetadata" } ], "title": "Metadata", "description": "Additional information regarding the wallet involved in the transaction." } }, "additionalProperties": true, "type": "object", "required": ["chain", "account_address", "transaction", "metadata"], "title": "Request" }, "HederaInAppRequestMetadata": { "properties": { "type": { "type": "string", "const": "in_app", "title": "Type", "description": "Metadata for in-app requests", "default": "in_app" }, "account": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Account" } ], "title": "Account", "description": "Account information associated with the request" }, "connection": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Connection" } ], "title": "Connection", "description": "Connection metadata including user agent and IP information" }, "non_dapp": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Non Dapp", "description": "Indicates that the transaction was not initiated by a dapp. Use false when the transaction is from a dapp.", "default": true } }, "type": "object", "title": "In-App Request Metadata" }, "HederaNFTDetailsSchema": { "properties": { "type": { "type": "string", "const": "NFT", "title": "Type", "description": "Type of the asset (`NFT`)", "default": "NFT" }, "id": { "type": "string", "title": "Id", "description": "The NFT ID" }, "nft_type": { "type": "string", "title": "Nft Type", "description": "The NFT's collection ID (token ID)" }, "name": { "type": "string", "title": "Name", "description": "NFT's display name" }, "description": { "type": "string", "title": "Description", "description": "The NFT's description" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "URL of the NFT's image", "nullable": true } }, "type": "object", "required": ["id", "nft_type", "name", "description"], "title": "NFT Asset Details" }, "HederaNativeAssetDetailsSchema": { "properties": { "type": { "type": "string", "const": "NATIVE", "title": "Type", "description": "Type of the asset (`NATIVE`)", "default": "NATIVE" } }, "type": "object", "title": "NativeAssetDetailsSchema" }, "HederaOptions": { "type": "string", "enum": ["validation", "simulation"], "title": "Options" }, "HederaGenericErrorDetails": { "properties": { "code": { "type": "string", "title": "Code", "description": "The error code" }, "category": { "type": "string", "title": "Category" } }, "type": "object", "required": ["code", "category"], "title": "GenericErrorDetails" }, "HederaUnsupportedTransactionTypeErrorDetails": { "properties": { "category": { "type": "string", "const": "INVALID_INPUT", "title": "Category" }, "code": { "type": "string", "enum": ["UNSUPPORTED_TRANSACTION_TYPE"], "title": "Code" }, "transaction_type": { "type": "string", "title": "Transaction Type", "description": "The unsupported transaction type" } }, "type": "object", "required": ["category", "code", "transaction_type"], "title": "UnsupportedTransactionTypeErrorDetails" }, "HederaSimulationErrorSchema": { "properties": { "status": { "type": "string", "const": "Error", "title": "Status" }, "error": { "type": "string", "title": "Error", "description": "Error message" }, "error_details": { "anyOf": [ { "$ref": "#/components/schemas/HederaGenericErrorDetails" }, { "$ref": "#/components/schemas/HederaUnsupportedTransactionTypeErrorDetails" } ], "title": "Error Details", "description": "Error details if the simulation failed." } }, "type": "object", "required": ["status", "error"], "title": "Simulation Error" }, "HederaSimulationResponse": { "properties": { "status": { "type": "string", "const": "Success", "title": "Status" }, "assets_diffs": { "additionalProperties": { "items": { "anyOf": [ { "$ref": "#/components/schemas/HederaAccountNativeAssetTransferDiffDetailsSchema", "title": "Native asset Diff", "docs_api_name": "NativeAssetDiff" }, { "$ref": "#/components/schemas/HederaAccountTokenTransferDiffDetailsSchema", "title": "Tokens Asset Diff", "docs_api_name": "TokensAssetDiff" }, { "$ref": "#/components/schemas/NFTDetailsSchema_ERC721DiffSchema", "title": "NFT Asset Diff", "docs_api_name": "NFTAssetDiff" } ] }, "type": "array", "description": "Assets diff of an account address" }, "type": "object", "title": "Assets Diffs", "description": "Mapping between the address of an account to the assets diff during the transaction" }, "exposures": { "additionalProperties": { "items": { "$ref": "#/components/schemas/HederaAddressAssetExposureSchemaType" }, "type": "array" }, "type": "object", "title": "Exposures", "description": "Mapping between the address of an account to the exposure of the assets during the transaction" }, "address_details": { "items": { "$ref": "#/components/schemas/HederaAddressDetailsBaseSchema" }, "type": "array", "title": "Address Details", "description": "Details of addresses involved in the transaction" }, "account_summary": { "$ref": "#/components/schemas/HederaAccountSummaryBaseSchemaType", "description": "Summary of the actions and asset transfers that were made by the requested account address", "docs_api_name": "AccountSummary" }, "transaction_actions": { "anyOf": [ { "items": { "anyOf": [ { "$ref": "#/components/schemas/HederaTransactionAction" }, { "type": "string" } ] }, "type": "array" }, { "type": "null" } ], "title": "Transaction Actions" } }, "type": "object", "required": ["status", "account_summary"], "title": "Simulation Result" }, "HederaTokenDetailsSchema": { "properties": { "type": { "type": "string", "const": "TOKEN", "title": "Type", "description": "Type of the asset (`TOKEN`)", "default": "TOKEN" }, "id": { "type": "string", "title": "Id", "description": "The token ID" }, "name": { "type": "string", "title": "Name", "description": "The token name" }, "symbol": { "type": "string", "title": "Symbol", "description": "The token's symbol" }, "logo_url": { "type": "string", "title": "Logo Url", "description": "URL of the asset's logo", "nullable": true }, "decimals": { "type": "integer", "title": "Decimals", "description": "Decimals of the asset" }, "description": { "type": "string", "title": "Description", "description": "The token description" } }, "type": "object", "required": ["id", "name", "symbol", "decimals", "description"], "title": "Token Asset Details" }, "HederaTotalUsdDiffSchema": { "properties": { "in": { "type": "number", "title": "In", "description": "Total incoming USD transfers" }, "out": { "type": "number", "title": "Out", "description": "Total outgoing USD transfers" }, "total": { "type": "number", "title": "Total", "description": "Total USD transfers" } }, "type": "object", "required": ["in", "out"], "title": "Total USD Diff" }, "HederaTransactionAction": { "type": "string", "enum": [ "native_wrap", "native_transfer", "token_transfer", "swap", "mint", "stake", "approval", "proxy_upgrade", "ownership_change", "set_code_account" ], "title": "TransactionAction" }, "HederaTransactionScanResponseSchema": { "properties": { "simulation": { "anyOf": [ { "$ref": "#/components/schemas/HederaSimulationResponse", "docs_api_name": "SimulationResult", "title": "Simulation Result Schema" }, { "$ref": "#/components/schemas/HederaSimulationErrorSchema" } ], "title": "Simulation", "description": "Simulation result; Only present if simulation option is included in the request", "nullable": true }, "validation": { "anyOf": [ { "$ref": "#/components/schemas/HederaValidationResult", "docs_api_name": "ValidationResult", "title": "Validation Successful Result" }, { "$ref": "#/components/schemas/HederaValidationErrorSchema" } ], "title": "Validation", "description": "Validation result; Only present if validation option is included in the request", "nullable": true, "docs_api_name": "ValidationResponse" } }, "type": "object", "title": "Transaction Scan Response", "description": "Transaction scan response schema." }, "HederaValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError" }, "HederaValidationErrorSchema": { "properties": { "status": { "type": "string", "const": "Error", "title": "Status" }, "error": { "type": "string", "title": "Error", "description": "Error message" } }, "type": "object", "required": ["status", "error"], "title": "Validation Error" }, "HederaValidationResponse": { "properties": { "type": { "$ref": "#/components/schemas/HederaValidationFeatureType", "description": "The security classification of the feature (Benign, Warning, Malicious or Info).", "title": "type" }, "feature_id": { "type": "string", "title": "feature_id", "description": "The ID of the feature associated with this transaction." }, "description": { "type": "string", "title": "Description", "description": "Textual description of the feature." }, "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address", "description": "Address the feature relates to." } }, "type": "object", "required": ["type", "feature_id", "description", "address"], "title": "ValidationFeatureSchemaType[Annotated[Address, GetPydanticSchema]]" }, "HederaValidationFeatureType": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Info"], "title": "ValidationFeatureType" }, "HederaValidationResult": { "properties": { "status": { "type": "string", "const": "Success", "title": "Status" }, "result_type": { "$ref": "#/components/schemas/HederaVerdict", "description": "Verdict of the validation", "title": "Result Verdict" }, "description": { "type": "string", "title": "Description", "description": "A textual description about the validation result" }, "reason": { "type": "string", "title": "Reason", "description": "A textual description about the reasons the transaction was flagged with result_type" }, "classification": { "type": "string", "title": "Classification", "description": "A textual classification that can be presented to the user explaining the reason." }, "features": { "items": { "$ref": "#/components/schemas/HederaValidationResponse", "title": "Feature", "docs_api_name": "ValidationFeature" }, "type": "array", "title": "Features" } }, "type": "object", "required": [ "status", "result_type", "description", "reason", "classification", "features" ], "title": "Validation Result" }, "HederaValidationResultType": { "type": "string", "enum": ["Malicious", "High-Risk", "Warning", "Benign", "Error"], "title": "ValidationResultType" }, "HederaVerdict": { "type": "string", "enum": ["Benign", "Warning", "Malicious", "Error"], "title": "Verdict" }, "HederaWalletRequestMetadata": { "properties": { "type": { "type": "string", "const": "wallet", "title": "Type", "description": "Metadata for wallet requests" }, "url": { "type": "string", "title": "Url", "description": "URL of the dApp the transaction originated from." }, "account": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Account" } ], "title": "Account", "description": "Account information associated with the request" }, "connection": { "allOf": [ { "$ref": "#/components/schemas/routers__chain_agnostic__models__request__Connection" } ], "title": "Connection", "description": "Connection metadata including user agent and IP information" }, "non_dapp": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Non Dapp", "description": "Indicates that the transaction was not initiated by a dapp. Use false when the transaction is from a dapp.", "default": false } }, "type": "object", "required": ["type", "url"], "title": "Wallet Request Metadata" }, "EmailAction": { "type": "object", "properties": { "type": { "type": "string", "const": "email", "description": "Action type. " }, "severity": { "type": "array", "items": { "$ref": "#/components/schemas/Severity" }, "description": "Incident severities this action runs for. When omitted, null, or an empty list, the action runs for incidents of any severity. Must not contain duplicate values." }, "to": { "type": "array", "items": { "type": "string" }, "description": "Primary email recipients." }, "cc": { "type": "array", "items": { "type": "string" }, "description": "CC email recipients." }, "bcc": { "type": "array", "items": { "type": "string" }, "description": "BCC email recipients." }, "body": { "type": "string", "description": "Request body payload." } }, "title": "Email Action", "required": ["type", "to"] }, "SlackAction": { "type": "object", "properties": { "type": { "type": "string", "const": "slack", "description": "Action type. " }, "severity": { "type": "array", "items": { "$ref": "#/components/schemas/Severity" }, "description": "Incident severities this action runs for. When omitted, null, or an empty list, the action runs for incidents of any severity. Must not contain duplicate values." }, "integration_instance_id": { "type": "string", "description": "Identifier for the integration instance." }, "channels": { "items": { "type": "string" }, "type": "array", "title": "Channels", "description": "Slack channel names" }, "message_format": { "type": "string", "title": "Format", "description": "Customization of the message to send in the Slack notification." } }, "title": "Slack Action", "required": ["channels", "type", "integration_instance_id"] }, "TelegramAction": { "type": "object", "properties": { "type": { "type": "string", "const": "telegram", "description": "Action type. " }, "severity": { "type": "array", "items": { "$ref": "#/components/schemas/Severity" }, "description": "Incident severities this action runs for. When omitted, null, or an empty list, the action runs for incidents of any severity. Must not contain duplicate values." }, "integration_instance_id": { "type": "string", "description": "Identifier for the integration instance." }, "chats": { "type": "array", "items": { "type": "object", "properties": { "chat_id": { "type": "string", "description": "Telegram channel ID." }, "topic_ids": { "type": "array", "items": { "type": "integer" }, "description": "Optional topic IDs within the channel where the message should be posted." } }, "required": ["chat_id"] }, "description": "Telegram chat and topic configuration for posting notifications." }, "message_format": { "type": "string", "description": "Customization of the message to send in the Telegram notification." } }, "title": "Telegram Action", "required": ["type", "chats", "integration_instance_id"] }, "WebhookAction": { "type": "object", "properties": { "type": { "type": "string", "const": "webhook", "description": "Action type." }, "severity": { "type": "array", "items": { "$ref": "#/components/schemas/Severity" }, "description": "Incident severities this action runs for. When omitted, null, or an empty list, the action runs for incidents of any severity. Must not contain duplicate values." }, "url": { "type": "string", "title": "Consumer URL", "description": "The URL of the endpoint where the platform sends the event payloads." }, "authentication": { "title": "Authentication Method", "description": "The authentication method used for the webhook request.", "$ref": "#/components/schemas/Authentication" }, "custom_headers": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "title": "Header Name", "description": "The name of the custom header." }, "value": { "type": "string", "title": "Value", "description": "The value of the custom header." } }, "required": ["name", "value"] }, "title": "Custom Headers", "description": "Custom headers to be sent in the HTTP POST request along with the event payload." }, "custom_payload_fields": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "title": "Field Key", "description": "The key name for the custom field in the webhook payload." }, "value": { "type": "string", "title": "Field Value", "description": "The value for the custom field." } }, "required": ["key", "value"] }, "title": "Custom Payload Fields", "description": "Custom fields to be included in the webhook payload along with the event data." } }, "title": "Webhook Action", "required": ["type", "url"] }, "PauseContractAction": { "type": "object", "properties": { "type": { "type": "string", "const": "pause-contract", "description": "Type discriminator for this object." }, "severity": { "type": "array", "items": { "$ref": "#/components/schemas/Severity" }, "description": "Incident severities this action runs for. When omitted, null, or an empty list, the action runs for incidents of any severity. Must not contain duplicate values." }, "pause": { "type": "boolean", "title": "Pause", "description": "Whether to pause the contract." } }, "title": "Pause Contract Action", "required": ["pause"] }, "SequencerAction": { "type": "object", "properties": { "type": { "type": "string", "const": "sequencer", "description": "Type discriminator for this object." }, "severity": { "type": "array", "items": { "$ref": "#/components/schemas/Severity" }, "description": "Incident severities this action runs for. When omitted, null, or an empty list, the action runs for incidents of any severity. Must not contain duplicate values." }, "target": { "type": "string", "enum": ["target", "source"], "title": "Target", "description": "Target asset or entity selection for this rule or action." }, "comment": { "type": "string", "title": "Comment", "description": "Optional comment for this action." }, "expiration_time": { "type": "string", "format": "date-time", "description": "Timestamp for expiration time." } }, "title": "Sequencer Action", "required": ["target"] }, "CallContractAction": { "type": "object", "properties": { "type": { "type": "string", "const": "contract_call", "description": "Type discriminator for this object." }, "severity": { "type": "array", "items": { "$ref": "#/components/schemas/Severity" }, "description": "Incident severities this action runs for. When omitted, null, or an empty list, the action runs for incidents of any severity. Must not contain duplicate values." }, "targets": { "anyOf": [ { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" } ] } }, { "type": "string", "const": "dynamic" } ], "description": "Target asset or entity selection for this rule or action." }, "via_router": { "type": "object", "description": "Optional: route calls through these contracts (targets become $address parameter)", "properties": { "contracts": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/AssetIDTarget" }, "description": "Contracts used by this routing configuration." } }, "required": ["contracts"] }, "function_signature": { "type": "string", "description": "e.g. 'transfer(address,uint256)'" }, "function_parameters": { "type": "array", "items": { "type": "string" }, "description": "Function arguments to pass." }, "response_wallet": { "type": "object", "required": ["integration_instance_id"], "properties": { "integration_instance_id": { "type": "string", "description": "Identifier for the integration instance." } }, "description": "Wallet integration used for action responses." } }, "title": "Call Contract Action", "required": [ "type", "function_signature", "function_parameters", "response_wallet", "targets" ] }, "APICallAction": { "type": "object", "properties": { "type": { "type": "string", "const": "api_call", "description": "Type discriminator for this object." }, "severity": { "type": "array", "items": { "$ref": "#/components/schemas/Severity" }, "description": "Incident severities this action runs for. When omitted, null, or an empty list, the action runs for incidents of any severity. Must not contain duplicate values." }, "url": { "type": "string", "description": "Target URL." }, "authentication": { "$ref": "#/components/schemas/Authentication", "description": "Authentication configuration." }, "custom_headers": { "type": "object", "properties": {}, "description": "Additional headers to include in the request." }, "request_type": { "type": "string", "enum": ["GET", "POST", "PUT", "PATCH", "DELETE"], "description": "HTTP method to use." }, "body": { "type": "object", "properties": {}, "description": "Request body payload." }, "incident_payload_override": { "type": "array", "items": { "type": "object", "properties": { "key_to_override": { "type": "string", "description": "Payload key to override." }, "incident_field": { "type": "string", "enum": [ "targets", "attackers", "incident_name", "incident_start_date", "incident_end_date", "incident_duration", "severity", "dollars_funds_lost", "dollars_funds_exposed" ], "description": "Incident field mapped into the request payload." } }, "required": ["key_to_override", "incident_field"] }, "description": "Incident payload field overrides." } }, "title": "API Call Action", "required": ["type", "url", "request_type", "incident_payload_override"] }, "LabelEntityAction": { "type": "object", "properties": { "type": { "type": "string", "const": "label_entity", "description": "Action type." }, "severity": { "type": "array", "items": { "$ref": "#/components/schemas/Severity" }, "description": "Incident severities this action runs for. When omitted, null, or an empty list, the action runs for incidents of any severity. Must not contain duplicate values." }, "entity_from_incident": { "type": "string", "enum": ["target", "source"], "title": "Entity From Incident", "description": "Specifies which entity from the incident to label - either the target(s) or source(s) of the incident." }, "label": { "type": "string", "enum": [ "account_takeover", "compromised", "custom_malicious", "investment_scam", "address_poisoning_impersonator_wallet", "address_poisoning_operator", "exploiter", "exploit_contract", "malicious_airdrop_operator", "wallet_drainer", "rugpull_operator", "malicious_implementation" ], "title": "Label", "description": "The malicious label to apply to the entity. Available labels include classifications for various threat types such as drainers, exploiters, scams, and compromised entities." } }, "title": "Label Entity Action", "required": ["type", "entity_from_incident", "label"] }, "ContractCallMetric": { "title": "Contract Call Metric", "type": "object", "properties": { "type": { "type": "string", "const": "contract_call", "description": "Type discriminator for this object." }, "target": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" } ], "description": "Target asset or entity selection for this rule or action." }, "function_name": { "type": "string", "description": "Contract function name to invoke." }, "function_args": { "type": "array", "items": { "type": "string" }, "description": "Function arguments to pass." }, "return_field_index": { "type": "integer", "default": 0, "description": "Index of the returned field to read." } }, "required": ["type", "target", "function_name"] }, "ReadObjectMetric": { "title": "Read Object Metric", "type": "object", "properties": { "type": { "type": "string", "const": "read_object", "description": "Type discriminator for this object." }, "target": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" } ], "description": "Target asset or entity selection for this rule or action." }, "field_path": { "type": "string", "description": "Path to the field that should be extracted." } }, "required": ["type", "target", "field_path"] }, "APICallMetric": { "title": "API Call Metric", "type": "object", "properties": { "type": { "type": "string", "const": "api_call", "description": "Type discriminator for this object." }, "url": { "type": "string", "description": "Target URL for the external API call." }, "method": { "type": "string", "enum": ["GET", "POST"], "description": "HTTP method to use." }, "authentication": { "$ref": "#/components/schemas/Authentication", "description": "Authentication configuration." }, "query_params": { "type": "object", "properties": {}, "description": "Query parameters to include in the request." }, "content_type": { "type": "string", "enum": ["application/json", "text/plain"], "description": "Content type for the request payload." }, "extra_headers": { "type": "object", "properties": {}, "description": "Additional headers to include in the request." }, "sample_interval_seconds": { "type": "integer", "description": "Polling interval in seconds." }, "field_path": { "type": "string", "description": "Field path to read from the response payload." }, "body": { "type": "string", "description": "Request body payload." } }, "required": [ "url", "content_type", "sample_interval_seconds", "field_path", "type", "method" ] }, "TransferMetric": { "title": "Transfer Metric", "type": "object", "properties": { "type": { "type": "string", "const": "transfer", "description": "Type discriminator for this object." }, "from": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for from." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetIDTarget" } ] }, "description": "Target asset or entity selection for this rule or action." } }, "required": ["operator", "target"], "description": "From-side transfer filter configuration." }, "to": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for to." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetIDTarget" } ] }, "description": "Target asset or entity selection for this rule or action." } }, "required": ["operator", "target"], "description": "To-side transfer filter configuration." } }, "required": ["type", "from", "to"] }, "MetricsRequest": { "title": "Metrics Request", "description": "Union of supported metric definition payloads.", "anyOf": [ { "$ref": "#/components/schemas/ContractCallMetric" }, { "$ref": "#/components/schemas/ReadObjectMetric" }, { "$ref": "#/components/schemas/APICallMetric" }, { "$ref": "#/components/schemas/TransferMetric" }, { "$ref": "#/components/schemas/ComputedMetric" }, { "$ref": "#/components/schemas/EventMetric" }, { "$ref": "#/components/schemas/SolanaAccountInfoReadMetric" }, { "$ref": "#/components/schemas/SolanaInstructionMetric" } ] }, "ComputedMetric": { "title": "Computed Metric", "type": "object", "properties": { "type": { "type": "string", "const": "computed_metric", "description": "Type discriminator for this object." }, "metrics": { "type": "array", "items": { "type": "object", "properties": { "symbol": { "type": "string", "description": "Short symbol used to reference this metric in formulas." }, "metric_id": { "type": "string", "description": "Identifier for the metric." } }, "required": ["symbol", "metric_id"] }, "description": "Metric definitions used by this configuration." }, "formula": { "type": "string", "description": "Formula expression used to compute this metric." } }, "required": ["type", "metrics", "formula"] }, "MetricsResponse": { "title": "Metrics Response", "description": "Union of supported metric definitions returned by the API.", "anyOf": [ { "$ref": "#/components/schemas/ContractCallMetric" }, { "$ref": "#/components/schemas/ReadObjectMetric" }, { "$ref": "#/components/schemas/APICallMetric" }, { "$ref": "#/components/schemas/TransferMetric" }, { "$ref": "#/components/schemas/ComputedMetric" }, { "$ref": "#/components/schemas/EventMetric" }, { "$ref": "#/components/schemas/SolanaAccountInfoReadMetric" }, { "$ref": "#/components/schemas/SolanaInstructionMetric" } ] }, "EventMetric": { "title": "Event Metric", "type": "object", "properties": { "type": { "type": "string", "const": "event_metric", "description": "Type discriminator for this object." }, "target": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" } ], "description": "Target asset or entity selection for this rule or action." }, "event_name": { "type": "string", "description": "Event name to monitor." }, "output_field": { "type": "string", "description": "Field path to read from the response payload." }, "event_filters": { "type": "array", "items": { "type": "object", "properties": { "parameter_name": { "type": "string", "description": "Event parameter name to filter on." }, "parameter_value": { "anyOf": [ { "type": "string" }, { "type": "integer" } ], "description": "Event parameter value to match." } }, "required": ["parameter_name", "parameter_value"] }, "description": "Filters applied to event parameters." } }, "required": ["type", "target", "event_name", "output_field"] }, "SolanaAccountInfoReadMetric": { "title": "Read Data Account Metric", "type": "object", "properties": { "type": { "type": "string", "const": "solana_account_info_read", "description": "Type discriminator for this object." }, "target": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" } ], "description": "Target asset or entity selection for this rule or action." }, "abi": { "type": "object", "properties": { "metadata": { "type": "object", "properties": { "offset": { "type": "integer", "description": "Byte offset where decoding starts." }, "length": { "type": "integer", "description": "Number of bytes to decode from offset." } }, "required": ["offset", "length"], "description": "Byte-slice bounds used by the decoder." }, "field_path": { "type": "string", "description": "Path to the account-data field to extract (dot-separated)." } }, "required": ["metadata", "field_path"], "description": "ABI decoding metadata required by the Solana account info reader." } }, "required": ["type", "target", "abi"] }, "SolanaInstructionMetric": { "title": "Instruction Metric", "type": "object", "properties": { "type": { "type": "string", "const": "solana_instruction", "description": "Type discriminator for this object." }, "target": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" } ], "description": "Target asset or entity selection for this rule or action." }, "instruction_name": { "type": "string", "description": "Instruction name to aggregate." }, "output_field": { "type": "string", "description": "Instruction parameter or path whose value the metric reads." }, "instruction_filters": { "type": "array", "items": { "type": "object", "properties": { "parameter_name": { "type": "string", "description": "Instruction parameter name to filter on." }, "parameter_value": { "type": "string", "description": "Instruction parameter value to match." } }, "required": ["parameter_name", "parameter_value"] }, "description": "Filters applied to instruction parameters — only matching instructions update the metric." } }, "required": ["type", "target", "instruction_name", "output_field"] }, "ApprovalToMulticallContractMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "approval_to_multicall_contract", "description": "Type discriminator for this object." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "is_silent": { "type": "boolean", "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity", "is_silent"], "description": "Standard Rule" }, "AssetHasDeployedContractMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "asset_has_deployed_contract", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "chain": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for chain." }, "value": { "$ref": "#/components/schemas/MonitoringSupportedChains", "description": "Comparison value for chain." } }, "required": ["operator", "value"], "description": "Chain for this configuration." } }, "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity"], "description": "Standard Rule" }, "BenignInteractionWithAnAssetMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "benign_interaction_with_an_asset", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "interaction_type": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for interaction type." }, "value": { "type": "array", "items": { "type": "string", "enum": ["funds_transfer", "approval", "function_call"] }, "description": "Comparison value for interaction type." } }, "required": ["operator", "value"], "description": "Interaction Type for this configuration." }, "interacted_addresses": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for interacted addresses." }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/AssetIDTarget" }, "description": "Comparison value for interacted addresses." } }, "required": ["operator", "value"], "description": "Interacted Addresses for this configuration." }, "interaction_direction": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["is", "is_not"], "description": "Comparison operator for interaction direction." }, "value": { "type": "string", "enum": ["inbound", "outbound", "any"], "description": "Comparison value for interaction direction." } }, "required": ["operator", "value"], "description": "Interaction Direction for this configuration." }, "interaction_usd_value": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["is", "is_not", "gt", "gte", "lt", "lte"], "description": "Comparison operator for interaction usd value." }, "value": { "type": "integer", "description": "Comparison value for interaction usd value." } }, "required": ["operator", "value"], "description": "Interaction USD Value for this configuration." } }, "required": ["interacted_addresses", "interaction_direction"], "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "parameters", "severity"], "description": "Standard Rule" }, "ContractOwnerChangeMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "contract_owner_change", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity"], "description": "Standard Rule" }, "ObjectOwnerChangeMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "object_owner_change", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "change_type": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for change type." }, "value": { "type": "array", "items": { "type": "string", "enum": ["transferred", "frozen", "shared"] }, "description": "Comparison value for change type." } }, "required": ["operator", "value"], "description": "Change Type for this configuration." } }, "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity"], "description": "Standard Rule" }, "DelegateCallToNonApprovedContractMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "delegate_call_to_non_approved_contract", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "function_name": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["is", "is_not"], "description": "Comparison operator for function name." }, "value": { "type": "string", "description": "Comparison value for function name." } }, "required": ["operator", "value"], "description": "Function Name to match." }, "function_parameter": { "type": "array", "items": { "anyOf": [ { "type": "object", "properties": { "parameter": { "type": "string", "description": "Parameter for this configuration." }, "operator": { "type": "string", "enum": ["is", "is_not", "contains", "not_contains"], "description": "Comparison operator for function parameter." }, "value": { "type": "string", "description": "Comparison value for function parameter." } }, "required": ["operator", "value", "parameter"] }, { "type": "object", "properties": { "parameter": { "type": "string", "description": "Parameter for this configuration." }, "operator": { "type": "string", "enum": [ "is", "is_not", "eq", "gte", "lte", "lt", "gt", "neq", "increase_by", "decrease_by", "multiply_by", "divide_by" ], "description": "Comparison operator for function parameter." }, "value": { "type": "integer", "description": "Comparison value for function parameter." } }, "required": ["operator", "value", "parameter"] } ] }, "description": "Function Parameter for this configuration." }, "approved_contract": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for approved contract." }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/AssetIDTarget" }, "description": "Comparison value for approved contract." } }, "required": ["operator", "value"], "description": "Approved Contract for this configuration." } }, "required": ["function_name", "approved_contract"], "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "parameters", "severity"], "description": "Standard Rule" }, "Eip7702SetCodeUpgradeMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "eip_7702_set_code_upgrade_monitor", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity"], "description": "Standard Rule" }, "EventEmittedMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "event_emitted", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "event_name": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["is", "is_not"], "description": "Comparison operator for event name." }, "value": { "type": "string", "description": "Comparison value for event name." } }, "required": ["operator", "value"], "description": "Event Name to match." }, "event_parameter": { "type": "array", "items": { "anyOf": [ { "type": "object", "properties": { "parameter": { "type": "string", "description": "Parameter for this configuration." }, "operator": { "type": "string", "enum": ["is", "is_not", "contains", "not_contains"], "description": "Comparison operator for event parameter." }, "value": { "type": "string", "description": "Comparison value for event parameter." } }, "required": ["operator", "value", "parameter"] }, { "type": "object", "properties": { "parameter": { "type": "string", "description": "Parameter for this configuration." }, "operator": { "type": "string", "enum": [ "is", "is_not", "eq", "gte", "lte", "lt", "gt", "neq", "increase_by", "decrease_by", "multiply_by", "divide_by" ], "description": "Comparison operator for event parameter." }, "value": { "type": "integer", "description": "Comparison value for event parameter." } }, "required": ["operator", "value", "parameter"] } ] }, "description": "Event Parameter for this configuration." } }, "required": ["event_name"], "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "parameters", "severity"], "description": "Standard Rule" }, "FunctionCallMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "function_call", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "function_name": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["is", "is_not"], "description": "Comparison operator for function name." }, "value": { "type": "string", "description": "Comparison value for function name." } }, "required": ["operator", "value"], "description": "Function Name to match." }, "function_parameter": { "type": "array", "items": { "anyOf": [ { "type": "object", "properties": { "parameter": { "type": "string", "description": "Parameter for this configuration." }, "operator": { "type": "string", "enum": ["is", "is_not", "contains", "not_contains"], "description": "Comparison operator for function parameter." }, "value": { "type": "string", "description": "Comparison value for function parameter." } }, "required": ["operator", "value", "parameter"] }, { "type": "object", "properties": { "parameter": { "type": "string", "description": "Parameter for this configuration." }, "operator": { "type": "string", "enum": [ "is", "is_not", "eq", "gte", "lte", "lt", "gt", "neq", "increase_by", "decrease_by", "multiply_by", "divide_by" ], "description": "Comparison operator for function parameter." }, "value": { "type": "integer", "description": "Comparison value for function parameter." } }, "required": ["operator", "value", "parameter"] } ] }, "description": "Function Parameter for this configuration." }, "caller_address": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for caller address." }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/AssetIDTarget" }, "description": "Comparison value for caller address." } }, "required": ["operator", "value"], "description": "Caller Address for this configuration." } }, "required": ["function_name", "caller_address"], "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "parameters", "severity"], "description": "Standard Rule" }, "MaliciousInteractionWithAssetMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "malicious_interaction_with_asset", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "chain": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for chain." }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/MonitoringSupportedChains" }, "description": "Comparison value for chain." } }, "required": ["operator", "value"], "description": "Chain for this configuration." }, "malicious_actor_label": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for malicious actor label." }, "value": { "type": "array", "items": { "type": "string", "enum": [ "custom_malicious", "address_poisoning_imperatonator_wallet", "wallet_drainer", "exploiter", "exploit_contract", "ofac_address", "malicious_contract_deployer", "compromised", "malicious_operator" ] }, "description": "Comparison value for malicious actor label." } }, "required": ["operator", "value"], "description": "Malicious Actor Label for this configuration." }, "interaction_type": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for interaction type." }, "value": { "type": "array", "items": { "type": "string", "enum": ["funds_transfer", "approval", "function_call"] }, "description": "Comparison value for interaction type." } }, "required": ["operator", "value"], "description": "Interaction Type for this configuration." }, "interaction_direction": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["is", "is_not"], "description": "Comparison operator for interaction direction." }, "value": { "type": "string", "enum": ["inbound", "outbound", "any"], "description": "Comparison value for interaction direction." } }, "required": ["operator", "value"], "description": "Interaction Direction for this configuration." }, "interaction_usd_value": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["is", "is_not", "gt", "gte", "lt", "lte"], "description": "Comparison operator for interaction usd value." }, "value": { "type": "integer", "description": "Comparison value for interaction usd value." } }, "required": ["operator", "value"], "description": "Interaction USD Value for this configuration." } }, "required": [ "interaction_type", "interaction_direction", "interaction_usd_value" ], "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity"], "description": "Standard Rule" }, "PigButcheringInteractionMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "pig_butchering_interaction", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity"], "description": "Standard Rule" }, "ProxyUpgradeDetectedMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "proxy_upgrade_detected", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity"], "description": "Standard Rule" }, "TokenStateChangedToMaliciousMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "token_state_changed_to_malicious", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity"], "description": "Standard Rule" }, "ToxicityRateThresholdCrossedMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "toxicity_monitor", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "toxicity_category": { "type": "array", "items": { "type": "object", "properties": { "parameter": { "type": "string", "description": "Toxicity category parameter." }, "operator": { "type": "string", "enum": ["gte", "lte", "lt", "gt"], "description": "Comparison operator for toxicity category." }, "value": { "type": "string", "description": "Comparison value for toxicity category." } }, "required": ["parameter", "operator", "value"] }, "description": "Toxicity category conditions for this configuration." } }, "required": ["toxicity_category"], "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "parameters", "severity"], "description": "Standard Rule" }, "TransferToNonApprovedEntityMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "transfer_to_non_approved_entity", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity"], "description": "Standard Rule" }, "CompositeMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "composite", "description": "Type discriminator for this object." }, "category": { "type": "string", "enum": ["scam_fraud", "security", "compliance", "finance"], "description": "Category for this configuration." }, "must_match_monitor_configs": { "type": "array", "items": { "type": "object", "properties": { "monitor_id": { "type": "string", "description": "Identifier for the monitor." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." } }, "required": ["monitor_id", "severity"] }, "description": "Must Match Monitor Configs for this configuration." }, "must_not_match_monitor_configs": { "type": "array", "items": { "type": "object", "properties": { "monitor_id": { "type": "string", "description": "Identifier for the monitor." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." } }, "required": ["monitor_id", "severity"] }, "description": "Must Not Match Monitor Configs for this configuration." }, "incidents_must_share_same_target": { "type": "boolean", "default": false, "description": "Incidents Must Share Same Target for this configuration." }, "incidents_must_share_same_attacker": { "type": "boolean", "default": false, "description": "Incidents Must Share Same Attacker for this configuration." }, "timeframe": { "$ref": "#/components/schemas/Timeframe", "nullable": true, "description": "Time window for matching incidents. When null, all conditions must be met within a single transaction." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": [ "type", "must_match_monitor_configs", "must_not_match_monitor_configs", "severity", "category" ], "description": "Composite Rule" }, "FormulaMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "formula", "description": "Type discriminator for this object." }, "category": { "type": "string", "enum": ["scam_fraud", "security", "compliance", "finance"], "description": "Category for this configuration." }, "metrics": { "type": "array", "items": { "type": "object", "properties": { "symbol": { "type": "string", "maxLength": 1, "minLength": 1, "description": "Short symbol used to reference this metric in formulas." }, "metric": { "$ref": "#/components/schemas/DefinedMetric", "description": "Metric for this configuration." } }, "required": ["symbol", "metric"] }, "description": "Metric definitions used by this configuration." }, "formula": { "type": "string", "description": "Formula expression used to compute the metric." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." } }, "required": ["metrics", "formula", "type", "severity", "category"], "description": "Formula" }, "IPInfringementMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "ip_infringement", "description": "Type discriminator for this object." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "parameters": { "type": "object", "properties": { "keywords": { "type": "object", "properties": { "operator": { "type": "string", "const": "in", "description": "Comparison operator for keywords." }, "value": { "type": "array", "items": { "type": "string" }, "description": "Comparison value for keywords." } }, "required": ["operator", "value"], "description": "Keywords for this configuration." }, "search_location": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for search location." }, "value": { "type": "array", "items": { "type": "string", "enum": ["token_names", "token_symbols", "dapp_dns_name"] }, "description": "Comparison value for search location." } }, "required": ["operator", "value"], "description": "Search Location for this configuration." }, "chains": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for chains." }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/MonitoringSupportedChains" }, "description": "Comparison value for chains." } }, "required": ["operator", "value"], "description": "Chains for this configuration." } }, "required": ["keywords", "search_location"], "description": "Parameters for this configuration." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "severity", "parameters"], "description": "Standard Rule" }, "MaliciousInteractionWithOFACAddressMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "malicious_interaction_with_ofac_address", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "malicious_actor_label": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for malicious actor label." }, "value": { "type": "array", "items": { "type": "string" }, "description": "Comparison value for malicious actor label." } }, "required": ["operator", "value"], "description": "Malicious Actor Label for this configuration." }, "interaction_direction": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["is", "is_not"], "description": "Comparison operator for interaction direction." }, "value": { "type": "string", "enum": ["any", "inbound", "outbound"], "description": "Comparison value for interaction direction." } }, "required": ["operator", "value"], "description": "Interaction Direction for this configuration." }, "chain": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for chain." }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/MonitoringSupportedChains" }, "description": "Comparison value for chain." } }, "required": ["operator", "value"], "description": "Chain for this configuration." }, "interaction_type": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for interaction type." }, "value": { "type": "array", "items": { "type": "string", "enum": ["funds_transfer", "approval", "function_call"] }, "description": "Comparison value for interaction type." } }, "required": ["operator", "value"], "description": "Interaction Type for this configuration." }, "interaction_usd_value": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["eq", "neq", "gt", "gte", "lt", "lte"], "description": "Comparison operator for interaction usd value." }, "value": { "type": "number", "description": "Comparison value for interaction usd value." } }, "required": ["operator", "value"], "description": "Interaction USD Value for this configuration." } }, "required": ["malicious_actor_label", "interaction_direction"], "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "parameters", "severity"], "description": "Malicious Interaction with an OFAC Address" }, "MonitoredContractExploitMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "monitored_contract_was_exploited", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "parameters": { "type": "object", "properties": { "confidence": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["is", "is_not", "gt", "gte", "lt", "lte"], "description": "Comparison operator for confidence." }, "value": { "type": "number", "description": "Comparison value for confidence." } }, "required": ["operator", "value"], "description": "Confidence for this configuration." }, "funds_lost": { "type": "array", "items": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["eq", "neq", "gt", "gte", "lt", "lte"], "description": "Comparison operator for funds lost." }, "value": { "type": "number", "description": "Comparison value for funds lost." } }, "required": ["operator", "value"] }, "minItems": 1, "description": "Funds Lost for this configuration." } }, "required": ["confidence"], "description": "Parameters for this configuration." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity", "parameters"], "description": "Monitored Contract Was Exploited" }, "ImpersonatorDappDeployedMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "impersonator_dapp_deployed", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "similarity_score": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["eq", "neq", "gt", "gte", "lt", "lte"], "description": "Comparison operator for similarity score." }, "value": { "type": "number", "minimum": 0, "maximum": 1, "description": "Comparison value for similarity score." } }, "required": ["operator", "value"], "description": "Similarity Score for this configuration." }, "popularity_score": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["eq", "neq", "gt", "gte", "lt", "lte"], "description": "Comparison operator for popularity score." }, "value": { "type": "number", "description": "Comparison value for popularity score." } }, "required": ["operator", "value"], "description": "Popularity Score for this configuration." } }, "required": ["similarity_score"], "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "parameters", "severity"], "description": "Impersonator dApp Deployed" }, "ImpersonatorTokenDeployedMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "impersonator_token_deployed", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity"], "description": "Impersonator Token Deployed" }, "FrontendAttackMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "frontend_attack", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity"], "description": "Frontend Attack" }, "ExploitContractDeployedWithReferenceToMonitoredAssetMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "exploit_contract_deployed_with_reference", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "parameters": { "type": "object", "properties": { "confidence": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["is", "is_not", "gt", "gte", "lt", "lte"], "description": "Comparison operator for confidence." }, "value": { "type": "number", "description": "Comparison value for confidence." } }, "required": ["operator", "value"], "description": "Confidence for this configuration." } }, "required": ["confidence"], "description": "Parameters for this configuration." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "severity", "parameters"], "description": "Exploit Contract was Deployed with a Reference to a Monitored Asset" }, "MaliciousFundsExposureMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "malicious_funds_exposure", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "exposed_amount_usd": { "type": "array", "items": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["eq", "neq", "gt", "gte", "lt", "lte"], "description": "Comparison operator for exposed amount usd." }, "value": { "type": "number", "description": "Comparison value for exposed amount usd." } }, "required": ["operator", "value"] }, "minItems": 1, "description": "Exposed Amount USD for this configuration." }, "chains": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for chains." }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/MonitoringSupportedChains" }, "description": "Comparison value for chains." } }, "required": ["operator", "value"], "description": "Chains for this configuration." } }, "required": ["exposed_amount_usd"], "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "parameters", "severity"], "description": "Malicious Funds Exposure" }, "UserGotDrainedMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "user_got_drained", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "drain_amount_usd": { "type": "array", "items": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["eq", "neq", "gt", "gte", "lt", "lte"], "description": "Comparison operator for drain amount usd." }, "value": { "type": "number", "description": "Comparison value for drain amount usd." } }, "required": ["operator", "value"] }, "minItems": 1, "description": "Drain Amount USD for this configuration." }, "chain": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for chain." }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/MonitoringSupportedChains" }, "description": "Comparison value for chain." } }, "required": ["operator", "value"], "description": "Chain for this configuration." } }, "required": ["drain_amount_usd"], "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "parameters", "severity"], "description": "User Got Drained" }, "MaliciousTransactionWasBlockedMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "malicious_transaction_was_blocked", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "tx_amount_usd": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["eq", "neq", "gt", "gte", "lt", "lte"], "description": "Comparison operator for tx amount usd." }, "value": { "type": "number", "description": "Comparison value for tx amount usd." } }, "required": ["operator", "value"], "description": "Tx Amount USD for this configuration." }, "chain": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for chain." }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/MonitoringSupportedChains" }, "description": "Comparison value for chain." } }, "required": ["operator", "value"], "description": "Chain for this configuration." }, "domain": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["is", "is_not", "contains", "not_contains"], "description": "Comparison operator for domain." }, "value": { "type": "string", "description": "Comparison value for domain." } }, "required": ["operator", "value"], "description": "Domain for this configuration." } }, "required": ["tx_amount_usd"], "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "parameters", "severity"], "description": "Malicious Transaction was Blocked" }, "MaliciousTransactionDetectedMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "malicious_transaction_detected", "description": "Type discriminator for this object." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "severity"], "description": "Malicious Transaction Detected" }, "ToctouPackageDeployedMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "toctou_package_deployed", "description": "Type discriminator for this object." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "severity"], "description": "TOCTOU Package Deployed" }, "ActiveMaliciousAirdropCampaignMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "active_malicious_airdrop_campaign", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "victims_amount": { "type": "array", "items": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["eq", "neq", "gt", "gte", "lt", "lte"], "description": "Comparison operator for victims amount." }, "value": { "type": "integer", "description": "Comparison value for victims amount." } }, "required": ["operator", "value"] }, "description": "Victims Amount for this configuration." }, "operator_address": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for operator address." }, "value": { "type": "array", "items": { "type": "string" }, "description": "Comparison value for operator address." } }, "required": ["operator", "value"], "description": "Operator Address for this configuration." }, "token_address": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for token address." }, "value": { "type": "array", "items": { "type": "string" }, "description": "Comparison value for token address." } }, "required": ["operator", "value"], "description": "Token Address for this configuration." }, "chain": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for chain." }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/MonitoringSupportedChains" }, "description": "Comparison value for chain." } }, "required": ["operator", "value"], "description": "Chain for this configuration." } }, "required": ["victims_amount"], "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "parameters", "severity"], "description": "Active Malicious Airdrop Campaign" }, "AddressPoisoningCampaignMonitor": { "type": "object", "properties": { "type": { "type": "string", "const": "address_poisoning_campaign", "description": "Type discriminator for this object." }, "target": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/AssetIDExcludeTarget" } ] }, "description": "Target asset or entity selection for this rule or action." }, "parameters": { "type": "object", "properties": { "victims_amount": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["eq", "neq", "gt", "gte", "lt", "lte"], "description": "Comparison operator for victims amount." }, "value": { "type": "integer", "description": "Comparison value for victims amount." } }, "required": ["operator", "value"], "description": "Victims Amount for this configuration." }, "operator_address": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for operator address." }, "value": { "type": "array", "items": { "type": "string" }, "description": "Comparison value for operator address." } }, "required": ["operator", "value"], "description": "Operator Address for this configuration." }, "chain": { "type": "object", "properties": { "operator": { "type": "string", "enum": ["in", "not_in"], "description": "Comparison operator for chain." }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/MonitoringSupportedChains" }, "description": "Comparison value for chain." } }, "required": ["operator", "value"], "description": "Chain for this configuration." } }, "required": ["victims_amount"], "description": "Parameters for this configuration." }, "severity": { "$ref": "#/components/schemas/Severity", "description": "Severity level for incidents that match this rule." }, "is_silent": { "type": "boolean", "default": false, "description": "Whether incidents from this rule should be silent." } }, "required": ["type", "target", "parameters", "severity"], "description": "Address Poisoning Campaign" }, "MonitorRuleRequest": { "title": "Monitor Rule Request", "description": "Monitor rule types you can send when creating or updating a monitor.", "oneOf": [ { "type": "array", "items": { "$ref": "#/components/schemas/ApprovalToMulticallContractMonitor" }, "title": "Approval To Multicall Contract Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/AssetHasDeployedContractMonitor" }, "title": "Asset Has Deployed Contract Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/BenignInteractionWithAnAssetMonitor" }, "title": "Benign Interaction With An Asset Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ContractOwnerChangeMonitor" }, "title": "Contract Owner Change Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ObjectOwnerChangeMonitor" }, "title": "Object Owner Change Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/DelegateCallToNonApprovedContractMonitor" }, "title": "Delegate Call To Non Approved Contract Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/Eip7702SetCodeUpgradeMonitor" }, "title": "EIP 7702 Set Code Upgrade Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/EventEmittedMonitor" }, "title": "Event Emitted Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/FunctionCallMonitor" }, "title": "Function Call Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/MaliciousInteractionWithAssetMonitor" }, "title": "Malicious Interaction With Asset Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/PigButcheringInteractionMonitor" }, "title": "Pig Butchering Interaction Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ProxyUpgradeDetectedMonitor" }, "title": "Proxy Upgrade Detected Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/TokenStateChangedToMaliciousMonitor" }, "title": "Token State Changed To Malicious Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ToxicityRateThresholdCrossedMonitor" }, "title": "Toxicity Rate Threshold Crossed Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/TransferToNonApprovedEntityMonitor" }, "title": "Transfer To Non Approved Entity Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/CompositeMonitor" }, "title": "Composite Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/FormulaMonitor" }, "title": "Formula Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/IPInfringementMonitor" }, "title": "IPInfringement Rules" } ] }, "DefinedMetric": { "type": "object", "properties": { "metric_id": { "type": "string", "description": "Identifier for the metric." }, "aggregation": { "type": "object", "properties": { "aggregation_function": { "type": "string", "enum": ["sum", "avg", "min", "max", "std_dev", "count"], "description": "Aggregation function to apply." }, "timeframe": { "$ref": "#/components/schemas/Timeframe", "description": "Timeframe window for aggregation." } }, "required": ["aggregation_function", "timeframe"], "description": "Aggregation configuration applied to metric data." } }, "required": ["metric_id"] }, "MonitorObject": { "title": "Monitor Object", "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the monitor." }, "is_enabled": { "type": "boolean", "description": "Whether the monitor is enabled." }, "name": { "type": "string", "description": "Display name of the monitor." }, "created_by": { "type": "string", "description": "Actor that originally created the monitor." }, "updated_by": { "type": "string", "description": "Actor that last updated the monitor." }, "updated_at": { "type": "string", "description": "Timestamp when the monitor was last updated." }, "created_at": { "type": "string", "description": "Timestamp when the monitor was created." }, "monitors": { "description": "Rule set configuration evaluated by this monitor.", "anyOf": [ { "$ref": "#/components/schemas/MonitorRuleResponse" }, { "$ref": "#/components/schemas/SystemMonitorRuleResponse" } ] }, "actions": { "type": "array", "description": "Actions executed when the monitor rules are triggered.", "items": { "anyOf": [ { "$ref": "#/components/schemas/EmailAction" }, { "$ref": "#/components/schemas/SlackAction" }, { "$ref": "#/components/schemas/TelegramAction" }, { "$ref": "#/components/schemas/WebhookAction" }, { "$ref": "#/components/schemas/PauseContractAction" }, { "$ref": "#/components/schemas/SequencerAction" }, { "$ref": "#/components/schemas/APICallAction" }, { "$ref": "#/components/schemas/CallContractAction" }, { "$ref": "#/components/schemas/LabelEntityAction" } ] } }, "tags": { "type": "array", "description": "Tags attached to the monitor for grouping and filtering.", "items": { "type": "string" } } }, "required": [ "id", "created_by", "updated_by", "updated_at", "created_at", "monitors", "name", "is_enabled" ] }, "NewMonitorCreation": { "title": "New Monitor Creation", "description": "Payload used to create a monitor with rules, tags, and optional actions.", "type": "object", "properties": { "name": { "type": "string", "description": "Display name for the new monitor." }, "tags": { "type": "array", "default": [], "description": "Optional tags used to group and filter the monitor.", "items": { "type": "string" } }, "actions": { "type": "array", "default": [], "description": "Actions to execute when monitor rules are triggered.", "items": { "anyOf": [ { "$ref": "#/components/schemas/EmailAction" }, { "$ref": "#/components/schemas/SlackAction" }, { "$ref": "#/components/schemas/TelegramAction" }, { "$ref": "#/components/schemas/WebhookAction" }, { "$ref": "#/components/schemas/PauseContractAction" }, { "$ref": "#/components/schemas/SequencerAction" }, { "$ref": "#/components/schemas/APICallAction" }, { "$ref": "#/components/schemas/CallContractAction" }, { "$ref": "#/components/schemas/LabelEntityAction" } ] } }, "monitors": { "allOf": [ { "description": "The rules this monitor runs to detect and evaluate activity." }, { "$ref": "#/components/schemas/MonitorRuleRequest" } ] } }, "required": ["name", "monitors"] }, "MonitorRuleResponse": { "title": "Monitor Rule Response", "description": "Monitor rule types the API returns for a monitor.", "oneOf": [ { "type": "array", "items": { "$ref": "#/components/schemas/ApprovalToMulticallContractMonitor" }, "title": "Approval To Multicall Contract Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/AssetHasDeployedContractMonitor" }, "title": "Asset Has Deployed Contract Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/BenignInteractionWithAnAssetMonitor" }, "title": "Benign Interaction With An Asset Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ContractOwnerChangeMonitor" }, "title": "Contract Owner Change Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ObjectOwnerChangeMonitor" }, "title": "Object Owner Change Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/DelegateCallToNonApprovedContractMonitor" }, "title": "Delegate Call To Non Approved Contract Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/Eip7702SetCodeUpgradeMonitor" }, "title": "EIP 7702 Set Code Upgrade Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/EventEmittedMonitor" }, "title": "Event Emitted Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/FunctionCallMonitor" }, "title": "Function Call Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/MaliciousInteractionWithAssetMonitor" }, "title": "Malicious Interaction With Asset Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/PigButcheringInteractionMonitor" }, "title": "Pig Butchering Interaction Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ProxyUpgradeDetectedMonitor" }, "title": "Proxy Upgrade Detected Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/TokenStateChangedToMaliciousMonitor" }, "title": "Token State Changed To Malicious Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ToxicityRateThresholdCrossedMonitor" }, "title": "Toxicity Rate Threshold Crossed Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/TransferToNonApprovedEntityMonitor" }, "title": "Transfer To Non Approved Entity Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/CompositeMonitor" }, "title": "Composite Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/FormulaMonitor" }, "title": "Formula Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/IPInfringementMonitor" }, "title": "IPInfringement Rules" }, { "type": "array", "title": "Empty Rules", "description": "An empty list of rules." } ] }, "SystemMonitorRuleResponse": { "title": "System Monitor Rule Response", "description": "Supported system monitor rule collections returned by the API.", "oneOf": [ { "type": "array", "items": { "$ref": "#/components/schemas/MaliciousInteractionWithOFACAddressMonitor" }, "title": "Malicious Interaction With OFACAddress Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/MonitoredContractExploitMonitor" }, "title": "Monitored Contract Exploit Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ImpersonatorDappDeployedMonitor" }, "title": "Impersonator Dapp Deployed Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ImpersonatorTokenDeployedMonitor" }, "title": "Impersonator Token Deployed Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/FrontendAttackMonitor" }, "title": "Frontend Attack Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ExploitContractDeployedWithReferenceToMonitoredAssetMonitor" }, "title": "Exploit Contract Deployed With Reference To Monitored Asset Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/MaliciousFundsExposureMonitor" }, "title": "Malicious Funds Exposure Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/UserGotDrainedMonitor" }, "title": "User Got Drained Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/MaliciousTransactionWasBlockedMonitor" }, "title": "Malicious Transaction Was Blocked Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/MaliciousTransactionDetectedMonitor" }, "title": "Malicious Transaction Detected Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ToctouPackageDeployedMonitor" }, "title": "TOCTOU Package Deployed Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ActiveMaliciousAirdropCampaignMonitor" }, "title": "Active Malicious Airdrop Campaign Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/AddressPoisoningCampaignMonitor" }, "title": "Address Poisoning Campaign Rules" } ] }, "SystemMonitorRuleRequest": { "title": "System Monitor Rule Request", "description": "Supported system monitor rule collections accepted by the API.", "oneOf": [ { "type": "array", "items": { "$ref": "#/components/schemas/MaliciousInteractionWithOFACAddressMonitor" }, "title": "Malicious Interaction With OFACAddress Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/MonitoredContractExploitMonitor" }, "title": "Monitored Contract Exploit Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ImpersonatorDappDeployedMonitor" }, "title": "Impersonator Dapp Deployed Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ImpersonatorTokenDeployedMonitor" }, "title": "Impersonator Token Deployed Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/FrontendAttackMonitor" }, "title": "Frontend Attack Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ExploitContractDeployedWithReferenceToMonitoredAssetMonitor" }, "title": "Exploit Contract Deployed With Reference To Monitored Asset Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/MaliciousFundsExposureMonitor" }, "title": "Malicious Funds Exposure Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/UserGotDrainedMonitor" }, "title": "User Got Drained Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/MaliciousTransactionWasBlockedMonitor" }, "title": "Malicious Transaction Was Blocked Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/MaliciousTransactionDetectedMonitor" }, "title": "Malicious Transaction Detected Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ToctouPackageDeployedMonitor" }, "title": "TOCTOU Package Deployed Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/ActiveMaliciousAirdropCampaignMonitor" }, "title": "Active Malicious Airdrop Campaign Rules" }, { "type": "array", "items": { "$ref": "#/components/schemas/AddressPoisoningCampaignMonitor" }, "title": "Address Poisoning Campaign Rules" } ] }, "MetricObject": { "title": "Metric Object", "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the metric." }, "name": { "type": "string", "description": "Display name of the metric." }, "data": { "$ref": "#/components/schemas/MetricsResponse", "description": "Metric definition details." }, "created_at": { "type": "string", "description": "Timestamp for created at." }, "added_by": { "type": "string", "description": "Actor that added by this record." } }, "required": ["id", "name", "data", "created_at", "added_by"] }, "AssetIDTarget": { "title": "Asset ID Target", "type": "object", "properties": { "type": { "type": "string", "const": "asset_id", "description": "Type discriminator for this object.", "enum": ["asset_id"], "title": "Type" }, "identifier": { "type": "string", "description": "Target identifier value.", "title": "Identifier" } }, "required": ["type", "identifier"] }, "AssetTagTarget": { "title": "Asset Tag Target", "type": "object", "properties": { "type": { "type": "string", "const": "asset_tag", "description": "Type discriminator for this object.", "enum": ["asset_tag"], "title": "Type" }, "identifier": { "type": "string", "description": "Target identifier value.", "title": "Identifier" } }, "required": ["type", "identifier"] }, "AssetLabelTarget": { "title": "Asset Label Target", "type": "object", "properties": { "type": { "type": "string", "const": "asset_label", "description": "Type discriminator for this object.", "enum": ["asset_label"], "title": "Type" }, "identifier": { "type": "string", "description": "Target identifier value.", "title": "Identifier" } }, "required": ["type", "identifier"] }, "AssetIDExcludeTarget": { "title": "Asset ID Exclude Target", "type": "object", "properties": { "type": { "type": "string", "const": "exclude_asset_id", "description": "Type discriminator for this object." }, "identifier": { "type": "string", "description": "Target identifier value." } }, "required": ["type", "identifier"] }, "HMACAuthentication": { "type": "object", "properties": { "type": { "type": "string", "const": "hmac", "description": "Type discriminator for this object." }, "hmac_secret": { "type": "string", "description": "Secret value for hmac secret authentication." } }, "required": ["type", "hmac_secret"] }, "AuthorizationHeaderAuthentication": { "type": "object", "properties": { "type": { "type": "string", "const": "authorization_header", "description": "Type discriminator for this object." }, "value": { "type": "string", "description": "Comparison value." } }, "required": ["type", "value"] }, "APIKeyAuthorization": { "type": "object", "properties": { "type": { "type": "string", "const": "api_key", "description": "Type discriminator for this object." }, "header_name": { "type": "string", "description": "Header name used for API key authentication." }, "api_key": { "type": "string", "description": "Secret value for api key authentication." } }, "required": ["type", "header_name", "api_key"] }, "BasicAuth": { "type": "object", "properties": { "type": { "type": "string", "const": "basic_auth" }, "username": { "type": "string" }, "password": { "type": "string" } }, "required": ["type", "username", "password"] }, "Authentication": { "anyOf": [ { "$ref": "#/components/schemas/HMACAuthentication" }, { "$ref": "#/components/schemas/AuthorizationHeaderAuthentication" }, { "$ref": "#/components/schemas/APIKeyAuthorization" }, { "$ref": "#/components/schemas/BasicAuth" } ] }, "APIFilters": { "title": "API Filters", "anyOf": [ { "title": "Equals Filter", "description": "Filter by exact value match.", "type": "object", "properties": { "eq": { "type": "string", "description": "Return only results where the field equals this value." } }, "required": ["eq"] }, { "title": "In List Filter", "description": "Filter by matching any value in a list.", "type": "object", "properties": { "in": { "type": "array", "items": { "type": "string" }, "description": "Return only results where the field matches any value in this list." } }, "required": ["in"] }, { "title": "Contains All Filter", "description": "Filter by requiring all listed values to be present.", "type": "object", "properties": { "contains_all": { "type": "array", "items": { "type": "string" }, "description": "Return only results where the field contains all values in this list." } }, "required": ["contains_all"] }, { "title": "Contains Filter", "description": "Filter by substring match.", "type": "object", "properties": { "contains": { "type": "string", "description": "Return results where the field contains the given value (substring match)." } }, "required": ["contains"] } ], "description": "A filter object that supports common query operators." }, "Timeframe": { "title": "Timeframe", "type": "object", "properties": { "value": { "type": "integer", "description": "Numeric value of the timeframe window." }, "unit": { "type": "string", "description": "Unit used for the timeframe value." } }, "required": ["value", "unit"] }, "Severity": { "type": "string", "enum": ["info", "low", "medium", "high", "critical"], "title": "Severity" }, "AuditActorType": { "type": "string", "enum": ["user", "system", "API"], "title": "AuditActorType", "description": "The type of actor that performed the audited action." }, "AuditActionType": { "type": "string", "enum": ["create", "edit", "delete", "info"], "title": "AuditActionType", "description": "The type of action recorded in the audit log." }, "AuditEntityType": { "type": "string", "enum": [ "cosigner", "cosigner_policy", "cosigner_transaction", "cosigner_manual_action", "label", "asset", "monitor", "api_key", "user_session", "audit_export", "metric", "response_wallet", "rpc_gateway_rule", "settings", "endpoint", "feature", "backoffice_api_key", "organization", "organization_extended" ], "title": "AuditEntityType", "description": "The type of entity affected by the audited action." }, "AuditLogItem": { "title": "Audit Log Item", "type": "object", "description": "A single audit event. Excludes internal fields such as organization_id, metadata, destination, and actor_name.", "properties": { "id": { "type": "string", "description": "Unique identifier of the audit log entry." }, "actor": { "type": "string", "description": "Identifier of the actor that performed the action (e.g. email address or API key ID)." }, "entity_id": { "type": "string", "description": "Identifier of the entity affected by the action." }, "chain": { "type": "string", "description": "Blockchain network associated with the event, if applicable." }, "summary": { "type": "string", "description": "Human-readable description of the event." }, "timestamp": { "type": "string", "format": "date-time", "description": "UTC timestamp of when the event occurred." }, "actor_type": { "$ref": "#/components/schemas/AuditActorType" }, "action": { "$ref": "#/components/schemas/AuditActionType" }, "entity_type": { "$ref": "#/components/schemas/AuditEntityType" } }, "required": ["id", "timestamp", "actor_type", "action", "entity_type"] }, "AuditLogSearchRequest": { "title": "Audit Log Search Request", "type": "object", "description": "Request body for searching audit logs. Dates are interpreted in UTC.", "properties": { "start_date": { "type": "string", "format": "date-time", "description": "Start of the date range (UTC, inclusive)." }, "end_date": { "type": "string", "format": "date-time", "description": "End of the date range (UTC, inclusive)." }, "sort": { "type": "string", "enum": ["asc", "desc"], "default": "desc", "description": "Sort order for results by timestamp." }, "actor_types": { "type": "array", "items": { "$ref": "#/components/schemas/AuditActorType" }, "description": "Filter results to events performed by these actor types." }, "actor_names": { "type": "array", "items": { "type": "string" }, "description": "Filter results to events performed by these actor names." }, "actions": { "type": "array", "items": { "$ref": "#/components/schemas/AuditActionType" }, "description": "Filter results to these action types." }, "entity_types": { "type": "array", "items": { "$ref": "#/components/schemas/AuditEntityType" }, "description": "Filter results to events affecting these entity types." }, "entity_ids": { "type": "array", "items": { "type": "string" }, "description": "Filter results to events affecting these entity IDs." }, "chains": { "type": "array", "items": { "type": "string" }, "description": "Filter results to events associated with these chain names." }, "search_text": { "type": "string", "description": "Free-text search across audit log fields." }, "page": { "type": "integer", "minimum": 1, "default": 1, "description": "Page number to return (1-indexed)." }, "page_size": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 100, "description": "Number of results per page." } }, "required": ["start_date", "end_date"] }, "AuditLogSearchResponse": { "title": "Audit Log Search Response", "type": "object", "description": "Paginated list of audit log events matching the search criteria.", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/AuditLogItem" }, "description": "Audit log events returned for this page." }, "total": { "type": "integer", "description": "Total number of matching audit log events." }, "page": { "type": "integer", "description": "Current page number." }, "pages": { "type": "integer", "description": "Total number of pages available." }, "size": { "type": "integer", "description": "Number of events returned in this page." } }, "required": ["items", "total", "page", "pages", "size"] }, "CategoryThreshold-Input": { "properties": { "category": { "$ref": "#/components/schemas/RiskCategory" }, "threshold_percentage": { "$ref": "#/components/schemas/ThresholdPercentage" } }, "required": ["category", "threshold_percentage"], "title": "CategoryThreshold", "type": "object" }, "CategoryThreshold-Output": { "properties": { "category": { "$ref": "#/components/schemas/RiskCategory" }, "threshold_percentage": { "$ref": "#/components/schemas/ThresholdPercentage" } }, "required": ["category", "threshold_percentage"], "title": "CategoryThreshold", "type": "object" }, "ConfigActionRule": { "description": "Rule matching the Squads multisig config action(s) in a transaction.", "properties": { "operator": { "$ref": "#/components/schemas/InclutionOperator" }, "value": { "items": { "$ref": "#/components/schemas/SquadsConfigAction" }, "title": "Value", "type": "array" } }, "required": ["operator", "value"], "title": "ConfigActionRule", "type": "object" }, "DecisionAction": { "enum": ["approve", "reject", "pending"], "title": "DecisionAction", "type": "string" }, "Eip712PrimaryTypeRule": { "description": "Rule matching the EIP-712 primaryType field.", "properties": { "operator": { "anyOf": [ { "$ref": "#/components/schemas/InclutionOperator" }, { "$ref": "#/components/schemas/EqualityOperator" } ], "title": "Operator" }, "value": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ], "title": "Value" } }, "required": ["operator", "value"], "title": "Eip712PrimaryTypeRule", "type": "object" }, "Eip712SignaturePolicyRequest": { "description": "Inbound policy definition for EIP-712 signature matching.", "properties": { "rules": { "$ref": "#/components/schemas/Eip712SignatureRules-Input" }, "type": { "const": "eip_712_signature", "enum": ["eip_712_signature"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "Eip712SignaturePolicyRequest", "type": "object" }, "Eip712SignaturePolicyResponse": { "description": "Resolved EIP-712 signature policy returned to API consumers.", "properties": { "rules": { "$ref": "#/components/schemas/Eip712SignatureRules-Output" }, "type": { "const": "eip_712_signature", "enum": ["eip_712_signature"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "Eip712SignaturePolicyResponse", "type": "object" }, "Eip712SignatureRules-Input": { "description": "Aggregated rules for evaluating EIP-712 typed-data signatures.", "properties": { "primary_type": { "$ref": "#/components/schemas/Eip712PrimaryTypeRule" }, "verifying_contracts": { "anyOf": [ { "$ref": "#/components/schemas/Eip712VerifyingContractsRule" }, { "type": "null" } ] } }, "required": ["primary_type"], "title": "Eip712SignatureRules", "type": "object" }, "Eip712SignatureRules-Output": { "description": "Aggregated rules for evaluating EIP-712 typed-data signatures.", "properties": { "primary_type": { "$ref": "#/components/schemas/Eip712PrimaryTypeRule" }, "verifying_contracts": { "anyOf": [ { "$ref": "#/components/schemas/Eip712VerifyingContractsRule" }, { "type": "null" } ] } }, "required": ["primary_type"], "title": "Eip712SignatureRules", "type": "object" }, "Eip712VerifyingContractsRule": { "description": "Rule matching EIP-712 domain verifying contract addresses.", "properties": { "operator": { "anyOf": [ { "$ref": "#/components/schemas/InclutionOperator" }, { "$ref": "#/components/schemas/EqualityOperator" } ], "title": "Operator" }, "value": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ], "title": "Value" } }, "required": ["operator", "value"], "title": "Eip712VerifyingContractsRule", "type": "object" }, "ExternalPolicyOption": { "description": "External API representation of policy options", "enum": ["blockaid_ootb_policy", "advanced_control_policy"], "title": "ExternalPolicyOption", "type": "string" }, "MaxUsdValueRule": { "properties": { "operator": { "const": "lte", "enum": ["lte"], "title": "Operator", "type": "string" }, "value": { "anyOf": [ { "type": "integer" }, { "type": "number" } ], "title": "Value" } }, "required": ["operator", "value"], "title": "MaxUsdValueRule", "type": "object" }, "MerklCampaignAction": { "enum": [ "supply_to_vault", "supply_to_specific_market", "supply_token_to_any_market", "borrow_from_specific_market", "borrow_token_from_any_market", "use_token_as_collateral_on_specific_market" ], "title": "MerklCampaignAction", "type": "string" }, "MerklCampaignItem": { "properties": { "action": { "$ref": "#/components/schemas/MerklCampaignAction" }, "amount": { "exclusiveMinimum": 0.0, "title": "Amount", "type": "number" }, "chain": { "title": "Chain", "type": "string" }, "end_time_utc": { "format": "date-time", "title": "End Time Utc", "type": "string" }, "market_token_vault": { "pattern": "^0x[a-fA-F0-9]{40}$|^0x[a-fA-F0-9]{64}$", "title": "Market Token Vault", "type": "string" }, "reward_token_address": { "pattern": "^0x[a-fA-F0-9]{40}$", "title": "Reward Token Address", "type": "string" }, "start_time_utc": { "format": "date-time", "title": "Start Time Utc", "type": "string" } }, "required": [ "chain", "start_time_utc", "end_time_utc", "action", "market_token_vault", "reward_token_address", "amount" ], "title": "MerklCampaignItem", "type": "object" }, "MerklCampaignPolicyRequest": { "properties": { "rules": { "$ref": "#/components/schemas/MerklCampaignRules-Input" }, "type": { "const": "merkl_campaign", "enum": ["merkl_campaign"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "MerklCampaignPolicyRequest", "type": "object" }, "MerklCampaignPolicyResponse": { "properties": { "rules": { "$ref": "#/components/schemas/MerklCampaignRules-Output" }, "type": { "const": "merkl_campaign", "enum": ["merkl_campaign"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "MerklCampaignPolicyResponse", "type": "object" }, "MerklCampaignRules-Input": { "properties": { "campaigns": { "items": { "$ref": "#/components/schemas/MerklCampaignItem" }, "minItems": 1, "title": "Campaigns", "type": "array" } }, "required": ["campaigns"], "title": "MerklCampaignRules", "type": "object" }, "MerklCampaignRules-Output": { "properties": { "campaigns": { "items": { "$ref": "#/components/schemas/MerklCampaignItem" }, "minItems": 1, "title": "Campaigns", "type": "array" } }, "required": ["campaigns"], "title": "MerklCampaignRules", "type": "object" }, "MovedAssetsDirection": { "properties": { "operator": { "const": "is", "enum": ["is"], "title": "Operator", "type": "string" }, "value": { "$ref": "#/components/schemas/MovedAssetsDirectionValue" } }, "required": ["operator", "value"], "title": "MovedAssetsDirection", "type": "object" }, "MovedAssetsDirectionValue": { "const": "outbound_only", "enum": ["outbound_only"], "title": "MovedAssetsDirectionValue", "type": "string" }, "MovedAssetsPolicyRequest": { "properties": { "rules": { "$ref": "#/components/schemas/MovedAssetsRules-Input" }, "type": { "const": "moved_assets", "enum": ["moved_assets"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "MovedAssetsPolicyRequest", "type": "object" }, "MovedAssetsPolicyResponse": { "properties": { "rules": { "$ref": "#/components/schemas/MovedAssetsRules-Output" }, "type": { "const": "moved_assets", "enum": ["moved_assets"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "MovedAssetsPolicyResponse", "type": "object" }, "MovedAssetsRule": { "properties": { "operator": { "$ref": "#/components/schemas/InclutionOperator" }, "value": { "items": { "anyOf": [ { "$ref": "#/components/schemas/AssetIDTarget" }, { "$ref": "#/components/schemas/AssetTagTarget" }, { "$ref": "#/components/schemas/AssetLabelTarget" }, { "$ref": "#/components/schemas/UnknownTarget" } ] }, "title": "Value", "type": "array" } }, "required": ["operator", "value"], "title": "MovedAssetsRule", "type": "object" }, "MovedAssetsRules-Input": { "properties": { "direction": { "allOf": [ { "$ref": "#/components/schemas/MovedAssetsDirection" } ], "default": { "operator": "is", "value": "outbound_only" } }, "moved_assets": { "$ref": "#/components/schemas/MovedAssetsRule" } }, "required": ["moved_assets"], "title": "MovedAssetsRules", "type": "object" }, "MovedAssetsRules-Output": { "properties": { "direction": { "allOf": [ { "$ref": "#/components/schemas/MovedAssetsDirection" } ], "default": { "operator": "is", "value": "outbound_only" } }, "moved_assets": { "$ref": "#/components/schemas/MovedAssetsRule" } }, "required": ["moved_assets"], "title": "MovedAssetsRules", "type": "object" }, "RiskCategory": { "enum": [ "sanctioned_entity", "stolen_funds", "scam_investment_fraud", "mixer", "darknet_market", "darknet_service", "child_abuse_material", "terrorism_financing", "ransomware", "enforcement_action", "government_seized_assets", "illegal_service", "high_risk_unlicensed_exchange", "gambling_service", "centralized_exchange_regulated", "crypto_atm", "p2p_exchange_regulated", "p2p_exchange_high_risk_unregulated", "defi_liquidity_pool_dex_pool", "mining_pool_miner", "online_marketplace", "custodial_wallet_service", "payment_processor", "uncategorised_service", "uncategorized_entity" ], "title": "RiskCategory", "type": "string" }, "RiskExposurePolicyRequest": { "properties": { "rules": { "$ref": "#/components/schemas/RiskExposureRules-Input" }, "type": { "const": "risk_exposure", "enum": ["risk_exposure"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "RiskExposurePolicyRequest", "type": "object" }, "RiskExposurePolicyResponse": { "properties": { "rules": { "$ref": "#/components/schemas/RiskExposureRules-Output" }, "type": { "const": "risk_exposure", "enum": ["risk_exposure"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "RiskExposurePolicyResponse", "type": "object" }, "RiskExposureRules-Input": { "properties": { "category_thresholds": { "items": { "$ref": "#/components/schemas/CategoryThreshold-Input" }, "title": "Category Thresholds", "type": "array" } }, "required": ["category_thresholds"], "title": "RiskExposureRules", "type": "object" }, "RiskExposureRules-Output": { "properties": { "category_thresholds": { "items": { "$ref": "#/components/schemas/CategoryThreshold-Output" }, "title": "Category Thresholds", "type": "array" } }, "required": ["category_thresholds"], "title": "RiskExposureRules", "type": "object" }, "RollingUsdLimitPolicyRequest": { "properties": { "rules": { "$ref": "#/components/schemas/RollingUsdLimitRules-Input" }, "type": { "const": "rolling_usd_limit", "enum": ["rolling_usd_limit"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "RollingUsdLimitPolicyRequest", "type": "object" }, "RollingUsdLimitPolicyResponse": { "properties": { "rules": { "$ref": "#/components/schemas/RollingUsdLimitRules-Output" }, "type": { "const": "rolling_usd_limit", "enum": ["rolling_usd_limit"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "RollingUsdLimitPolicyResponse", "type": "object" }, "RollingUsdLimitRules-Input": { "properties": { "max_usd_value": { "$ref": "#/components/schemas/MaxUsdValueRule" }, "time_window": { "$ref": "#/components/schemas/TimeWindowRule" } }, "required": ["max_usd_value", "time_window"], "title": "RollingUsdLimitRules", "type": "object" }, "RollingUsdLimitRules-Output": { "properties": { "max_usd_value": { "$ref": "#/components/schemas/MaxUsdValueRule" }, "time_window": { "$ref": "#/components/schemas/TimeWindowRule" } }, "required": ["max_usd_value", "time_window"], "title": "RollingUsdLimitRules", "type": "object" }, "SolanaEvaluateTransactionRequest": { "discriminator": { "propertyName": "evaluation_type" }, "oneOf": [ { "additionalProperties": false, "description": "Simulate a single encoded Solana transaction against cosigner policies.", "properties": { "chain": { "allOf": [ { "const": "mainnet", "enum": ["mainnet"], "title": "SupportedSolanaChains", "type": "string" } ], "description": "Solana chain, \"mainnet\" is supported only." }, "evaluation_type": { "const": "simulate", "description": "Evaluation mode.", "enum": ["simulate"], "title": "Evaluation Type", "type": "string" }, "inline_policies": { "anyOf": [ { "items": { "additionalProperties": true, "description": "A single policy definition for inline evaluation, bypassing persisted policy lookup.", "properties": { "action": { "description": "Policy action: \"approve\", \"reject\", or \"pending\".", "title": "Action", "type": "string" }, "name": { "description": "Policy name.", "title": "Name", "type": "string" }, "policy": { "description": "Policy definition with policy_type_id, conditions, targets, etc.", "title": "Policy", "type": "object" } }, "required": ["name", "action", "policy"], "title": "InlinePolicyEntry", "type": "object" }, "type": "array" }, { "type": "null" } ], "description": "Optional list of inline policy definitions to evaluate against instead of persisted policies. When provided, the cosigner's stored policies are ignored and these are used instead. Priority is derived from list order (index 0 = highest).", "title": "Inline Policies" }, "metadata": { "description": "Additional context. Accepts a \"domain\" key for the dapp origin domain.", "title": "Metadata", "type": "object" }, "transaction": { "description": "Base58-encoded Solana transaction to evaluate.", "title": "Transaction", "type": "string" } }, "required": ["evaluation_type", "chain", "transaction"], "title": "EvaluateSolanaSimulateRequest", "type": "object" }, { "additionalProperties": false, "description": "Evaluate one or more already-broadcast Solana transactions by signature.\n\nThe service fetches each transaction's encoded bytes from a Solana RPC and\nroutes them through the historical pipeline, returning a per-policy summary.", "properties": { "chain": { "allOf": [ { "const": "mainnet", "enum": ["mainnet"], "title": "SupportedSolanaChains", "type": "string" } ], "description": "Solana chain, e.g. \"mainnet\", \"devnet\"." }, "evaluation_type": { "const": "signatures", "description": "Evaluation mode.", "enum": ["signatures"], "title": "Evaluation Type", "type": "string" }, "inline_policies": { "anyOf": [ { "items": { "additionalProperties": true, "description": "A single policy definition for inline evaluation, bypassing persisted policy lookup.", "properties": { "action": { "description": "Policy action: \"approve\", \"reject\", or \"pending\".", "title": "Action", "type": "string" }, "name": { "description": "Policy name.", "title": "Name", "type": "string" }, "policy": { "description": "Policy definition with policy_type_id, conditions, targets, etc.", "title": "Policy", "type": "object" } }, "required": ["name", "action", "policy"], "title": "InlinePolicyEntry", "type": "object" }, "type": "array" }, { "type": "null" } ], "description": "Optional list of inline policy definitions to evaluate against instead of persisted policies. When provided, the cosigner's stored policies are ignored and these are used instead. Priority is derived from list order (index 0 = highest).", "title": "Inline Policies" }, "show_transaction_detail_for": { "anyOf": [ { "items": { "enum": ["approved", "rejected", "manual_approved"], "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "Transaction lists for asked verdicts.", "title": "Show Transaction Detail For" }, "signatures": { "description": "Base58-encoded Solana transaction signatures to evaluate.", "items": { "type": "string" }, "title": "Signatures", "type": "array" } }, "required": ["evaluation_type", "chain", "signatures"], "title": "EvaluateSolanaSignaturesRequest", "type": "object" }, { "additionalProperties": false, "description": "Evaluate Solana transactions in a time window resolved from on-chain history.", "properties": { "chain": { "allOf": [ { "const": "mainnet", "enum": ["mainnet"], "title": "SupportedSolanaChains", "type": "string" } ], "description": "Solana chain, e.g. \"mainnet\", \"devnet\"." }, "evaluation_type": { "const": "time_period", "description": "Evaluation mode.", "enum": ["time_period"], "title": "Evaluation Type", "type": "string" }, "show_transaction_detail_for": { "anyOf": [ { "items": { "enum": ["approved", "rejected", "manual_approved"], "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "Transaction lists for asked verdicts.", "title": "Show Transaction Detail For" }, "time_period": { "allOf": [ { "additionalProperties": false, "properties": { "from": { "description": "Start of window (inclusive, ISO 8601).", "format": "date-time", "title": "From", "type": "string" }, "to": { "description": "End of window (inclusive, ISO 8601).", "format": "date-time", "title": "To", "type": "string" } }, "required": ["from", "to"], "title": "TimePeriodInput", "type": "object" } ], "description": "Time window for query." } }, "required": ["evaluation_type", "chain", "time_period"], "title": "EvaluateSolanaTimePeriodRequest", "type": "object" } ] }, "SquadsConfigAction": { "enum": [ "changeThreshold", "addMember", "removeMember", "changeTimelock" ], "title": "SquadsConfigAction", "type": "string" }, "SquadsConfigTransactionPolicyRequest": { "properties": { "rules": { "$ref": "#/components/schemas/SquadsConfigTransactionRules-Input" }, "type": { "const": "squads_config_transaction", "enum": ["squads_config_transaction"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "SquadsConfigTransactionPolicyRequest", "type": "object" }, "SquadsConfigTransactionPolicyResponse": { "properties": { "rules": { "$ref": "#/components/schemas/SquadsConfigTransactionRules-Output" }, "type": { "const": "squads_config_transaction", "enum": ["squads_config_transaction"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "SquadsConfigTransactionPolicyResponse", "type": "object" }, "SquadsConfigTransactionRules-Input": { "properties": { "squads_config_action": { "$ref": "#/components/schemas/ConfigActionRule" } }, "required": ["squads_config_action"], "title": "SquadsConfigTransactionRules", "type": "object" }, "SquadsConfigTransactionRules-Output": { "properties": { "squads_config_action": { "$ref": "#/components/schemas/ConfigActionRule" } }, "required": ["squads_config_action"], "title": "SquadsConfigTransactionRules", "type": "object" }, "ThresholdPercentage": { "properties": { "operator": { "anyOf": [ { "$ref": "#/components/schemas/LessThanComparisonOperator" }, { "$ref": "#/components/schemas/GreaterThanComparisonOperator" } ], "title": "Operator" }, "value": { "maximum": 100.0, "minimum": 0.0, "title": "Value", "type": "integer" } }, "required": ["operator", "value"], "title": "ThresholdPercentage", "type": "object" }, "TimeWindowRule": { "properties": { "scale": { "$ref": "#/components/schemas/TimeWindowScale" }, "value": { "minimum": 1.0, "title": "Value", "type": "integer" } }, "required": ["value", "scale"], "title": "TimeWindowRule", "type": "object" }, "TimeWindowScale": { "enum": ["minutes", "hours", "days"], "title": "TimeWindowScale", "type": "string" }, "TokenSpendApprovalAmountRule": { "properties": { "operator": { "anyOf": [ { "$ref": "#/components/schemas/LessThanComparisonOperator" }, { "$ref": "#/components/schemas/GreaterThanComparisonOperator" }, { "$ref": "#/components/schemas/EqualityOperator" } ], "title": "Operator" }, "value": { "title": "Value", "type": "string" } }, "required": ["operator", "value"], "title": "TokenSpendApprovalAmountRule", "type": "object" }, "TokenSpendApprovalPolicyRequest": { "properties": { "rules": { "$ref": "#/components/schemas/TokenSpendApprovalRules-Input" }, "type": { "const": "token_spend_approval", "enum": ["token_spend_approval"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "TokenSpendApprovalPolicyRequest", "type": "object" }, "TokenSpendApprovalPolicyResponse": { "properties": { "rules": { "$ref": "#/components/schemas/TokenSpendApprovalRules-Output" }, "type": { "const": "token_spend_approval", "enum": ["token_spend_approval"], "title": "Type", "type": "string" } }, "required": ["type", "rules"], "title": "TokenSpendApprovalPolicyResponse", "type": "object" }, "TokenSpendApprovalRules-Input": { "properties": { "approval_amount": { "anyOf": [ { "$ref": "#/components/schemas/TokenSpendApprovalAmountRule" }, { "type": "null" } ] }, "approval_usd_value": { "$ref": "#/components/schemas/TokenSpendApprovalUsdValueRule" } }, "required": ["approval_usd_value"], "title": "TokenSpendApprovalRules", "type": "object" }, "TokenSpendApprovalRules-Output": { "properties": { "approval_amount": { "anyOf": [ { "$ref": "#/components/schemas/TokenSpendApprovalAmountRule" }, { "type": "null" } ] }, "approval_usd_value": { "$ref": "#/components/schemas/TokenSpendApprovalUsdValueRule" } }, "required": ["approval_usd_value"], "title": "TokenSpendApprovalRules", "type": "object" }, "TokenSpendApprovalUsdValueRule": { "properties": { "operator": { "anyOf": [ { "$ref": "#/components/schemas/LessThanComparisonOperator" }, { "$ref": "#/components/schemas/GreaterThanComparisonOperator" }, { "$ref": "#/components/schemas/EqualityOperator" } ], "title": "Operator" }, "value": { "title": "Value", "type": "string" } }, "required": ["operator", "value"], "title": "TokenSpendApprovalUsdValueRule", "type": "object" }, "UtilaCosignerDataExternal": { "properties": { "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "integration_instance_id": { "title": "Integration Instance Id", "type": "string" }, "involvement_level": { "$ref": "#/components/schemas/SignerSigningMode" }, "security_policy": { "$ref": "#/components/schemas/ExternalPolicyOption" }, "type": { "const": "utila", "enum": ["utila"], "title": "Type", "type": "string" }, "unsupported_chain_behavior": { "$ref": "#/components/schemas/DecisionAction" } }, "required": [ "type", "unsupported_chain_behavior", "security_policy", "integration_instance_id", "involvement_level" ], "title": "UtilaCosignerDataExternal", "type": "object" }, "UtilaCosignerUpdateExternal": { "properties": { "chains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Chains" }, "involvement_level": { "anyOf": [ { "$ref": "#/components/schemas/SignerSigningMode" }, { "type": "null" } ] }, "security_policy": { "anyOf": [ { "$ref": "#/components/schemas/ExternalPolicyOption" }, { "type": "null" } ] }, "type": { "const": "utila", "enum": ["utila"], "title": "Type", "type": "string" }, "unsupported_chain_behavior": { "anyOf": [ { "$ref": "#/components/schemas/DecisionAction" }, { "type": "null" } ] } }, "required": ["type"], "title": "UtilaCosignerUpdateExternal", "type": "object" }, "OrganizationCategoryRiskView": { "type": "object", "description": "A risk-exposure category with its platform default score and the organization's override (null when unset).", "properties": { "category": { "type": "string", "description": "The exposure category name, such as sanctioned_entity, stolen_funds, or mixer.", "example": "sanctioned_entity" }, "default_risk_score": { "type": "number", "description": "Scores at or above this value contribute to this category's risk. Platform default, set by Blockaid.", "example": 0.9 }, "override_risk_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Your organization's custom risk score for this category. Overrides the platform default when set, or null to use the default.", "example": null } }, "required": [ "category", "default_risk_score", "override_risk_score" ] }, "VerdictThresholdView": { "type": "object", "description": "A verdict level with its platform default threshold and the organization's override (null when unset).", "properties": { "level": { "type": "string", "enum": [ "warning", "high_risk", "malicious" ], "description": "The verdict level this threshold applies to. benign is excluded as it is the implicit default below warning.", "example": "warning" }, "default_threshold": { "type": "number", "description": "The minimum aggregate score at which this verdict is applied, as set by Blockaid.", "example": 0.26 }, "override_threshold": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Your organization's custom minimum score for this verdict. Overrides the platform default when set, or null to use the default.", "example": null } }, "required": [ "level", "default_threshold", "override_threshold" ] }, "OrganizationRiskConfigView": { "type": "object", "description": "Your organization's risk exposure settings, including category risk scores and verdict thresholds.", "properties": { "categories": { "type": "array", "description": "The risk score configuration for each exposure category.", "items": { "$ref": "#/components/schemas/OrganizationCategoryRiskView" } }, "verdicts": { "type": "array", "description": "The score thresholds that determine each verdict level.", "items": { "$ref": "#/components/schemas/VerdictThresholdView" } } }, "required": [ "categories", "verdicts" ] }, "PatchRiskConfigRequest": { "type": "object", "description": "A partial update to your organization's risk exposure settings. Only the fields you include are changed.", "properties": { "category_overrides": { "type": "object", "description": "Risk score overrides by category name. Pass a value in [0, 1] to set an override, or null to revert to the platform default.", "additionalProperties": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "example": { "sanctioned_entity": 0.7, "stolen_funds": 0.5 } }, "verdict_overrides": { "type": "object", "description": "Verdict threshold overrides by level. Pass a value in [0, 1] to set an override, or null to revert to the platform default. The resulting thresholds must be strictly increasing (warning < high_risk < malicious).", "properties": { "warning": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "example": 0.3, "description": "Scores at or above this value are classified as warning. Set to null to revert to the platform default." }, "high_risk": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "example": 0.6, "description": "Scores at or above this value are classified as high_risk. Set to null to revert to the platform default." }, "malicious": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "example": null, "description": "Scores at or above this value are classified as malicious. Set to null to revert to the platform default." } }, "additionalProperties": false } } } }, "securitySchemes": { "APIKey": { "type": "apiKey", "name": "X-API-Key", "in": "header" }, "ClientID": { "type": "apiKey", "name": "X-CLIENT-ID", "in": "header" }, "JWT": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Bearer authentication header of the form `Bearer `, where `` is your auth token. See [API Authentication](/docs/api-reference/before-you-begin/api-authentication) for how to retrieve it." } } } }