> ## Documentation Index
> Fetch the complete documentation index at: https://docs.redfancy.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Create transaction without signature

> Creates a transaction after proving wallet ownership via `wallet_id` and validating the target wallet address against the project's network.




## OpenAPI

````yaml /OPENAPI.yaml post /api/transaction/no_signature
openapi: 3.0.3
info:
  title: Redf Backend API
  version: 1.0.0
  description: >
    OpenAPI specification for the current HTTP backend exposed by the Phoenix
    router. The spec reflects the routes and controller behaviour currently
    implemented in `blockchain_app/lib/blockchain_app_web/router.ex`.
servers:
  - url: http://localhost:4000
    description: Local development
security: []
tags:
  - name: Health
  - name: Networks
  - name: Projects
  - name: Transactions
  - name: Widgets
paths:
  /api/transaction/no_signature:
    post:
      tags:
        - Transactions
      summary: Create transaction without signature
      description: >
        Creates a transaction after proving wallet ownership via `wallet_id` and
        validating the target wallet address against the project's network.
      operationId: createTransactionNoSignature
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionCreateNoSignatureRequest'
      responses:
        '200':
          description: Transaction created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionCreateResponse'
        '400':
          description: Invalid transaction request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Wallet does not own project or project is inactive
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Project not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    TransactionCreateNoSignatureRequest:
      type: object
      required:
        - project_uid
        - amount
        - currency
        - wallet_id
        - wallet_address
      properties:
        project_uid:
          type: string
        amount:
          $ref: '#/components/schemas/DecimalInput'
        currency:
          type: string
        wallet_id:
          oneOf:
            - type: integer
            - type: string
          description: Wallet row id or owner wallet address
        wallet_address:
          type: string
          description: Destination wallet address for the new transaction
        success_url:
          type: string
          format: uri
          nullable: true
        failed_url:
          type: string
          format: uri
          nullable: true
        callback_url:
          type: string
          format: uri
          nullable: true
        tx_hash:
          type: string
          nullable: true
    TransactionCreateResponse:
      type: object
      required:
        - status
        - tx
        - frontend_link
      properties:
        status:
          type: string
          enum:
            - ok
        tx:
          $ref: '#/components/schemas/Transaction'
        frontend_link:
          type: string
          format: uri
    ErrorResponse:
      type: object
      description: >
        Generic error payload used by the API. Some handlers return `error`,
        while validation and internal checker failures may return only `errors`
        or `reason`.
      required:
        - status
      properties:
        status:
          type: string
          enum:
            - error
        error:
          type: string
          example: invalid_request
        reason:
          type: string
          nullable: true
        detail:
          type: string
          nullable: true
        field:
          oneOf:
            - type: string
            - type: integer
          nullable: true
        currency:
          type: string
          nullable: true
        missing:
          type: array
          items:
            type: string
        errors:
          $ref: '#/components/schemas/ValidationErrors'
        message:
          type: string
          nullable: true
        constraint:
          type: string
          nullable: true
        tx_status:
          type: string
          nullable: true
        project_uid:
          type: string
          nullable: true
        widget_id:
          oneOf:
            - type: string
            - type: integer
          nullable: true
        expected:
          type: object
          additionalProperties: true
      additionalProperties: true
    DecimalInput:
      description: Decimal amount accepted by the backend
      oneOf:
        - type: string
          example: '10.50'
        - type: integer
          example: 10
        - type: number
          example: 10.5
    Transaction:
      type: object
      required:
        - id
        - status
        - amount
        - currency_symbol
        - event_timestamp
        - expiration_time
        - tx_hash
        - wallet_address
      properties:
        id:
          type: string
          example: 1712580000_3cc034f2d8fe41f48c9f9da0d6f6f2a1
        status:
          type: string
          enum:
            - pending
            - confirmed
            - failed
            - reverted
        amount:
          $ref: '#/components/schemas/DecimalString'
        currency_symbol:
          type: string
        network_id:
          type: integer
          nullable: true
        event_timestamp:
          type: integer
          example: 1712580000
        expiration_time:
          type: string
          format: date-time
        tx_hash:
          type: string
        wallet_address:
          type: string
        from_address:
          type: string
          nullable: true
    ValidationErrors:
      type: object
      description: Map of field names to validation error messages
      additionalProperties:
        type: array
        items:
          type: string
    DecimalString:
      type: string
      example: '10.50'
      description: Decimal amount as returned by JSON encoding

````