B3

B3 Contract API

The Contract API from B3 — 11 operation(s) for contract.

OpenAPI Specification

b3-contract-api-openapi.yml Raw ↑
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

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/b3/refs/heads/main/openapi/b3-contract-api-openapi.yml