{ "openapi": "3.0.0", "paths": { "/api/v1/addresses/generate": { "post": { "description": "Generate a new address for the given network and reference. Requires wallet/address policy.", "operationId": "createAddress", "parameters": [ { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAddressRequestBodyDTO" } } } }, "responses": { "201": { "description": "Address created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAddressResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010" ], "description": "One of: ERR-010: The request could not be processed." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-013 | Organization not found. |\n| ERR-006 | The requested resource was not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_013", "ERR_006" ], "description": "One of: ERR-013: Organization not found.; ERR-006: The requested resource was not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_013", "message": "Organization not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-016 | We couldn't set up the wallet. Please try again. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_016", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-016: We couldn't set up the wallet. Please try again.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Create address", "tags": [ "addresses" ] } }, "/api/v2/addresses/generate": { "post": { "description": "V2: creates wallet if needed, then generates address for the given network and reference.", "operationId": "createAddressV2", "parameters": [ { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAddressRequestBodyDTO" } } } }, "responses": { "201": { "description": "Generate wallet if not exists and create address (v2)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAddressResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010" ], "description": "One of: ERR-010: The request could not be processed." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-013 | Organization not found. |\n| ERR-006 | The requested resource was not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_013", "ERR_006" ], "description": "One of: ERR-013: Organization not found.; ERR-006: The requested resource was not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_013", "message": "Organization not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-016 | We couldn't set up the wallet. Please try again. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_016", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-016: We couldn't set up the wallet. Please try again.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Generate wallet if not exists and create address (v2)", "tags": [ "addresses" ] } }, "/api/v1/addresses/organization": { "get": { "description": "List addresses for the authenticated user's organization with pagination.", "operationId": "getAddressForOrganization", "parameters": [ { "name": "skip", "required": false, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": false, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Addresses for organization (paginated)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAddressListResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "List addresses for organization", "tags": [ "addresses" ] } }, "/api/v1/addresses": { "get": { "description": "Retrieve a single address by its UUID.", "operationId": "getAddressById", "parameters": [ { "name": "id", "required": true, "in": "query", "description": "Address UUID", "schema": { "format": "uuid", "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Address found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAddressByIdResponseBodyDTO" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009" ], "description": "One of: ERR-009: You don't have permission to do that." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-096 | Address not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_096" ], "description": "One of: ERR-096: Address not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_096", "message": "Address not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get address by ID", "tags": [ "addresses" ] } }, "/api/v1/addresses/{reference}": { "get": { "description": "List addresses for a profile by reference with pagination.", "operationId": "getAddressForProfile", "parameters": [ { "name": "reference", "required": true, "in": "path", "description": "Profile reference", "schema": { "example": "1", "type": "string" } }, { "name": "skip", "required": false, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": false, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Addresses for profile (paginated)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAddressListResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-006 | The requested resource was not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_006" ], "description": "One of: ERR-006: The requested resource was not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_006", "message": "The requested resource was not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "List addresses for profile", "tags": [ "addresses" ] } }, "/api/v1/network/enabled": { "get": { "description": "Returns the enabled-networks catalog (ID, name, alias) from cache. Accessible to any authenticated user — exposes only non-sensitive metadata. On cache miss, rebuilds the index from the database.", "operationId": "getEnabledNetworks", "parameters": [ { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Enabled networks index", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetEnabledNetworksResponseDto" } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get all enabled networks", "tags": [ "networks" ] } }, "/api/v1/network/organization": { "get": { "description": "Get networks available for your organization.", "operationId": "getNetworks", "parameters": [ { "name": "skip", "required": true, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": true, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "name": "enabled", "required": false, "in": "query", "description": "Filter by enabled status (true = only enabled networks)", "schema": { "type": "boolean" } }, { "name": "name", "required": false, "in": "query", "description": "Filter by network name", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Your available networks", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetOrgNetworksResponseDto" } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get networks available for your organization", "tags": [ "networks" ] } }, "/api/v1/wallets/generate": { "post": { "description": "Generate a new wallet for the given reference and network. Requires wallet/address policy.", "operationId": "createWallet", "parameters": [ { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWalletRequestBodyDTO" } } } }, "responses": { "201": { "description": "Wallet created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWalletResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010" ], "description": "One of: ERR-010: The request could not be processed." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Create wallet", "tags": [ "wallets" ] } }, "/api/v1/wallets/profile/{reference}": { "get": { "description": "List wallets for a profile by reference with pagination.", "operationId": "getWalletsByProfile", "parameters": [ { "name": "reference", "required": true, "in": "path", "description": "Profile reference", "schema": { "type": "string" } }, { "name": "skip", "required": false, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": false, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Paginated wallets for the profile", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetWalletsListResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-006 | The requested resource was not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_006" ], "description": "One of: ERR-006: The requested resource was not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_006", "message": "The requested resource was not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "List wallets for the profile", "tags": [ "wallets" ] } }, "/api/v1/wallets/organization": { "get": { "description": "List wallets for the authenticated user's organization with pagination.", "operationId": "getWalletsForOrganization", "parameters": [ { "name": "skip", "required": false, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": false, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Paginated wallets for the organization", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetWalletsListResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "List wallets for the organization", "tags": [ "wallets" ] } }, "/api/v1/transactions/address/{address}": { "get": { "description": "List transactions for a given address with pagination.", "operationId": "getTransactionsByAddress", "parameters": [ { "name": "address", "required": true, "in": "path", "description": "Address", "schema": { "type": "string" } }, { "name": "skip", "required": false, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": false, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Transactions by address (paginated)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTransactionListResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-096 | Address not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_096" ], "description": "One of: ERR-096: Address not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_096", "message": "Address not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "List transactions by address", "tags": [ "transactions" ] } }, "/api/v1/transactions/wallet/{miniWalletId}": { "get": { "description": "List transactions for a mini wallet with pagination.", "operationId": "getTransactionsByMiniWallet", "parameters": [ { "name": "miniWalletId", "required": true, "in": "path", "description": "Mini wallet ID", "schema": { "type": "string" } }, { "name": "skip", "required": false, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": false, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Transactions by mini wallet (paginated)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTransactionListResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-096 | Address not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_096" ], "description": "One of: ERR-096: Address not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_096", "message": "Address not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "List Transactions by mini wallet", "tags": [ "transactions" ] } }, "/api/v1/transactions/organization": { "get": { "description": "List transactions for the authenticated user's organization with pagination.", "operationId": "getTransactionsByOrganization", "parameters": [ { "name": "skip", "required": false, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": false, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Transactions by organization (paginated)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTransactionListResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "List Transactions by organization", "tags": [ "transactions" ] } }, "/api/v1/transactions/profile/{reference}": { "get": { "description": "List transactions for a profile by reference with pagination.", "operationId": "getTransactionsByProfile", "parameters": [ { "name": "reference", "required": true, "in": "path", "description": "Profile reference", "schema": { "type": "string" } }, { "name": "skip", "required": false, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": false, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Transactions by profile (paginated)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTransactionListByProfileResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-096 | Address not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_096" ], "description": "One of: ERR-096: Address not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_096", "message": "Address not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "List Transactions by profile", "tags": [ "transactions" ] } }, "/api/v1/profiles": { "post": { "description": "Create a new profile for the organization.", "operationId": "createProfile", "parameters": [ { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateProfileRequestBodyDTO" } } } }, "responses": { "201": { "description": "Profile created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateProfileResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-300 | Invalid input provided. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_300" ], "description": "One of: ERR-010: The request could not be processed.; ERR-300: Invalid input provided." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-013 | Organization not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_013" ], "description": "One of: ERR-013: Organization not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_013", "message": "Organization not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "409": { "description": "Conflict – resource already exists or state conflict.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-001 | An account with these details already exists. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_001" ], "description": "One of: ERR-001: An account with these details already exists." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_001", "message": "An account with these details already exists.", "category": "CONFLICT", "statusCode": 409, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Create Profile", "tags": [ "profiles" ] }, "get": { "description": "List profiles for the authenticated user's organization with pagination.", "operationId": "getProfiles", "parameters": [ { "name": "skip", "required": true, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": true, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Paginated list of profiles", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetProfileListResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-013 | Organization not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_013" ], "description": "One of: ERR-013: Organization not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_013", "message": "Organization not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "List of profiles", "tags": [ "profiles" ] } }, "/api/v1/withdraw": { "post": { "description": "Initiate a withdrawal. Returns pending status; supports BTC, tBTC, ETH, tETH.", "operationId": "createWithdraw", "parameters": [ { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWithdrawRequestBodyDTO" } } } }, "responses": { "200": { "description": "Withdraw created (pending)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWithdrawResponseBodyDTO" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-236 | Insufficient balance for this action. |\n| ERR-206 | Transaction data is invalid. |\n| ERR-226 | No available funds for this transaction. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_236", "ERR_206", "ERR_226" ], "description": "One of: ERR-010: The request could not be processed.; ERR-236: Insufficient balance for this action.; ERR-206: Transaction data is invalid.; ERR-226: No available funds for this transaction." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-096 | Address not found. |\n| ERR-888 | Wallet not found. |\n| ERR-216 | Account balance could not be retrieved. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_096", "ERR_888", "ERR_216" ], "description": "One of: ERR-096: Address not found.; ERR-888: Wallet not found.; ERR-216: Account balance could not be retrieved." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_096", "message": "Address not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-036 | Failed to send transaction. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_036", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-036: Failed to send transaction.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Withdraw", "tags": [ "withdraw" ] } }, "/api/v1/tokenization/tokens": { "post": { "description": "Start the issue-token workflow. Returns the workflowId, tokenId, and status.", "operationId": "issueNewToken", "parameters": [ { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueNewTokenRequestBody" } } } }, "responses": { "202": { "description": "Issue token workflow started", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueTokenWorkflowResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-310 | Contract does not have a valid ABI. |\n| ERR-311 | Contract initialize function not found. |\n| ERR-312 | Required initialization parameters are missing. |\n| ERR-313 | Parameter types do not match the expected types. |\n| ERR-146 | Contract deployment is still in progress. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_310", "ERR_311", "ERR_312", "ERR_313", "ERR_146" ], "description": "One of: ERR-010: The request could not be processed.; ERR-310: Contract does not have a valid ABI.; ERR-311: Contract initialize function not found.; ERR-312: Required initialization parameters are missing.; ERR-313: Parameter types do not match the expected types.; ERR-146: Contract deployment is still in progress." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-013 | Organization not found. |\n| ERR-066 | Contract not found. |\n| ERR-096 | Address not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_013", "ERR_066", "ERR_096" ], "description": "One of: ERR-013: Organization not found.; ERR-066: Contract not found.; ERR-096: Address not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_013", "message": "Organization not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-186 | Failed to issue new token. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_186", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-186: Failed to issue new token.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Issue Token", "tags": [ "tokenization" ] }, "get": { "description": "List issued tokens for the organization with pagination.", "operationId": "getTokens", "parameters": [ { "name": "skip", "required": false, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": false, "in": "query", "schema": { "default": 10, "example": 25, "type": "number" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Tokens (paginated)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTokensResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "List Tokens", "tags": [ "tokenization" ] } }, "/api/v1/tokenization/tokens/link": { "post": { "description": "Link an existing deployed contract to the organization for tokenization.", "operationId": "linkContract", "parameters": [ { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkContractBodyDto" } } } }, "responses": { "200": { "description": "Contract linked", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkContractResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010" ], "description": "One of: ERR-010: The request could not be processed." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-013 | Organization not found. |\n| ERR-066 | Contract not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_013", "ERR_066" ], "description": "One of: ERR-013: Organization not found.; ERR-066: Contract not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_013", "message": "Organization not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "409": { "description": "Conflict – resource already exists or state conflict.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-000 | The request could not be processed. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_000" ], "description": "One of: ERR-000: The request could not be processed." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_000", "message": "The request could not be processed.", "category": "CONFLICT", "statusCode": 409, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Link Contract", "tags": [ "tokenization" ] } }, "/api/v1/tokenization/collections": { "post": { "description": "Start the create-collection workflow. Returns workflow ID; collection is created asynchronously.", "operationId": "createCollection", "parameters": [ { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCollectionBodyDto" } } } }, "responses": { "202": { "description": "Create new Collection - workflow started", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCollectionWorkflowResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-310 | Contract does not have a valid ABI. |\n| ERR-311 | Contract initialize function not found. |\n| ERR-312 | Required initialization parameters are missing. |\n| ERR-313 | Parameter types do not match the expected types. |\n| ERR-126 | Contract deployment failed. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_310", "ERR_311", "ERR_312", "ERR_313", "ERR_126" ], "description": "One of: ERR-010: The request could not be processed.; ERR-310: Contract does not have a valid ABI.; ERR-311: Contract initialize function not found.; ERR-312: Required initialization parameters are missing.; ERR-313: Parameter types do not match the expected types.; ERR-126: Contract deployment failed." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-013 | Organization not found. |\n| ERR-066 | Contract not found. |\n| ERR-096 | Address not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_013", "ERR_066", "ERR_096" ], "description": "One of: ERR-013: Organization not found.; ERR-066: Contract not found.; ERR-096: Address not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_013", "message": "Organization not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Create new Collection", "tags": [ "tokenization" ] }, "get": { "description": "List tokenization collections for the organization with pagination.", "operationId": "getCollections", "parameters": [ { "name": "skip", "required": false, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": false, "in": "query", "schema": { "default": 10, "example": 25, "type": "number" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Collections (paginated)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetCollectionsResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "List Collections", "tags": [ "tokenization" ] } }, "/api/v1/tokenization/collections/{id}": { "get": { "description": "Get a single collection by its ID.", "operationId": "getCollectionById", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Collection ID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Collection by ID", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetCollectionByIdResponseDto" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-068 | Collection not found. |\n| ERR-066 | Contract not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_068", "ERR_066" ], "description": "One of: ERR-068: Collection not found.; ERR-066: Contract not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_068", "message": "Collection not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get collection by ID", "tags": [ "tokenization" ] }, "delete": { "description": "Delete a collection and its associated data.", "operationId": "deleteCollection", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Collection ID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "delete Collection By Id", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteCollectionResponseDto" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-068 | Collection not found. |\n| ERR-066 | Contract not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_068", "ERR_066" ], "description": "One of: ERR-068: Collection not found.; ERR-066: Contract not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_068", "message": "Collection not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Delete collection by ID", "tags": [ "tokenization" ] } }, "/api/v1/tokenization/collections/{id}/tokens/{tokenId}": { "get": { "description": "Get details of a specific token within a collection.", "operationId": "getCollectionTokenDetails", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Collection ID", "schema": { "type": "string" } }, { "name": "tokenId", "required": true, "in": "path", "description": "Token ID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Collection token details", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetCollectionTokenDetailsResponseDto" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-068 | Collection not found. |\n| ERR-066 | Contract not found. |\n| ERR-006 | The requested resource was not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_068", "ERR_066", "ERR_006" ], "description": "One of: ERR-068: Collection not found.; ERR-066: Contract not found.; ERR-006: The requested resource was not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_068", "message": "Collection not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get Collection token details", "tags": [ "tokenization" ] } }, "/api/v1/tokenization/collections/{id}/tokens/mint": { "post": { "description": "Start mint workflow for a collection. Requires mint policy.", "operationId": "mintToken", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Collection ID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MintTokenBodyDto" } } } }, "responses": { "200": { "description": "Mint new tokens", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MintTokenResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-076 | Contract function not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_076" ], "description": "One of: ERR-010: The request could not be processed.; ERR-076: Contract function not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-066 | Contract not found. |\n| ERR-096 | Address not found. |\n| ERR-006 | The requested resource was not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_066", "ERR_096", "ERR_006" ], "description": "One of: ERR-066: Contract not found.; ERR-096: Address not found.; ERR-006: The requested resource was not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_066", "message": "Contract not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Mint token", "tags": [ "tokenization" ] } }, "/api/v1/tokenization/collection/tokens": { "get": { "description": "List tokens in a collection, optionally filtered by type, with pagination.", "operationId": "getCollectionTokens", "parameters": [ { "name": "skip", "required": false, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": false, "in": "query", "schema": { "default": 10, "example": 25, "type": "number" } }, { "name": "id", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "type", "required": false, "in": "query", "schema": { "type": "string", "enum": [ "MINT", "BURN" ] } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Collection tokens by ID or type", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetCollectionTokensResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-066 | Contract not found. |\n| ERR-068 | Collection not found. |\n| ERR-006 | The requested resource was not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_066", "ERR_068", "ERR_006" ], "description": "One of: ERR-066: Contract not found.; ERR-068: Collection not found.; ERR-006: The requested resource was not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_066", "message": "Contract not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get collection tokens by ID or type", "tags": [ "tokenization" ] } }, "/api/v1/tokenization/collections/{id}/tokens/burn": { "post": { "description": "Start burn workflow for tokens in a collection. Requires burn policy.", "operationId": "burnToken", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Collection ID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BurnTokenBodyDto" } } } }, "responses": { "200": { "description": "Burn token", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BurnTokenResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-076 | Contract function not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_076" ], "description": "One of: ERR-010: The request could not be processed.; ERR-076: Contract function not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-066 | Contract not found. |\n| ERR-068 | Collection not found. |\n| ERR-006 | The requested resource was not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_066", "ERR_068", "ERR_006" ], "description": "One of: ERR-066: Contract not found.; ERR-068: Collection not found.; ERR-006: The requested resource was not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_066", "message": "Contract not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Burn token", "tags": [ "tokenization" ] } }, "/api/v1/tokenization/tokens/{id}": { "delete": { "description": "Unlink a token from the organization.", "operationId": "unlinkToken", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Token ID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Token unlinked", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnlinkTokenResponseDto" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-006 | The requested resource was not found. |\n| ERR-196 | Token not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_006", "ERR_196" ], "description": "One of: ERR-006: The requested resource was not found.; ERR-196: Token not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_006", "message": "The requested resource was not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Unlink Token", "tags": [ "tokenization" ] }, "get": { "description": "Get a linked token by its ID.", "operationId": "getLinkedToken", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Token ID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Linked token by ID", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetLinkedTokenResponseDto" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-006 | The requested resource was not found. |\n| ERR-196 | Token not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_006", "ERR_196" ], "description": "One of: ERR-006: The requested resource was not found.; ERR-196: Token not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_006", "message": "The requested resource was not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get linked token by ID", "tags": [ "tokenization" ] } }, "/api/v1/contract-interactions/network/{networkId}/contract-address/{contractAddress}/functions": { "get": { "description": "Get ABI and callable functions for a deployed contract.", "operationId": "getDeployedContractAbi", "parameters": [ { "name": "networkId", "required": true, "in": "path", "description": "Network Id", "schema": { "type": "string" } }, { "name": "contractAddress", "required": true, "in": "path", "description": "Contract address", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Deployed contract ABI / functions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetDeployedContractAbiResponseDto" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-006 | The requested resource was not found. |\n| ERR-066 | Contract not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_006", "ERR_066" ], "description": "One of: ERR-006: The requested resource was not found.; ERR-066: Contract not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_006", "message": "The requested resource was not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-204 | External service is currently unavailable. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_204", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-204: External service is currently unavailable.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get deployed contract ABI/functions", "tags": [ "contract-interactions" ] } }, "/api/v1/contract-interactions/network/{networkId}/contract-address/{contractAddress}/functions/read": { "post": { "description": "Execute a read-only contract call (no gas).", "operationId": "readCallFunction", "parameters": [ { "name": "networkId", "required": true, "in": "path", "description": "Network Id", "schema": { "type": "string" } }, { "name": "contractAddress", "required": true, "in": "path", "description": "Contract address", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReadCallFunctionBody" } } } }, "responses": { "200": { "description": "Read call result", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReadCallResultResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010" ], "description": "One of: ERR-010: The request could not be processed." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-006 | The requested resource was not found. |\n| ERR-066 | Contract not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_006", "ERR_066" ], "description": "One of: ERR-006: The requested resource was not found.; ERR-066: Contract not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_006", "message": "The requested resource was not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-204 | External service is currently unavailable. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_204", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-204: External service is currently unavailable.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Call read function", "tags": [ "contract-interactions" ] } }, "/api/v1/contract-interactions/network/{networkId}/contract-address/{contractAddress}/functions/write": { "post": { "description": "Start a write/send transaction workflow. Requires interact contract policy.", "operationId": "writeCallFunction", "parameters": [ { "name": "networkId", "required": true, "in": "path", "description": "Network Id", "schema": { "type": "string" } }, { "name": "contractAddress", "required": true, "in": "path", "description": "Contract address", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WriteCallFunctionBody" } } } }, "responses": { "200": { "description": "Write call started", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WriteCallResultResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010" ], "description": "One of: ERR-010: The request could not be processed." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-006 | The requested resource was not found. |\n| ERR-066 | Contract not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_006", "ERR_066" ], "description": "One of: ERR-006: The requested resource was not found.; ERR-066: Contract not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_006", "message": "The requested resource was not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-036 | Failed to send transaction. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_036", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-036: Failed to send transaction.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Call write function", "tags": [ "contract-interactions" ] } }, "/api/v1/contract-interactions/network/{networkId}/tx/{txId}": { "get": { "description": "Get the receipt for a contract write transaction.", "operationId": "getTransactionReceipt", "parameters": [ { "name": "networkId", "required": true, "in": "path", "description": "Network Id", "schema": { "type": "string" } }, { "name": "txId", "required": true, "in": "path", "description": "Transaction ID", "schema": { "example": "0x5f8c2a1e3d9b4e1c7f8a0c6e4d9a2b1c3f6e7a9b8d4e5c1a2b3c4d5e6f7a", "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Transaction receipt", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTransactionReceiptResponseDto" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-046 | Transaction receipt not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_046" ], "description": "One of: ERR-046: Transaction receipt not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_046", "message": "Transaction receipt not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-046 | Transaction receipt not found. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_046", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-046: Transaction receipt not found.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get transaction receipt", "tags": [ "contract-interactions" ] } }, "/api/v1/portfolio": { "get": { "description": "Get asset balances for a given address, optionally filtered by network.", "operationId": "getAssets", "parameters": [ { "name": "skip", "required": true, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": true, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "name": "address", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "walletId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "contractAddress", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "tokenizationId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "network", "required": false, "in": "query", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Assets retrieved for address", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAssetsResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010" ], "description": "One of: ERR-010: The request could not be processed." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-006 | The requested resource was not found. |\n| ERR-096 | Address not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_006", "ERR_096" ], "description": "One of: ERR-006: The requested resource was not found.; ERR-096: Address not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_006", "message": "The requested resource was not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Retrieved assets for address", "tags": [ "assets" ] } }, "/api/v1/portfolio/native-balance": { "get": { "description": "Get native (e.g. ETH/BTC) balance for a given address and optional network.", "operationId": "getNativeBalance", "parameters": [ { "name": "skip", "required": true, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": true, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "name": "networkId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "address", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "walletId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "network", "required": false, "in": "query", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Native balance for address", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetBalanceResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010" ], "description": "One of: ERR-010: The request could not be processed." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-006 | The requested resource was not found. |\n| ERR-096 | Address not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_006", "ERR_096" ], "description": "One of: ERR-006: The requested resource was not found.; ERR-096: Address not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_006", "message": "The requested resource was not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get Native balance for address", "tags": [ "assets" ] } }, "/api/v1/deployed-contracts": { "get": { "description": "List deployed contracts with optional filters and pagination.", "operationId": "getDeployedContracts", "parameters": [ { "name": "skip", "required": false, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": false, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "name": "contractAddress", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "networkId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "contractTemplateId", "required": false, "in": "query", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Deployed contracts (paginated)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetDeployedContractsResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "List Deployed contracts", "tags": [ "deployed-contracts" ] } }, "/api/v1/deployed-contracts/{deploymentId}": { "get": { "description": "Get a deployed contract by its deployment ID.", "operationId": "getDeployedContractById", "parameters": [ { "name": "deploymentId", "required": true, "in": "path", "description": "Deployment ID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Get deployed contract by deployment ID", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetDeployedContractByIdResponseDto" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-066 | Contract not found. |\n| ERR-146 | Contract deployment is still in progress. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_066", "ERR_146" ], "description": "One of: ERR-066: Contract not found.; ERR-146: Contract deployment is still in progress." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_066", "message": "Contract not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get deployed contract by deployment ID", "tags": [ "deployed-contracts" ] } }, "/api/v1/deployed-contracts/{contractAddress}/{networkId}": { "get": { "description": "Get a deployed contract by contract address and networkId.", "operationId": "getDeployedContractByAddress", "parameters": [ { "name": "contractAddress", "required": true, "in": "path", "description": "Contract address", "schema": { "type": "string" } }, { "name": "networkId", "required": true, "in": "path", "description": "Network Id", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Deployed contract by address and networkId", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetDeployedContractByAddressResponseDto" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-066 | Contract not found. |\n| ERR-146 | Contract deployment is still in progress. |\n| ERR-156 | Organization not found for this tenant. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_066", "ERR_146", "ERR_156" ], "description": "One of: ERR-066: Contract not found.; ERR-146: Contract deployment is still in progress.; ERR-156: Organization not found for this tenant." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_066", "message": "Contract not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get deployed contract by address and networkId", "tags": [ "deployed-contracts" ] } }, "/api/v1/deployed-contracts/fetch-abi": { "post": { "description": "Fetch contract ABI from chain/relayer by address and network.", "operationId": "fetchContractAbi", "parameters": [ { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FetchContractAbiRequestBodyDTO" } } } }, "responses": { "200": { "description": "Fetched contract ABI", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FetchContractAbiResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010" ], "description": "One of: ERR-010: The request could not be processed." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-066 | Contract not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_066" ], "description": "One of: ERR-066: Contract not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_066", "message": "Contract not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Fetch contract ABI", "tags": [ "deployed-contracts" ] } }, "/api/v1/deployed-contracts/add-abi": { "post": { "description": "Add or update ABI for a deployed contract.", "operationId": "addContractAbi", "parameters": [ { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddContractAbiRequestBodyDTO" } } } }, "responses": { "200": { "description": "Contract ABI added", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddContractAbiResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010" ], "description": "One of: ERR-010: The request could not be processed." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "409": { "description": "Conflict – resource already exists or state conflict.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-501 | Resource conflict |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_501" ], "description": "One of: ERR-501: Resource conflict" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_501", "message": "Resource conflict", "category": "CONFLICT", "statusCode": 409, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Add Contract ABI", "tags": [ "deployed-contracts" ] } }, "/api/v1/contract-templates": { "get": { "description": "List contract templates for the organization with pagination.", "operationId": "getContracts", "parameters": [ { "name": "skip", "required": false, "in": "query", "schema": { "default": 0, "example": 0, "type": "number" } }, { "name": "take", "required": false, "in": "query", "schema": { "default": 10, "example": 10, "type": "number" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Contract templates (paginated)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetContractsResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-022 | Invalid pagination parameters. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_022" ], "description": "One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "List contract templates", "tags": [ "contract-templates" ] }, "post": { "description": "Create a new contract template (ABI, bytecode, metadata).", "operationId": "createContract", "parameters": [ { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContractRequestBodyDTO" } } } }, "responses": { "200": { "description": "Contract template created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContractResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-300 | Invalid input provided. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_300" ], "description": "One of: ERR-010: The request could not be processed.; ERR-300: Invalid input provided." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "409": { "description": "Conflict – resource already exists or state conflict.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-501 | Resource conflict |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_501" ], "description": "One of: ERR-501: Resource conflict" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_501", "message": "Resource conflict", "category": "CONFLICT", "statusCode": 409, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Create contract template", "tags": [ "contract-templates" ] } }, "/api/v1/contract-templates/{templateId}": { "get": { "description": "Get a contract template by its ID.", "operationId": "getContractById", "parameters": [ { "name": "templateId", "required": true, "in": "path", "description": "Contract template ID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Contract template by ID", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetContractByIdResponseDto" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-066 | Contract not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_066" ], "description": "One of: ERR-066: Contract not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_066", "message": "Contract not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get contract template by ID", "tags": [ "contract-templates" ] }, "delete": { "description": "Delete a contract template by ID.", "operationId": "deleteContract", "parameters": [ { "name": "templateId", "required": true, "in": "path", "description": "Contract template ID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Contract template deleted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteContractResponseDto" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-066 | Contract not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_066" ], "description": "One of: ERR-066: Contract not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_066", "message": "Contract not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Delete contract template", "tags": [ "contract-templates" ] } }, "/api/v1/contract-templates/{templateId}/getConstructorInfo": { "get": { "description": "Get constructor info (params, ABI) for a contract template.", "operationId": "getContractConstructorById", "parameters": [ { "name": "templateId", "required": true, "in": "path", "description": "Contract template ID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Contract constructor by template ID", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetContractConstructorResponseDto" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-066 | Contract not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_066" ], "description": "One of: ERR-066: Contract not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_066", "message": "Contract not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get contract constructor by template ID", "tags": [ "contract-templates" ] } }, "/api/v1/contract-templates/{templateId}/function": { "get": { "description": "Get function metadata/ABI for a contract template.", "operationId": "getContractFunctionById", "parameters": [ { "name": "templateId", "required": true, "in": "path", "description": "Contract template ID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Contract function by template ID", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetContractFunctionResponseDto" } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-066 | Contract not found. |\n| ERR-076 | Contract function not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_066", "ERR_076" ], "description": "One of: ERR-066: Contract not found.; ERR-076: Contract function not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_066", "message": "Contract not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get contract function by template ID", "tags": [ "contract-templates" ] } }, "/api/v1/contract-templates/{templateId}/deploy": { "post": { "description": "Deploy a contract from a template to the specified network.", "operationId": "deployContract", "parameters": [ { "name": "templateId", "required": true, "in": "path", "description": "Contract template ID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeployContractRequestBodyDTO" } } } }, "responses": { "200": { "description": "deploy contract via workflow", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeployContractResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |\n| ERR-300 | Invalid input provided. |\n| ERR-106 | Failed to get transaction nonce. |\n| ERR-116 | Failed to get transaction fee data. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010", "ERR_300", "ERR_106", "ERR_116" ], "description": "One of: ERR-010: The request could not be processed.; ERR-300: Invalid input provided.; ERR-106: Failed to get transaction nonce.; ERR-116: Failed to get transaction fee data." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-066 | Contract not found. |\n| ERR-096 | Address not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_066", "ERR_096" ], "description": "One of: ERR-066: Contract not found.; ERR-096: Address not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_066", "message": "Contract not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-036 | Failed to send transaction. |\n| ERR-126 | Contract deployment failed. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_036", "ERR_126", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-036: Failed to send transaction.; ERR-126: Contract deployment failed.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Deploy Contract", "tags": [ "contract-templates" ] } }, "/api/v1/workflows/{workflowId}/status": { "get": { "description": "Get the status and result of a workflow by ID.", "operationId": "getWorkflowStatus", "parameters": [ { "name": "workflowId", "required": true, "in": "path", "description": "Workflow ID", "schema": { "example": "create-collection-123e4567-e89b-12d3-a456-426614174000", "type": "string" } }, { "$ref": "#/components/parameters/SdkVersionHeader" } ], "responses": { "200": { "description": "Workflow status and result", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetWorkflowStatusResponseDto" } } } }, "400": { "description": "Bad request or validation failed.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-010 | The request could not be processed. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_010" ], "description": "One of: ERR-010: The request could not be processed." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_010", "message": "The request could not be processed.", "category": "VALIDATION", "statusCode": 400, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "401": { "description": "Unauthorized – invalid or missing token.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-008 | You need to sign in to continue. |\n| ERR-011 | Your session is invalid or expired. Please sign in again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_008", "ERR_011" ], "description": "One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_008", "message": "You need to sign in to continue.", "category": "AUTHORIZATION", "statusCode": 401, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "403": { "description": "Forbidden – insufficient permissions.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-009 | You don't have permission to do that. |\n| ERR-410 | Error occurred |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_009", "ERR_410" ], "description": "One of: ERR-009: You don't have permission to do that.; ERR-410: Error occurred" }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_009", "message": "You don't have permission to do that.", "category": "AUTHORIZATION", "statusCode": 403, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "404": { "description": "Resource not found.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-006 | The requested resource was not found. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_006" ], "description": "One of: ERR-006: The requested resource was not found." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_006", "message": "The requested resource was not found.", "category": "RESOURCE", "statusCode": 404, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } }, "500": { "description": "Internal server error.\n\n**Applicable error codes and client messages**\n\nThe response body contains one of the following error codes and the corresponding client-facing message.\n\n| Code | Client message |\n|------|----------------|\n| ERR-019 | Something went wrong on our side. |\n| ERR-999 | An unexpected error occurred. Please try again. |", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ApiErrorResponseDto" } ], "properties": { "code": { "type": "string", "enum": [ "ERR_019", "ERR_999" ], "description": "One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again." }, "message": { "type": "string", "description": "Client-facing message for this error code (see table above)." } }, "example": { "code": "ERR_019", "message": "Something went wrong on our side.", "category": "SYSTEM", "statusCode": 500, "path": "/api/v1/example", "timestamp": "2025-02-20T12:00:00.000Z", "requestId": "req-example-id" } } } } } }, "security": [ { "x-api-key": [] } ], "summary": "Get Workflow status and result", "tags": [ "workflows" ] } } }, "info": { "title": "Oumla Core Server", "description": "Core API. Errors, request and response are documented per endpoint. Error response shape: code, category, message, statusCode, path, timestamp, requestId.", "version": "1.0", "contact": {} }, "tags": [], "servers": [ { "url": "https://sandbox.oumla.com", "description": "Mainnet", "x-fern-server-name": "Mainnet" } ], "components": { "securitySchemes": { "x-api-key": { "type": "apiKey", "in": "header", "name": "x-api-key", "description": "API key for authentication" } }, "schemas": { "OrganizationDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Organization ID" }, "name": { "type": "string", "description": "Organization name" }, "email": { "type": "string", "description": "Organization email" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "isVerified": { "type": "boolean" }, "role": { "type": "string" }, "companySize": { "type": "number" }, "isSubscribed": { "type": "boolean" }, "sub": { "type": "string" }, "country": { "type": "string" }, "terms": { "type": "boolean" } } }, "GetOrgResponseBodyDTO": { "type": "object", "properties": { "data": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/OrganizationDto" } ] } }, "required": [ "data" ] }, "OrganizationDashboardResponseBodyDTO": { "type": "object", "properties": { "data": { "type": "object", "readOnly": true } }, "required": [ "data" ] }, "CreateOrganizationRequestBodyDTO": { "type": "object", "properties": { "name": { "type": "string" }, "companySize": { "type": "number" }, "role": { "type": "string" }, "terms": { "type": "boolean" }, "country": { "type": "string" } }, "required": [ "name", "companySize", "role", "terms", "country" ] }, "CreateOrganizationDataDTO": { "type": "object", "properties": { "organization": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/OrganizationDto" } ] }, "last_onboarded": { "type": "string", "readOnly": true } }, "required": [ "organization", "last_onboarded" ] }, "CreateOrganizationResponseDTO": { "type": "object", "properties": { "data": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/CreateOrganizationDataDTO" } ] } }, "required": [ "data" ] }, "SubscribeToNewsLetterRequestBodyDTO": { "type": "object", "properties": { "subscribe": { "type": "boolean" } }, "required": [ "subscribe" ] }, "SubscribeToNewsLetterResponseBodyDTO": { "type": "object", "properties": { "message": { "type": "string", "readOnly": true } }, "required": [ "message" ] }, "RegenerateSharesResponseDto": { "type": "object", "properties": { "newShare": { "type": "string", "readOnly": true } }, "required": [ "newShare" ] }, "UpdateOrgRequestBodyDTO": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": "string" } }, "required": [ "name", "email" ] }, "UpdateOrgResponseBodyDTO": { "type": "object", "properties": { "organization": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/OrganizationDto" } ] } }, "required": [ "organization" ] }, "CreateAddressRequestBodyDTO": { "type": "object", "properties": { "reference": { "type": "string", "description": "Profile reference that owns the address", "example": "user" }, "networkId": { "type": "string", "description": "UUID of the network to generate the address on", "format": "uuid", "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }, "clientShare": { "type": "string", "description": "Client share for key derivation. Must be non-empty.", "example": "c2hhcmUtZGF0YS1iYXNlNjQ=" } }, "required": [ "reference", "networkId", "clientShare" ] }, "CreateAddressDataDTO": { "type": "object", "properties": { "id": { "type": "string" }, "address": { "type": "string" } }, "required": [ "id", "address" ] }, "CreateAddressResponseBodyDTO": { "type": "object", "properties": { "data": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/CreateAddressDataDTO" } ] }, "message": { "type": "string", "readOnly": true } }, "required": [ "data", "message" ] }, "AddressDataDTO": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "address": { "type": "string", "description": "On-chain address string" }, "reference": { "type": "string", "description": "Profile reference that owns this address" }, "networkId": { "type": "string", "format": "uuid", "description": "Network UUID" }, "date": { "type": "string", "format": "date-time", "description": "Address creation timestamp" }, "label": { "type": "string", "description": "Optional human-readable label" }, "sub": { "type": "string", "description": "Organization subject identifier" }, "balance": { "type": "string", "description": "Native balance as a decimal string (wei / satoshi)" }, "miniWalletId": { "type": "string", "format": "uuid", "description": "Parent wallet UUID" } }, "required": [ "id", "address", "reference", "date", "sub", "balance", "miniWalletId" ] }, "AddressListPaginationDto": { "type": "object", "properties": { "totalElements": { "type": "number", "example": 100, "description": "Total number of items" }, "totalPages": { "type": "number", "example": 10, "description": "Total number of pages" }, "skip": { "type": "number", "example": 0 }, "take": { "type": "number", "example": 10 } }, "required": [ "totalElements", "totalPages", "skip", "take" ] }, "GetAddressListResponseBodyDTO": { "type": "object", "properties": { "data": { "readOnly": true, "type": "array", "items": { "$ref": "#/components/schemas/AddressDataDTO" } }, "pagination": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/AddressListPaginationDto" } ] } }, "required": [ "data", "pagination" ] }, "GetAddressByIdResponseBodyDTO": { "type": "object", "properties": { "data": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/AddressDataDTO" } ] } }, "required": [ "data" ] }, "AddressFamily": { "type": "string", "enum": [ "EVM", "BITCOIN", "MOVE", "SOLANA", "COSMOS", "TRON", "STARKNET" ], "description": "Address family (EVM, BITCOIN, MOVE, etc.)" }, "CreateNetworkBodyDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Human-readable network name (e.g. \"ETH Mainnet\")" }, "rpcHttpUrl": { "type": "string", "description": "HTTP RPC URL" }, "decimals": { "type": "number", "description": "Number of decimals for the native token (e.g. 18 for ETH)" }, "alias": { "type": "string", "description": "Alias name used internally" }, "rpcWsUrl": { "type": "string", "description": "WebSocket RPC URL" }, "rpcUsername": { "type": "string", "description": "RPC username for Basic Auth (e.g., Bitcoin RPC)" }, "rpcPassword": { "type": "string", "description": "RPC password for Basic Auth (e.g., Bitcoin RPC)" }, "chainId": { "type": "number", "description": "EVM networkId" }, "slip44CoinType": { "type": "number", "description": "SLIP-0044 coin type (for BIP44 paths)" }, "isMainnet": { "type": "boolean", "description": "Whether this is a mainnet", "default": false }, "addressFamily": { "description": "Address family (EVM, BITCOIN, MOVE, etc.)", "allOf": [ { "$ref": "#/components/schemas/AddressFamily" } ] }, "explorerUrl": { "type": "string", "description": "Block explorer URL" }, "explorerWsUrl": { "type": "string", "description": "WebSocket explorer URL" }, "enabled": { "type": "boolean", "default": true }, "globalAccess": { "type": "boolean", "description": "If true, all organizations can access this network without explicit assignment", "default": false }, "isGasless": { "type": "boolean", "description": "Whether the network sponsors gas fees (e.g., via paymaster)", "default": false } }, "required": [ "name", "rpcHttpUrl", "decimals", "slip44CoinType", "isMainnet", "addressFamily" ] }, "NetworkItemDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "alias": { "type": "string" }, "chainId": { "type": "number" }, "decimals": { "type": "number" }, "isMainnet": { "type": "boolean" }, "enabled": { "type": "boolean" }, "globalAccess": { "type": "boolean" }, "addressFamily": { "allOf": [ { "$ref": "#/components/schemas/AddressFamily" } ] }, "slip44CoinType": { "type": "number" }, "explorerUrl": { "type": "string" }, "explorerWsUrl": { "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "id", "decimals", "isMainnet", "enabled", "globalAccess", "addressFamily" ] }, "PaginationMetaDto": { "type": "object", "properties": { "totalElements": { "type": "number", "example": 100, "description": "Total number of items" }, "totalPages": { "type": "number", "example": 10, "description": "Total number of pages" }, "skip": { "type": "number", "example": 0 }, "take": { "type": "number", "example": 10 } }, "required": [ "totalElements", "totalPages", "skip", "take" ] }, "ListNetworksResponseDto": { "type": "object", "properties": { "networks": { "type": "array", "items": { "$ref": "#/components/schemas/NetworkItemDto" } }, "pagination": { "$ref": "#/components/schemas/PaginationMetaDto" } }, "required": [ "networks", "pagination" ] }, "UpdateNetworkBodyDto": { "type": "object", "properties": { "name": { "type": "string" }, "rpcHttpUrl": { "type": "string" }, "rpcWsUrl": { "type": "string" }, "rpcUsername": { "type": "string", "description": "RPC username for Basic Auth (e.g., Bitcoin RPC)" }, "rpcPassword": { "type": "string", "description": "RPC password for Basic Auth (e.g., Bitcoin RPC)" }, "chainId": { "type": "number" }, "decimals": { "type": "number" }, "slip44CoinType": { "type": "number" }, "isMainnet": { "type": "boolean" }, "addressFamily": { "description": "Address family (EVM, BITCOIN, MOVE, etc.)", "allOf": [ { "$ref": "#/components/schemas/AddressFamily" } ] }, "explorerUrl": { "type": "string" }, "explorerWsUrl": { "type": "string" }, "enabled": { "type": "boolean" }, "globalAccess": { "type": "boolean", "description": "If true, all organizations can access this network without explicit assignment" }, "isGasless": { "type": "boolean", "description": "Whether the network sponsors gas fees (e.g., via paymaster)" } } }, "AssignNetworkToOrgResponseDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Network ID (UUID)" }, "enabled": { "type": "boolean" } }, "required": [ "id", "enabled" ] }, "UpdateOrgNetworkBodyDto": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable or disable network access for the organization" } }, "required": [ "enabled" ] }, "UpdateOrgNetworkResponseDto": { "type": "object", "properties": { "networkId": { "type": "string" }, "enabled": { "type": "boolean" } }, "required": [ "networkId", "enabled" ] }, "EnabledNetworkItemDto": { "type": "object", "properties": { "networkId": { "type": "string", "description": "Network UUID" }, "name": { "type": "string", "description": "Human-readable network name" }, "alias": { "type": "string", "description": "Network alias used by event producers" } }, "required": [ "networkId", "name", "alias" ] }, "GetEnabledNetworksResponseDto": { "type": "object", "properties": { "networks": { "type": "array", "items": { "$ref": "#/components/schemas/EnabledNetworkItemDto" } } }, "required": [ "networks" ] }, "OrgNetworkItemDto": { "type": "object", "properties": { "id": { "type": "string" }, "enabled": { "type": "boolean", "description": "Whether this network is usable by the organization (Network.enabled AND OrganizationNetwork.enabled)" }, "name": { "type": "string" }, "globalAccess": { "type": "boolean" }, "chainId": { "type": "number" }, "isMainnet": { "type": "boolean" }, "isGasless": { "type": "boolean", "description": "Whether the network sponsors gas fees" }, "addressFamily": { "type": "string", "enum": [ "EVM", "BITCOIN", "MOVE", "SOLANA", "COSMOS", "TRON", "STARKNET" ] }, "decimals": { "type": "number" }, "createdAt": { "format": "date-time", "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "id", "enabled", "name", "globalAccess", "isMainnet", "isGasless", "addressFamily", "decimals" ] }, "GetOrgNetworksResponseDto": { "type": "object", "properties": { "networks": { "type": "array", "items": { "$ref": "#/components/schemas/OrgNetworkItemDto" } }, "pagination": { "$ref": "#/components/schemas/PaginationMetaDto" } }, "required": [ "networks", "pagination" ] }, "CreateWalletRequestBodyDTO": { "type": "object", "properties": { "reference": { "type": "string" }, "networkId": { "type": "string" } }, "required": [ "reference", "networkId" ] }, "CreateWalletDataDTO": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Wallet UUID" }, "reference": { "type": "string", "description": "Profile reference that owns this wallet" }, "networkId": { "type": "string", "format": "uuid", "description": "Network UUID" }, "type": { "type": "string", "description": "Profile type (User | Department | Merchant)" }, "date": { "type": "string", "format": "date-time", "description": "Wallet creation timestamp" } }, "required": [ "id", "reference", "networkId", "type" ] }, "CreateWalletResponseBodyDTO": { "type": "object", "properties": { "data": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/CreateWalletDataDTO" } ] } }, "required": [ "data" ] }, "WalletDataDTO": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Wallet UUID" }, "date": { "type": "string", "format": "date-time", "description": "Wallet creation timestamp" }, "organizationId": { "type": "string", "format": "uuid", "description": "Owning organization UUID" }, "reference": { "type": "string", "description": "Profile reference that owns this wallet" }, "type": { "type": "string", "description": "Profile type (User | Department | Merchant)" }, "networkId": { "type": "string", "format": "uuid", "description": "Network UUID" }, "currentDeepIndex": { "type": "number" }, "index": { "type": "number" } }, "required": [ "id", "organizationId", "reference", "type", "networkId", "index" ] }, "GetWalletsListResponseBodyDTO": { "type": "object", "properties": { "data": { "readOnly": true, "type": "array", "items": { "$ref": "#/components/schemas/WalletDataDTO" } }, "pagination": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/PaginationMetaDto" } ] } }, "required": [ "data", "pagination" ] }, "TransactionItemDto": { "type": "object", "properties": { "addressFrom": { "type": "string" }, "addressTo": { "type": "string" }, "amount": { "type": "string" }, "date": { "type": "string" }, "isMempool": { "type": "boolean" }, "isSpent": { "type": "boolean" }, "status": { "type": "string" }, "updatedAt": { "type": "string" }, "createdAt": { "type": "string" }, "type": { "type": "string" }, "networkId": { "type": "string" }, "txid": { "type": "string" }, "contractAddress": { "type": "string" }, "tokenId": { "type": "string" }, "txType": { "type": "string" }, "fee": { "type": "string" } } }, "GetTransactionListResponseBodyDTO": { "type": "object", "properties": { "data": { "readOnly": true, "type": "array", "items": { "$ref": "#/components/schemas/TransactionItemDto" } }, "pagination": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/PaginationMetaDto" } ] } }, "required": [ "data", "pagination" ] }, "GetTransactionListByProfileResponseBodyDTO": { "type": "object", "properties": { "transactions": { "readOnly": true, "type": "array", "items": { "$ref": "#/components/schemas/TransactionItemDto" } }, "pagination": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/PaginationMetaDto" } ] } }, "required": [ "transactions", "pagination" ] }, "CreateProfileRequestBodyDTO": { "type": "object", "properties": { "reference": { "type": "string" }, "type": { "type": "string" } }, "required": [ "reference", "type" ] }, "ProfileDTO": { "type": "object", "properties": { "type": { "type": "string" }, "reference": { "type": "string" } }, "required": [ "type", "reference" ] }, "CreateProfileResponseBodyDTO": { "type": "object", "properties": { "data": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/ProfileDTO" } ] } }, "required": [ "data" ] }, "GetProfileListResponseBodyDTO": { "type": "object", "properties": { "data": { "readOnly": true, "type": "array", "items": { "$ref": "#/components/schemas/ProfileDTO" } }, "pagination": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/PaginationMetaDto" } ] } }, "required": [ "data", "pagination" ] }, "CreateWithdrawRequestBodyDTO": { "type": "object", "properties": { "to": { "type": "string" }, "amount": { "type": "string" }, "from": { "description": "Input UTXOs or addresses", "type": "array", "items": { "type": "string" } }, "networkId": { "type": "string" }, "clientShare": { "type": "string" } }, "required": [ "to", "amount", "from", "networkId", "clientShare" ] }, "CreateWithdrawResponseDataDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Transaction or withdrawal ID" }, "status": { "type": "string", "example": "pending", "description": "Status of the withdrawal" } }, "required": [ "id", "status" ] }, "CreateWithdrawResponseBodyDTO": { "type": "object", "properties": { "data": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/CreateWithdrawResponseDataDto" } ] } }, "required": [ "data" ] }, "ConstructorParam": { "type": "object", "properties": { "name": { "type": "string" }, "type": { "type": "string" }, "value": { "type": "string" } }, "required": [ "name", "type", "value" ] }, "CreateParams": { "type": "object", "properties": { "initializeParams": { "type": "array", "items": { "$ref": "#/components/schemas/ConstructorParam" } } }, "required": [ "initializeParams" ] }, "IssueNewTokenRequestBody": { "type": "object", "properties": { "networkId": { "type": "string" }, "addressId": { "type": "string" }, "clientShare": { "type": "string" }, "createParams": { "$ref": "#/components/schemas/CreateParams" }, "deploymentId": { "type": "string" }, "displayName": { "type": "string" }, "useGasless": { "type": "boolean" }, "fee": { "type": "string" }, "feeLevel": { "type": "string", "enum": [ "LOW", "MEDIUM", "HIGH" ] } }, "required": [ "networkId", "addressId", "clientShare", "createParams", "deploymentId", "displayName", "useGasless", "fee" ] }, "WorkflowStartResultDto": { "type": "object", "properties": { "workflowId": { "type": "string", "description": "Workflow ID" }, "operationId": { "type": "string", "description": "Operation ID (e.g. deploymentId, collectionId, mintId, writeCallId)" }, "status": { "type": "string", "enum": [ "started", "already_running" ], "description": "Workflow status" }, "message": { "type": "string", "description": "Human-readable status message" } }, "required": [ "workflowId", "operationId", "status", "message" ] }, "IssueTokenWorkflowResponseDto": { "type": "object", "properties": { "workflowResult": { "$ref": "#/components/schemas/WorkflowStartResultDto" } }, "required": [ "workflowResult" ] }, "TokenMetadataDto": { "type": "object", "properties": { "name": { "type": "string" }, "symbol": { "type": "string" }, "decimals": { "type": "number" }, "standard": { "type": "string" }, "network": { "type": "string" }, "contractAddress": { "type": "string" }, "contractTemplateId": { "type": "string" }, "contractDeploymentId": { "type": "string" }, "addressId": { "type": "string" } } }, "TokenResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" }, "displayName": { "type": "string" }, "tokenMetadata": { "$ref": "#/components/schemas/TokenMetadataDto" } } }, "GetTokensResponseDto": { "type": "object", "properties": { "tokens": { "type": "array", "items": { "$ref": "#/components/schemas/TokenResponseDto" } }, "total": { "type": "number" } } }, "LinkContractBodyDto": { "type": "object", "properties": { "type": { "type": "string" }, "refId": { "type": "string" }, "displayName": { "type": "string" }, "networkId": { "type": "string" }, "contractAddress": { "type": "string" } }, "required": [ "networkId", "contractAddress" ] }, "LinkContractResponseDto": { "type": "object", "properties": { "link": { "$ref": "#/components/schemas/TokenResponseDto" } } }, "CreateCollectionBodyDto": { "type": "object", "properties": { "networkId": { "type": "string" }, "addressId": { "type": "string" }, "type": { "type": "string", "enum": [ "NON_FUNGIBLE_TOKEN", "SEMI_FUNGIBLE_TOKEN" ] }, "clientShare": { "type": "string" }, "createParams": { "$ref": "#/components/schemas/CreateParams" }, "displayName": { "type": "string" }, "useGasless": { "type": "boolean" }, "fee": { "type": "string" }, "feeLevel": { "type": "string", "enum": [ "LOW", "MEDIUM", "HIGH" ] }, "description": { "type": "string" } }, "required": [ "networkId", "addressId", "type", "clientShare", "createParams" ] }, "CreateCollectionWorkflowResponseDto": { "type": "object", "properties": { "workflowResult": { "$ref": "#/components/schemas/WorkflowStartResultDto" } }, "required": [ "workflowResult" ] }, "CollectionMetadataDto": { "type": "object", "properties": { "name": { "type": "string" }, "symbol": { "type": "string" }, "standard": { "type": "string" }, "contractAddress": { "type": "string" } } }, "CollectionItemDto": { "type": "object", "properties": { "id": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" }, "displayName": { "type": "string" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "network": { "type": "string" }, "collectionMetadata": { "$ref": "#/components/schemas/CollectionMetadataDto" } } }, "GetCollectionsResponseDto": { "type": "object", "properties": { "collections": { "type": "array", "items": { "$ref": "#/components/schemas/CollectionItemDto" } }, "total": { "type": "number" }, "message": { "type": "string" } } }, "GetCollectionByIdResponseDto": { "type": "object", "properties": { "collection": { "$ref": "#/components/schemas/CollectionItemDto" } } }, "DeleteCollectionResponseDto": { "type": "object", "properties": { "success": { "type": "boolean" } } }, "MetadataAttributeDto": { "type": "object", "properties": { "trait_type": { "type": "string" }, "value": { "type": "string" }, "display_type": { "type": "string" } }, "required": [ "trait_type", "value" ] }, "CollectionTokenDetailMetadataDto": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "image": { "type": "string" }, "animation_url": { "type": "string" }, "external_url": { "type": "string" }, "attributes": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataAttributeDto" } } } }, "MintOrBurnRecordSummaryDto": { "type": "object", "properties": { "id": { "type": "string" }, "amount": { "type": "string" }, "note": { "type": "string" }, "status": { "type": "string" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" } } }, "CollectionTokenDetailDto": { "type": "object", "properties": { "id": { "type": "string" }, "collectionId": { "type": "string" }, "name": { "type": "string" }, "symbol": { "type": "string" }, "network": { "type": "string" }, "addressId": { "type": "string" }, "contractAddress": { "type": "string" }, "status": { "type": "string" }, "recipientAddress": { "type": "string" }, "mintTransactionHash": { "type": "string" }, "burnTransactionHash": { "type": "string" }, "mintedAt": { "type": "string" }, "burnedAt": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/CollectionTokenDetailMetadataDto" }, "mintRecord": { "$ref": "#/components/schemas/MintOrBurnRecordSummaryDto" }, "burnRecord": { "$ref": "#/components/schemas/MintOrBurnRecordSummaryDto" } } }, "GetCollectionTokenDetailsResponseDto": { "type": "object", "properties": { "collcetion": { "description": "Collection token details (key typo: collcetion)", "allOf": [ { "$ref": "#/components/schemas/CollectionTokenDetailDto" } ] } } }, "MetadataDto": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "image": { "type": "string" }, "animation_url": { "type": "string" }, "external_url": { "type": "string" }, "attributes": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataAttributeDto" } } }, "required": [ "name", "description" ] }, "MintTokenBodyDto": { "type": "object", "properties": { "addressId": { "type": "string" }, "clientShare": { "type": "string" }, "to": { "type": "string" }, "tokenId": { "type": "string" }, "amount": { "type": "string" }, "metadataURI": { "type": "string", "description": "Required if metadata is not provided" }, "metadata": { "description": "Required if metadataURI is not provided", "allOf": [ { "$ref": "#/components/schemas/MetadataDto" } ] } }, "required": [ "addressId", "clientShare", "to", "tokenId" ] }, "MintTokenResponseDto": { "type": "object", "properties": { "workflowResult": { "$ref": "#/components/schemas/WorkflowStartResultDto" } }, "required": [ "workflowResult" ] }, "TokenMintOrBurnItemDto": { "type": "object", "properties": { "id": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" }, "metaData": { "type": "object" }, "addressId": { "type": "string" }, "amount": { "type": "string" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "transactionHash": { "type": "string" }, "tokenId": { "type": "string" } } }, "GetCollectionTokensResponseDto": { "type": "object", "properties": { "tokens": { "type": "array", "items": { "$ref": "#/components/schemas/TokenMintOrBurnItemDto" } }, "total": { "type": "number" } } }, "BurnTokenBodyDto": { "type": "object", "properties": { "addressId": { "type": "string" }, "clientShare": { "type": "string" }, "tokenId": { "type": "string" }, "amount": { "type": "string" }, "from": { "type": "string" } }, "required": [ "addressId", "clientShare", "tokenId" ] }, "BurnTokenResponseDto": { "type": "object", "properties": { "workflowResult": { "$ref": "#/components/schemas/WorkflowStartResultDto" } }, "required": [ "workflowResult" ] }, "UnlinkTokenResultDto": { "type": "object", "properties": { "success": { "type": "boolean" } } }, "UnlinkTokenResponseDto": { "type": "object", "properties": { "result": { "$ref": "#/components/schemas/UnlinkTokenResultDto" } } }, "GetLinkedTokenResponseDto": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/TokenResponseDto" } } }, "ContractAbiResultDto": { "type": "object", "properties": { "abi": { "description": "Contract ABI (array of function/event entries)", "type": "array", "items": { "type": "string" } }, "contractAddress": { "type": "string" }, "implementationAddress": { "type": "string" }, "network": { "type": "string" }, "status": { "type": "string" }, "source": { "type": "string" } } }, "GetDeployedContractAbiResponseDto": { "type": "object", "properties": { "contractAbi": { "$ref": "#/components/schemas/ContractAbiResultDto" } } }, "ContractTemplateFunctionVisibilityType": { "type": "string", "enum": [ "pure", "view", "nonpayable", "payable" ] }, "ContractTemplateFunctionType": { "type": "string", "enum": [ "function", "constructor", "event", "error", "fallback", "receive" ] }, "ContractFunDto": { "type": "object", "properties": { "name": { "type": "string" }, "stateMutability": { "allOf": [ { "$ref": "#/components/schemas/ContractTemplateFunctionVisibilityType" } ] }, "type": { "allOf": [ { "$ref": "#/components/schemas/ContractTemplateFunctionType" } ] }, "inputs": { "type": "array", "items": { "allOf": [ { "$ref": "#/components/schemas/InputOutputDto" } ] } }, "outputs": { "type": "array", "items": { "allOf": [ { "$ref": "#/components/schemas/InputOutputDto" } ] } }, "description": { "type": "string" }, "anonymous": { "type": "boolean" } }, "required": [ "type", "inputs" ] }, "ReadCallFunctionBody": { "type": "object", "properties": { "abiFunction": { "$ref": "#/components/schemas/ContractFunDto" } }, "required": [ "abiFunction" ] }, "ReadCallDataDto": { "type": "object", "properties": { "result": { "type": "object", "description": "Decoded result of the read call" }, "functionName": { "type": "string" }, "contractAddress": { "type": "string" }, "network": { "type": "string" }, "encodedData": { "type": "string" } } }, "ReadCallResultDataDto": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ReadCallDataDto" }, "success": { "type": "boolean" }, "status": { "type": "number" } } }, "ReadCallResultResponseDto": { "type": "object", "properties": { "result": { "$ref": "#/components/schemas/ReadCallResultDataDto" } } }, "WriteCallFunctionBody": { "type": "object", "properties": { "addressId": { "type": "string" }, "clientShare": { "type": "string" }, "abiFunction": { "$ref": "#/components/schemas/ContractFunDto" }, "amount": { "type": "string" }, "feeLevel": { "type": "string", "enum": [ "LOW", "MEDIUM", "HIGH" ] } }, "required": [ "addressId", "clientShare", "abiFunction" ] }, "WriteCallResultResponseDto": { "type": "object", "properties": { "workflowResult": { "$ref": "#/components/schemas/WorkflowStartResultDto" } }, "required": [ "workflowResult" ] }, "TransactionReceiptLogDto": { "type": "object", "properties": { "address": { "type": "string" }, "topics": { "type": "array", "items": { "type": "string" } }, "data": { "type": "string" }, "blockNumber": { "type": "string" }, "transactionHash": { "type": "string" }, "transactionIndex": { "type": "number" }, "blockHash": { "type": "string" }, "logIndex": { "type": "number" }, "removed": { "type": "boolean" } } }, "TransactionReceiptDto": { "type": "object", "properties": { "blockHash": { "type": "string" }, "blockNumber": { "type": "string" }, "contractAddress": { "type": "string" }, "cumulativeGasUsed": { "type": "string" }, "effectiveGasPrice": { "type": "string" }, "from": { "type": "string" }, "gasUsed": { "type": "string" }, "logs": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionReceiptLogDto" } }, "logsBloom": { "type": "string" }, "status": { "type": "number" }, "to": { "type": "string" }, "transactionHash": { "type": "string" }, "transactionIndex": { "type": "number" }, "type": { "type": "number" } } }, "GetTransactionReceiptResponseDto": { "type": "object", "properties": { "receipt": { "$ref": "#/components/schemas/TransactionReceiptDto" } } }, "AssetItemDto": { "type": "object", "properties": { "id": { "type": "string" }, "amount": { "type": "string" }, "walletId": { "type": "string" }, "addressId": { "type": "string" }, "tokenizationId": { "type": "string" }, "tokenId": { "type": "string" }, "name": { "type": "string" }, "symbol": { "type": "string" }, "contractAddress": { "type": "string" }, "updatedAt": { "type": "string" }, "createdAt": { "type": "string" }, "tokenizationTokenId": { "type": "string" }, "type": { "type": "string" } } }, "PortfolioPaginationDto": { "type": "object", "properties": { "totalElements": { "type": "number", "example": 100, "description": "Total number of items" }, "totalPages": { "type": "number", "example": 10, "description": "Total number of pages" }, "skip": { "type": "number", "example": 0 }, "take": { "type": "number", "example": 10 } }, "required": [ "totalElements", "totalPages", "skip", "take" ] }, "GetAssetsResponseDto": { "type": "object", "properties": { "assets": { "type": "array", "items": { "$ref": "#/components/schemas/AssetItemDto" } }, "pagination": { "$ref": "#/components/schemas/PortfolioPaginationDto" } } }, "NativeBalanceItemDto": { "type": "object", "properties": { "id": { "type": "string" }, "address": { "type": "string" }, "walletId": { "type": "string" }, "network": { "type": "string" }, "balance": { "type": "string" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" } } }, "GetBalanceResponseDto": { "type": "object", "properties": { "balance": { "type": "array", "items": { "$ref": "#/components/schemas/NativeBalanceItemDto" } }, "pagination": { "$ref": "#/components/schemas/PortfolioPaginationDto" } } }, "VolumeByNetworkDto": { "type": "object", "properties": { "network": { "type": "string" }, "volume": { "type": "string" } } }, "GetVolumeResultDto": { "type": "object", "properties": { "volumeToday": { "type": "array", "items": { "$ref": "#/components/schemas/VolumeByNetworkDto" } } } }, "GetVolumeResponseDto": { "type": "object", "properties": { "result": { "$ref": "#/components/schemas/GetVolumeResultDto" } } }, "InsightsVolumeDto": { "type": "object", "properties": { "network": { "type": "string" }, "volume": { "type": "string" } } }, "VolumeByDayItemDto": { "type": "object", "properties": { "date": { "type": "string" }, "volumes": { "type": "object" } } }, "GetInsightsResultDto": { "type": "object", "properties": { "totalVolume": { "type": "array", "items": { "$ref": "#/components/schemas/InsightsVolumeDto" } }, "volumeByDay": { "type": "array", "items": { "$ref": "#/components/schemas/VolumeByDayItemDto" } } } }, "GetInsightsResponseDto": { "type": "object", "properties": { "insights": { "$ref": "#/components/schemas/GetInsightsResultDto" } } }, "GetCurrentPriceDataDto": { "type": "object", "properties": { "btcusdt": { "type": "number" }, "ethusdt": { "type": "number" } } }, "GetCurrentPriceResponseDto": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/GetCurrentPriceDataDto" } } }, "DeployedContractItemDto": { "type": "object", "properties": { "id": { "type": "string" }, "contractAddress": { "type": "string" }, "network": { "type": "string" }, "contractTemplateId": { "type": "string" } } }, "GetDeployedContractsResultDto": { "type": "object", "properties": { "contracts": { "type": "array", "items": { "$ref": "#/components/schemas/DeployedContractItemDto" } }, "total": { "type": "number" }, "skip": { "type": "number" }, "take": { "type": "number" } } }, "GetDeployedContractsResponseDto": { "type": "object", "properties": { "deployedContracts": { "$ref": "#/components/schemas/GetDeployedContractsResultDto" } } }, "DeployedContractByIdDto": { "type": "object", "properties": { "id": { "type": "string" }, "contractAddress": { "type": "string" }, "network": { "type": "string" }, "contractTemplateId": { "type": "string" }, "deployerAddressId": { "type": "string" } } }, "GetDeployedContractByIdResponseDto": { "type": "object", "properties": { "deployedContract": { "$ref": "#/components/schemas/DeployedContractByIdDto" } } }, "DeployedContractByAddressDto": { "type": "object", "properties": { "id": { "type": "string" }, "contractAddress": { "type": "string" }, "network": { "type": "string" }, "contractTemplateId": { "type": "string" }, "vauldAccountId": { "type": "string" } } }, "GetDeployedContractByAddressResponseDto": { "type": "object", "properties": { "deployedContract": { "$ref": "#/components/schemas/DeployedContractByAddressDto" } } }, "FetchContractAbiRequestBodyDTO": { "type": "object", "properties": { "contractAddress": { "type": "string" }, "networkId": { "type": "string" } }, "required": [ "contractAddress", "networkId" ] }, "FetchContractAbiResultDto": { "type": "object", "properties": { "abi": { "type": "object", "description": "Contract ABI array" }, "contractAddress": { "type": "string" }, "network": { "type": "string" }, "status": { "type": "string" }, "source": { "type": "string" }, "tenantId": { "type": "string" }, "userId": { "type": "string" } } }, "FetchContractAbiResponseDto": { "type": "object", "properties": { "contractAbi": { "$ref": "#/components/schemas/FetchContractAbiResultDto" } } }, "AddContractAbiRequestBodyDTO": { "type": "object", "properties": { "contractAddress": { "type": "string" }, "networkId": { "type": "string" }, "name": { "type": "string" }, "abi": { "type": "array", "items": { "type": "array" } } }, "required": [ "contractAddress", "networkId", "name", "abi" ] }, "AddContractAbiResultDto": { "type": "object", "properties": { "contractAddress": { "type": "string" }, "network": { "type": "string" }, "name": { "type": "string" }, "abi": { "type": "object" }, "status": { "type": "string" }, "source": { "type": "string" }, "message": { "type": "string" }, "tenantId": { "type": "string" }, "userId": { "type": "string" } } }, "AddContractAbiResponseDto": { "type": "object", "properties": { "result": { "$ref": "#/components/schemas/AddContractAbiResultDto" } } }, "ContractTemplateItemDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "longDescription": { "type": "string" }, "bytecode": { "type": "string" }, "sourceCode": { "type": "string" }, "type": { "type": "string" }, "docs": { "type": "object" } } }, "GetContractsResultDto": { "type": "object", "properties": { "data": { "description": "Contract templates", "type": "array", "items": { "$ref": "#/components/schemas/ContractTemplateItemDto" } }, "next": { "type": "object" }, "count": { "type": "number" } } }, "GetContractsResponseDto": { "type": "object", "properties": { "result": { "$ref": "#/components/schemas/GetContractsResultDto" } } }, "MethodDto": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "params": { "type": "object", "additionalProperties": true }, "returns": { "type": "object", "additionalProperties": true } }, "required": [ "name" ] }, "DocsDto": { "type": "object", "properties": { "details": { "type": "string" }, "events": { "type": "string" }, "kind": { "type": "string", "enum": [ "dev", "user" ] }, "methods": { "type": "array", "items": { "$ref": "#/components/schemas/MethodDto" } }, "version": { "type": "string" } }, "required": [ "kind", "methods", "version" ] }, "ComponentDto": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "internalType": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "InputOutputDto": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "internalType": { "type": "string" }, "type": { "type": "string" }, "value": { "type": "object" }, "components": { "type": "array", "items": { "allOf": [ { "$ref": "#/components/schemas/ComponentDto" } ] } }, "indexed": { "type": "boolean" } }, "required": [ "name", "type", "value" ] }, "AuditorDto": { "type": "object", "properties": { "name": { "type": "string" }, "imageURL": { "type": "string" }, "link": { "type": "string" } }, "required": [ "name", "imageURL", "link" ] }, "AttributeDtoContract": { "type": "object", "properties": { "useCases": { "type": "array", "items": { "type": "string" } }, "standards": { "type": "array", "items": { "type": "string" } }, "auditor": { "allOf": [ { "$ref": "#/components/schemas/AuditorDto" } ] } } }, "ConstructorParameterDto": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "internalType": { "type": "string" }, "type": { "type": "string" }, "components": { "type": "array", "items": { "allOf": [ { "$ref": "#/components/schemas/ComponentDto" } ] } }, "value": { "type": "object" } }, "required": [ "name", "type" ] }, "CreateContractRequestBodyDTO": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "bytecode": { "type": "string" }, "abi": { "type": "array", "items": { "allOf": [ { "$ref": "#/components/schemas/ContractFunDto" } ] } }, "longDescription": { "type": "string" }, "sourceCode": { "type": "string" }, "type": { "type": "string" }, "docs": { "allOf": [ { "$ref": "#/components/schemas/DocsDto" } ] }, "attributes": { "allOf": [ { "$ref": "#/components/schemas/AttributeDtoContract" } ] } }, "required": [ "name", "description", "bytecode", "abi" ] }, "CreateContractResultDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "longDescription": { "type": "string" }, "bytecode": { "type": "string" }, "sourceCode": { "type": "string" }, "type": { "type": "string" }, "docs": { "type": "object" } } }, "CreateContractResponseDto": { "type": "object", "properties": { "contract": { "$ref": "#/components/schemas/CreateContractResultDto" } } }, "GetContractByIdResponseDto": { "type": "object", "properties": { "result": { "$ref": "#/components/schemas/ContractTemplateItemDto" } } }, "DeleteContractResponseDto": { "type": "object", "properties": { "success": { "type": "boolean" } } }, "ContractConstructorAbiDto": { "type": "object", "properties": { "id": { "type": "string" }, "stateMutability": { "type": "string" }, "type": { "type": "string" }, "inputs": { "type": "object" }, "outputs": { "type": "object" } } }, "GetContractConstructorResponseDto": { "type": "object", "properties": { "contractConstructor": { "$ref": "#/components/schemas/ContractConstructorAbiDto" } } }, "ContractFunctionAbiDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "stateMutability": { "type": "string" }, "type": { "type": "string" }, "inputs": { "type": "object" }, "outputs": { "type": "object" } } }, "GetContractFunctionResponseDto": { "type": "object", "properties": { "contractFunction": { "type": "array", "items": { "$ref": "#/components/schemas/ContractFunctionAbiDto" } } } }, "DeployContractRequestBodyDTO": { "type": "object", "properties": { "networkId": { "type": "string" }, "addressId": { "type": "string" }, "clientShare": { "type": "string" }, "constructorParameters": { "type": "array", "items": { "allOf": [ { "$ref": "#/components/schemas/ConstructorParameterDto" } ] } } }, "required": [ "networkId", "addressId", "clientShare" ] }, "DeployContractResponseDto": { "type": "object", "properties": { "workflowResult": { "$ref": "#/components/schemas/WorkflowStartResultDto" } }, "required": [ "workflowResult" ] }, "GetWorkflowStatusResponseDto": { "type": "object", "properties": { "workflowId": { "type": "string" }, "runId": { "type": "string" }, "status": { "type": "string" }, "startTime": { "type": "string" }, "closeTime": { "type": "string" }, "executionTime": { "type": "string" }, "historyLength": { "type": "number" }, "result": { "type": "object", "description": "Workflow result payload" }, "error": { "type": "string" } } }, "ApiErrorResponseDto": { "type": "object", "properties": { "message": { "type": "string", "description": "Human-readable error message for the client (see ErrorClientMessage per code)", "example": "Organization not found." }, "code": { "type": "string", "enum": [ "ERR_000", "ERR_001", "ERR_002", "ERR_003", "ERR_006", "ERR_008", "ERR_009", "ERR_010", "ERR_011", "ERR_012", "ERR_013", "ERR_014", "ERR_015", "ERR_016", "ERR_017", "ERR_018", "ERR_019", "ERR_020", "ERR_021", "ERR_022", "ERR_888", "ERR_999", "ERR_023", "ERR_026", "ERR_036", "ERR_046", "ERR_056", "ERR_066", "ERR_068", "ERR_067", "ERR_076", "ERR_086", "ERR_096", "ERR_106", "ERR_116", "ERR_126", "ERR_136", "ERR_146", "ERR_147", "ERR_156", "ERR_166", "ERR_176", "ERR_186", "ERR_196", "ERR_200", "ERR_201", "ERR_202", "ERR_203", "ERR_204", "ERR_205", "ERR_206", "ERR_207", "ERR_208", "ERR_209", "ERR_210", "ERR_211", "ERR_212", "ERR_213", "ERR_214", "ERR_215", "ERR_216", "ERR_217", "ERR_226", "ERR_236", "ERR_237", "ERR_238", "ERR_239", "ERR_240", "ERR_241", "ERR_242", "ERR_246", "ERR_256", "ERR_266", "ERR_276", "ERR_286", "ERR_296", "ERR_300", "ERR_301", "ERR_302", "ERR_303", "ERR_304", "ERR_305", "ERR_310", "ERR_311", "ERR_312", "ERR_313", "ERR_320", "ERR_321", "ERR_322", "ERR_323", "ERR_324", "ERR_325", "ERR_326", "ERR_327", "ERR_328", "ERR_400", "ERR_401", "ERR_402", "ERR_403", "ERR_404", "ERR_405", "ERR_410", "ERR_411", "ERR_412", "ERR_500", "ERR_501", "ERR_502", "ERR_503", "ERR_600", "ERR_601", "ERR_602", "ERR_603", "ERR_604", "ERR_701", "ERR_702", "ERR_703", "ERR_704", "ERR_705", "ERR_706", "ERR_707", "ERR_708", "ERR_709", "ERR_710", "ERR_711" ], "description": "Application error code. Possible values are listed per endpoint in the response schema (e.g. ERR_013, ERR_008)." }, "category": { "type": "string", "enum": [ "CONFLICT", "VALIDATION", "CRYPTOGRAPHIC", "NETWORK", "DATABASE", "EXTERNAL_SERVICE", "UNKNOWN_ERROR", "RESOURCE", "AUTHORIZATION", "SYSTEM" ], "description": "Error category for grouping and handling." }, "statusCode": { "type": "number", "description": "HTTP status code", "example": 404, "minimum": 400 }, "path": { "type": "string", "description": "Request path that produced the error", "example": "/api/v1/wallets" }, "timestamp": { "type": "string", "description": "ISO 8601 timestamp", "example": "2025-02-20T12:00:00.000Z" }, "requestId": { "type": "string", "description": "Request ID for tracing" } }, "required": [ "code", "category", "statusCode", "path", "timestamp" ] } }, "parameters": { "SdkVersionHeader": { "name": "x-sdk-version", "in": "header", "description": "SDK version header", "required": true, "schema": { "type": "string", "default": "1.0.0" } } } } }