openapi: 3.1.0 info: description: Workflow management API for B3OS title: B3OS Workflow Action Contract API version: '1.0' tags: - name: Contract paths: /v1/contract: post: description: Create a new contract project requestBody: content: application/json: schema: oneOf: - type: object - $ref: '#/components/schemas/internal_app_api_http_v1_contract.SaveProjectRequest' summary: body description: Project data description: Project data required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/GetContractProjectSuccessResponse' description: Created '400': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Bad Request '500': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Internal Server Error tags: - Contract /v1/contract/chat/stream: post: description: Stream AI chat for smart contract development via SSE requestBody: content: application/json: schema: oneOf: - type: object - $ref: '#/components/schemas/ContractChatParams' summary: request description: Contract chat request parameters description: Contract chat request parameters required: true responses: '200': content: text/event-stream: schema: type: string description: SSE stream with contract events '400': content: text/event-stream: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Bad Request tags: - Contract /v1/contract/session/{sessionId}: get: description: Get a contract project by session ID parameters: - description: Session ID in: path name: sessionId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetContractProjectSuccessResponse' description: OK '404': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Not Found tags: - Contract /v1/contract/{id}: delete: description: Delete a contract project by ID parameters: - description: Contract project ID in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.SuccessResponse' description: OK '404': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Not Found tags: - Contract get: description: Get a contract project by ID parameters: - description: Contract project ID in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetContractProjectSuccessResponse' description: OK '404': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Not Found tags: - Contract put: description: Update a contract project parameters: - description: Contract project ID in: path name: id required: true schema: type: string requestBody: content: application/json: schema: oneOf: - type: object - $ref: '#/components/schemas/internal_app_api_http_v1_contract.SaveProjectRequest' summary: body description: Project data description: Project data required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetContractProjectSuccessResponse' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Internal Server Error tags: - Contract /v1/contract/{id}/audit: post: description: Run audit for a contract project parameters: - description: Contract project ID in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetContractProjectSuccessResponse' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Internal Server Error tags: - Contract /v1/contract/{id}/deploy/approve: post: description: Approve and initiate contract deployment to testnet or mainnet parameters: - description: Contract project ID in: path name: id required: true schema: type: string requestBody: content: application/json: schema: oneOf: - type: object - $ref: '#/components/schemas/ApproveContractDeployParams' summary: request description: Deployment parameters description: Deployment parameters required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApproveContractDeploySuccessResponse' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Not Found tags: - Contract /v1/contract/{id}/download: get: description: Download contract project as Foundry ZIP parameters: - description: Contract project ID in: path name: id required: true schema: type: string responses: '200': content: application/zip: schema: type: file description: OK '404': content: application/zip: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Not Found '500': content: application/zip: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Internal Server Error tags: - Contract /v1/contract/{id}/fix: post: description: Trigger AI auto-fix for a contract with failed tests parameters: - description: Contract project ID in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetContractProjectSuccessResponse' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Internal Server Error tags: - Contract /v1/contract/{id}/plan/approve: post: description: Approve a contract plan to proceed with code generation parameters: - description: Contract project ID in: path name: id required: true schema: type: string requestBody: content: application/json: schema: oneOf: - type: object - $ref: '#/components/schemas/ApproveContractPlanParams' summary: request description: Plan approval description: Plan approval required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApproveContractPlanSuccessResponse' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Not Found tags: - Contract /v1/contract/{id}/test: post: description: Run tests for a contract project parameters: - description: Contract project ID in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetContractProjectSuccessResponse' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Internal Server Error tags: - Contract /v1/contract/{id}/verification-status: get: description: Check verification status for all deployments of a contract project parameters: - description: Contract project ID in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/CheckVerificationStatusResponse' description: OK '404': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Not Found tags: - Contract components: schemas: github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ConnectorReference: description: nil if action doesn't need connector properties: id: description: Connector ID (or subOrgId for turnkey) type: string type: description: Connector type (e.g., "slack", "turnkey") type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.NodePosition: properties: x: type: number y: type: number type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowInput: properties: description: type: string key: type: string required: type: boolean type: description: '"string", "number", "boolean", "object", "array"' type: string type: object ApproveContractDeploySuccessResponse: properties: code: example: 200 type: integer data: $ref: '#/components/schemas/ContractDeployApproval' message: example: success type: string requestId: example: abc-123 type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ContractProject: properties: allDeployments: items: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.DeployResult' type: array uniqueItems: false auditReport: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.AuditReport' autoFixAttempts: type: integer compilationFixAttempts: type: integer createdAt: type: string currentStep: type: integer deployments: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.Deployments' externalContractId: type: string id: type: string name: type: string organizationId: type: string planSummary: type: string sessionId: type: string source: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ContractSource' status: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ContractProjectStatus' testResults: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TestResults' updatedAt: type: string walletId: type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CommentReply: properties: createdAt: type: string createdBy: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteUser' id: type: string text: type: string updatedAt: type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.SuccessResponse: allOf: - $ref: '#/components/schemas/data' properties: code: type: integer data: {} message: type: string requestId: type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowNode: properties: branch: description: '"then" or "else", only when parent is "if" node' type: string children: items: type: string type: array uniqueItems: false connector: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ConnectorReference' description: description: AI-generated 1-sentence description type: string loopBody: description: Loop body nodes (only for for-each nodes) items: type: string type: array uniqueItems: false payload: additionalProperties: {} type: object resultSchema: additionalProperties: {} description: 'ResultSchema describes the output structure of this node (populated dynamically for x402 endpoints). This is used by the frontend to show available output variables in the variable picker.' type: object titleOverride: description: AI-generated short title (2-6 words), only when more descriptive than default type: string type: type: string required: - payload - type type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.Comment: properties: createdAt: type: string createdBy: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteUser' id: type: string nodeId: type: string position: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.NodePosition' replies: items: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CommentReply' type: array uniqueItems: false resolved: type: boolean text: type: string updatedAt: type: string type: object internal_app_api_http_v1_contract.SaveProjectRequest: properties: name: maxLength: 100 type: string planSummary: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ContractPlanSummary' sessionId: description: For new projects type: string source: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ContractSource' testResults: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TestResults' required: - name type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ContractProjectStatus: enum: - planned - generating - code_generated - testing - tested - auditing - audited - deploying - testnet_deployed - mainnet_deployed - failed type: string x-enum-comments: ContractStatusAuditing: Intermediate status during security audit ContractStatusDeploying: Intermediate status during deployment ContractStatusGenerating: Intermediate status during code generation ContractStatusTesting: Intermediate status during test execution x-enum-varnames: - ContractStatusPlanned - ContractStatusGenerating - ContractStatusCodeGenerated - ContractStatusTesting - ContractStatusTested - ContractStatusAuditing - ContractStatusAudited - ContractStatusDeploying - ContractStatusTestnetDeployed - ContractStatusMainnetDeployed - ContractStatusFailed github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse: properties: code: type: integer details: items: {} type: array uniqueItems: false message: type: string requestId: type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropSchema: properties: chainPropKey: description: 'For tokenSelector: prop key providing chainId' type: string enum: items: {} type: array uniqueItems: false enumLabels: items: type: string type: array uniqueItems: false inputType: description: 'InputType is a UI rendering hint. The frontend uses it to pick a rich selector component instead of a plain text input. Unknown values are silently ignored (falls back to default input). Valid values: chainSelector, tokenSelector, address, recipientAddress, email' type: string maximum: type: number minimum: type: number pattern: type: string placeholder: type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNote: properties: color: type: string createdAt: type: string createdBy: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteUser' id: type: string position: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.NodePosition' size: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteSize' text: type: string updatedAt: type: string zIndex: type: integer type: object ContractChatParams: properties: action: $ref: '#/components/schemas/ContractChatAction' contractId: description: ContractID is the primary identifier (optional for first message - backend creates project) type: string message: maxLength: 51200 type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.AuditSummary: properties: critical: type: integer high: type: integer info: type: integer low: type: integer medium: type: integer overallRisk: description: low, medium, high, critical type: string recommendation: description: deployment recommendation type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TemplateVisibility: enum: - org - public - org - public type: string x-enum-comments: TemplateVisibilityOrg: Only visible to organization members TemplateVisibilityPublic: Visible to everyone x-enum-varnames: - TemplateVisibilityOrg - TemplateVisibilityPublic github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteUser: properties: clientId: type: string name: type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.DeployResult: properties: address: type: string blockNumber: type: integer chainId: type: integer deployedAt: type: string deploymentMode: description: standard, create2, or create3 type: string gasUsed: type: integer isDeterministic: description: Whether CREATE2/CREATE3 was used type: boolean networkType: description: mainnet or testnet type: string predictedAddress: description: Pre-computed address for deterministic deployments type: string salt: description: CREATE2/CREATE3 salt for deterministic address type: string txHash: type: string verificationStatus: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VerificationStatus' verificationUrl: description: URL to view verified contract on block explorer type: string verified: description: Whether contract source is verified on block explorer type: boolean type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.AuditReport: properties: findings: items: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.AuditFinding' type: array uniqueItems: false passes: items: type: string type: array uniqueItems: false summary: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.AuditSummary' timestamp: type: string type: object CheckVerificationStatusResponse: properties: deployments: items: $ref: '#/components/schemas/DeploymentVerificationStatus' type: array uniqueItems: false type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.AuditFinding: properties: acknowledged: type: boolean category: description: reentrancy, access-control, etc. type: string codeSnippet: type: string description: type: string location: type: string recommendation: type: string severity: description: critical, high, medium, low, info type: string title: type: string type: object ContractPlanApproval: properties: project: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ContractProject' type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.Template: properties: archived: type: boolean category: description: 'Deprecated: Use Tags instead' type: string cooldownMs: type: integer createdAt: type: string createdBy: type: string definition: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowDefinition' description: type: string forkCount: type: integer id: type: string isPromoted: type: boolean maxRuns: type: integer name: type: string organizationDescription: type: string organizationId: description: Fields for user-generated templates (nil for built-in templates) type: string organizationName: type: string organizationPhoto: type: string promotedAt: type: string promotedBy: type: string sourceWorkflowId: description: Source workflow link (nil for built-in or legacy templates) type: string tags: items: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.Tag' type: array uniqueItems: false templateProps: items: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TemplateProp' type: array uniqueItems: false uiMetadata: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowUIMetadata' updatedAt: type: string updatedBy: type: string version: type: integer visibility: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TemplateVisibility' type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowUIMetadata: properties: comments: items: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.Comment' type: array uniqueItems: false nodePositions: additionalProperties: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.NodePosition' type: object stickyNotes: items: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNote' type: array uniqueItems: false type: object GetContractProjectSuccessResponse: properties: code: example: 200 type: integer data: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ContractProject' message: example: success type: string requestId: example: abc-123 type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowDefinition: description: 'Definition is the full workflow graph to execute. Must contain a "root" node with type "manual". All action nodes referenced in children arrays must be present.' properties: inputSchema: items: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowInput' type: array uniqueItems: false nodes: additionalProperties: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowNode' type: object sensitivePropKeys: items: type: string type: array uniqueItems: false required: - nodes type: object DeploymentVerificationStatus: properties: chainId: type: integer contractAddress: type: string explorerUrl: type: string verified: type: boolean type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TemplateProp: properties: default: {} description: type: string key: type: string name: type: string properties: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropSchema' required: type: boolean sensitive: type: boolean type: description: '"string", "number", "integer", "boolean"' type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ContractSource: properties: abi: description: Compiled artifacts (populated after compilation) type: string bytecode: description: Deployment bytecode type: string compilerOutput: description: Metadata type: string constructorAbi: description: Constructor info type: string contractCode: description: Main contract Solidity source (flattened or with imports) type: string contractName: description: Main contract (required) type: string dependencies: additionalProperties: type: string description: package → version (e.g., "@openzeppelin/contracts" → "v5.0.0") type: object deployedCode: description: Runtime bytecode type: string files: additionalProperties: type: string description: 'Multi-file project support Key: relative path (e.g., "src/interfaces/IERC20.sol") Value: file content' type: object mainContract: description: Path to main contract file (e.g., "src/MyToken.sol") type: string solVersion: description: Solidity version (e.g., "0.8.20") type: string summary: description: Non-technical summary generated by AI type: string testCode: description: Foundry test file source type: string version: description: Source version (increments on each edit) type: integer type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ContractPlanSummary: properties: description: type: string features: items: type: string type: array uniqueItems: false gasOptimizations: items: type: string type: array uniqueItems: false name: type: string securityConsiderations: items: type: string type: array uniqueItems: false type: object ApproveContractPlanParams: properties: approved: type: boolean required: - approved type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TestResults: properties: autoFixed: type: boolean failed: type: integer failures: items: type: string type: array uniqueItems: false fixAttempts: type: integer log: type: string passed: type: integer runAt: type: string total: type: integer type: object ContractChatAction: description: Optional explicit action enum: - approve_plan - reject_plan type: string x-enum-varnames: - ContractChatActionApprovePlan - ContractChatActionRejectPlan github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteSize: properties: height: type: number width: type: number type: object ApproveContractDeployParams: properties: chainId: type: integer constructorArgs: items: {} type: array uniqueItems: false deploymentMode: enum: - standard - create2 - create3 type: string salt: description: Custom salt for deterministic deployment type: string target: enum: - testnet - mainnet type: string walletId: type: string required: - chainId - target - walletId type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.Tag: properties: categories: description: e.g., ["blockchain", "finance"] items: type: string type: array uniqueItems: false count: description: 'Scope-dependent: template, action, trigger, or connector count' type: integer createdAt: type: string description: type: string id: type: string imageUrl: type: string name: type: string promotedTemplateCount: type: integer publicTemplateCount: type: integer slug: type: string updatedAt: type: string weight: description: Higher weight = more prominent type: integer type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.Deployments: additionalProperties: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.DeployResult' description: 'Deployments is populated from the contract_deployments table, NOT from a DB column. Kept for backward-compatible JSON serialization in API responses.' type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.DeploymentEstimate: properties: costUsd: type: string estimatedCost: type: string gasLimit: type: integer gasPrice: type: string maxFeePerGas: type: string warning: type: string type: object ContractDeployApproval: properties: estimate: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.DeploymentEstimate' project: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ContractProject' taskId: type: string type: object ApproveContractPlanSuccessResponse: properties: code: example: 200 type: integer data: $ref: '#/components/schemas/ContractPlanApproval' message: example: success type: string requestId: example: abc-123 type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VerificationStatus: description: Verification status enum: - pending - verified - failed type: string x-enum-varnames: - VerificationStatusPending - VerificationStatusVerified - VerificationStatusFailed ? github_com_b3-fun_b3-mono_services_b3os-workflow_PaginatedData-github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity_Template : properties: hasMore: type: boolean items: items: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.Template' type: array uniqueItems: false limit: type: integer offset: type: integer type: object data: properties: data: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_PaginatedData-github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity_Template' type: object