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

# Prepare a builder registry wallet transaction

> Requires swap scope and shares its quota. Simulates registration, payout/default-fee changes, ownership transfers or Route-admin policy changes as the supplied wallet. Returns unsigned transaction data. An API key grants no on-chain ownership or admin rights; the correct wallet must review and sign. No server submission or automatic retry.

Prepare an unsigned update, then ask the authorized wallet to sign the returned transaction. Your API key cannot change registry settings by itself.

| Operation         | Use                                                    | Signing wallet      |
| ----------------- | ------------------------------------------------------ | ------------------- |
| `register`        | Register your generated builder ID and payout settings | Initial owner       |
| `configure`       | Change payout wallet or default builder fee            | Current owner       |
| `proposeOwner`    | Start an ownership transfer                            | Current owner       |
| `acceptOwnership` | Complete an ownership transfer                         | Proposed owner      |
| `policy`          | Set fee caps, Route fee overrides or enabled status    | Route administrator |

For `configure`, send:

```json theme={null}
{
  "code": "YOUR_BUILDER_ID",
  "operation": "configure",
  "wallet": "0xYOUR_OWNER_ADDRESS",
  "args": {
    "recipient": "0xYOUR_PAYOUT_ADDRESS",
    "defaultFeeBps": 25
  }
}
```

Replace the address placeholders with valid EVM addresses. `25` bps is 0.25%; the maximum builder fee is 50 bps, subject to the registered cap. Wait for confirmation before relying on updated settings.

[Authentication](/api-reference/authentication) · [Builder integration](/builders)


## OpenAPI

````yaml openapi.json POST /api/v2/builders/transaction
openapi: 3.1.0
info:
  title: route
  version: 2.15.0
  description: >-
    Route compares swap paths offchain and executes swaps on Robinhood Chain.
    The API returns quotes and unsigned transactions. It does not sign or submit
    for you. V2 deducts a disclosed pair-dependent output fee up to 0.50%; pool
    fees, provider charges and gas may still apply. Contracts are experimental
    and unaudited. Public routing and data endpoints require no API key. Use the
    documented /api/v2 endpoints for integrations. Builder endpoints require a
    scoped x-api-key from build.route.fun. Public quote, swap and data endpoints
    remain keyless.
servers:
  - url: https://api.route.fun
security: []
paths:
  /api/v2/builders/transaction:
    post:
      tags:
        - Builder API
      summary: Prepare a builder registry wallet transaction
      description: >-
        Requires swap scope and shares its quota. Simulates registration,
        payout/default-fee changes, ownership transfers or Route-admin policy
        changes as the supplied wallet. Returns unsigned transaction data. An
        API key grants no on-chain ownership or admin rights; the correct wallet
        must review and sign. No server submission or automatic retry.
      operationId: prepareBuilderTransaction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    code:
                      type: string
                      pattern: ^[A-Za-z0-9_-]{3,32}$
                    operation:
                      type: string
                      const: register
                    wallet:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    args:
                      type: object
                      properties:
                        recipient:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{40}$
                        defaultFeeBps:
                          type: integer
                          minimum: 0
                          maximum: 50
                      required:
                        - recipient
                        - defaultFeeBps
                      additionalProperties: false
                  required:
                    - code
                    - operation
                    - wallet
                    - args
                  additionalProperties: false
                - type: object
                  properties:
                    code:
                      type: string
                      pattern: ^[A-Za-z0-9_-]{3,32}$
                    operation:
                      type: string
                      const: configure
                    wallet:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    args:
                      type: object
                      properties:
                        recipient:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{40}$
                        defaultFeeBps:
                          type: integer
                          minimum: 0
                          maximum: 50
                      required:
                        - recipient
                        - defaultFeeBps
                      additionalProperties: false
                  required:
                    - code
                    - operation
                    - wallet
                    - args
                  additionalProperties: false
                - type: object
                  properties:
                    code:
                      type: string
                      pattern: ^[A-Za-z0-9_-]{3,32}$
                    operation:
                      type: string
                      const: policy
                    wallet:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    args:
                      type: object
                      properties:
                        maxFeeBps:
                          type: integer
                          minimum: 0
                          maximum: 50
                        routeFeeBps:
                          anyOf:
                            - type: integer
                              minimum: 0
                              maximum: 50
                            - type: 'null'
                          default: null
                        enabled:
                          type: boolean
                      required:
                        - maxFeeBps
                        - enabled
                      additionalProperties: false
                  required:
                    - code
                    - operation
                    - wallet
                    - args
                  additionalProperties: false
                - type: object
                  properties:
                    code:
                      type: string
                      pattern: ^[A-Za-z0-9_-]{3,32}$
                    operation:
                      type: string
                      const: proposeOwner
                    wallet:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    args:
                      type: object
                      properties:
                        owner:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{40}$
                      required:
                        - owner
                      additionalProperties: false
                  required:
                    - code
                    - operation
                    - wallet
                    - args
                  additionalProperties: false
                - type: object
                  properties:
                    code:
                      type: string
                      pattern: ^[A-Za-z0-9_-]{3,32}$
                    operation:
                      type: string
                      const: acceptOwnership
                    wallet:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    args:
                      type: object
                      properties: {}
                      required: []
                      additionalProperties: false
                  required:
                    - code
                    - operation
                    - wallet
                  additionalProperties: false
      responses:
        '200':
          description: Verified registry or finalized history result
          content:
            application/json:
              schema:
                type: object
                properties:
                  transaction:
                    type: object
                    properties:
                      to:
                        type: string
                        pattern: ^0x[0-9a-fA-F]{40}$
                      from:
                        type: string
                        pattern: ^0x[0-9a-fA-F]{40}$
                      data:
                        type: string
                      value:
                        const: '0'
                        type: string
                      chainId:
                        type: integer
                        const: 4663
                    required:
                      - to
                      - from
                      - data
                      - value
                      - chainId
                    additionalProperties: false
                  code:
                    type: string
                    pattern: ^[A-Za-z0-9_-]{3,32}$
                  action:
                    type: string
                    enum:
                      - register
                      - configure
                      - policy
                      - proposeOwner
                      - acceptOwnership
                  simulation:
                    type: object
                    properties:
                      blockNumber:
                        type: string
                        pattern: ^[0-9]+$
                      blockHash:
                        type: string
                        pattern: ^0x[0-9a-fA-F]{64}$
                    required:
                      - blockNumber
                      - blockHash
                    additionalProperties: false
                  review:
                    type: string
                required:
                  - transaction
                  - code
                  - action
                  - simulation
                  - review
                additionalProperties: false
        '400':
          description: Malformed input, invalid code/cursor or fee above cap
        '401':
          description: Missing or invalid API key
        '403':
          description: Missing required API key scope
        '404':
          description: Builder not registered (lookup)
        '409':
          description: Registry operation rejected or history snapshot changed
        '429':
          description: Caller workspace or global rate limit
        '503':
          description: >-
            Registry/collector not commissioned, RPC unavailable, or
            verification/capacity failure
      security:
        - BuilderKey: []
components:
  securitySchemes:
    BuilderKey:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Server-side key created in an authenticated developer workspace. Builder
        codes are public attribution, not credentials.

````