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

# Prepare Transactions

> **Description:** This endpoint prepares unsigned transactions for the method selected in the `method` field. For exact required and optional body fields, use the method-specific endpoints under Create Transaction.

**Headers:**
- `x-api-key`: `YOUR_API_KEY` for API-key auth, or `X-Payment` for x402 retries on eligible agentic methods
- `Content-Type`: `application/json`

**Common Request Body Parameters:**
- `method` (string, required): Operation to prepare.
- `chainId` (string, required): Blockchain network identifier. Hex format is recommended, for example `aa36a7` for Sepolia.
- `signerAddress` (string, conditionally required): Wallet address that signs the prepared transaction. Most methods require it; `newInvest` and `claimTokens` can use `investorAddress` as the signer.
- `gasLimit` (string, optional): Gas limit override. If omitted, the API estimates gas automatically.
- `privateRpcUrl` (string, optional): Private RPC URL override.
- `nonce` (integer, optional): Nonce override. If omitted, the API reads the pending nonce from the RPC.

Prepares unsigned transactions for various blockchain operations. This endpoint supports multiple transaction methods for tokenization, STO management, token operations, and more.

## Common Parameters

| Parameter       | Type   | Required    | Description                                                                                                                             |
| --------------- | ------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `chainId`       | string | Yes         | Blockchain network identifier (hex format)                                                                                              |
| `method`        | string | Yes         | Transaction method type                                                                                                                 |
| `signerAddress` | string | Conditional | Address that will sign the transaction. Most methods require it; `newInvest` and `claimTokens` can use `investorAddress` as the signer. |

## Supported Methods

| Method                 | Description                                     |
| ---------------------- | ----------------------------------------------- |
| `newTokenization`      | Create a new tokenized asset.                   |
| `mintToken`            | Mint tokens to one or more investors.           |
| `whitelist`            | Whitelist or blacklist investor wallets.        |
| `burnToken`            | Burn tokens from the signer balance.            |
| `transferFrom`         | Transfer tokens from an approved owner address. |
| `transferTo`           | Transfer tokens from the signer address.        |
| `approve`              | Approve token spending.                         |
| `dividendDistribution` | Distribute payment-token dividends.             |
| `newSto`               | Create a Security Token Offering.               |
| `newInvest`            | Prepare an STO investment.                      |
| `claimTokens`          | Claim tokens from a successful STO.             |
| `closeOffer`           | Close an active STO.                            |

## Response Format

The response includes the transaction details, metadata, and a unique transaction ID that must be saved for use with the `/send-transactions` endpoint.

**Important:** The `txId` is NOT a blockchain transaction hash - it's an internal identifier used to link the prepared transactions with the send operation.

### Response Fields

| Field          | Type   | Description                                                                      |
| -------------- | ------ | -------------------------------------------------------------------------------- |
| `transactions` | array  | Array of unsigned transaction objects ready for signing                          |
| `info`         | object | Metadata about the operation including emails and token symbol                   |
| `txId`         | string | Unique identifier for this transaction batch (required for `/send-transactions`) |

**Next Steps:**

1. Sign each transaction in the `transactions` array
2. Submit the signed transactions along with the `txId` to `/send-transactions`


## OpenAPI

````yaml POST /prepare-transactions
openapi: 3.1.0
info:
  title: Brickken API V2
  description: >-
    Welcome to the Brickken API documentation. This API allows customers to
    create and manage tokenization processes, including creating new
    tokenizations, minting/burning/transferring tokens, whitelisting users,
    manage tokens approvals. This documentation provides detailed information on
    how to use the API, including the necessary endpoints, request formats, and
    expected
    responses.</details><details><summary>**Authentication**</summary>All API
    requests require an API key for authentication. Include your API key in the
    `x-api-key` header of each request:<pre><code>```
      x-api-key: YOUR_API_KEY
    ```</code></pre>Ensure that your API key is kept secure and not shared
    publicly. A common parameter for all requests is the `signerAddress`. Such
    address MUST be whitelisted in our factory. To whitelist an address and/or
    request an API key either for sandbox/production environment please contact
    with: support@brickken.com. Once a `signerAddress` performs a
    `newTokenization` we refer to that address as the tokenizer. The tokenizer
    will be the only one allowed to mint such token, distribute dividends on
    such token and whitelist/blacklist investors of such token. Regarding
    actions like transferring tokens or burning tokens, the `signerAddress` can
    be any user and not only the
    tokenizer.</details><details><summary>**Supported Networks &
    Addresses**</summary><details><summary>Sepolia (sandbox environment
    only)</summary><pre><code>```
      Chain Id: "aa36a7"
      Factory Address: "0x933ABAA95a7Fd0Bc683bDe2adB89f4C5EA64897b"
      BKN Address: "0x97a13487f889dc770Ac925Be2d3b6c833FA7746a"
      USDT Address: "0x28d2B01854D0aBec267a3DDcad9163580E6E8604"
      USDC Address: "0xb10cE8e28aEb1ae27b968Fb3bfed2FD7dd52daCb"
    ```</code></pre></details><details><summary>Base Sepolia (sandbox /
    testing)</summary><pre><code>```
      Chain Id: "84532" (hex "14a34")
      x402 USDC (Circle, EIP-3009): "0x036CbD53842c5426634e7929541eC2318f3dCF7e"
      ERC-8004 Identity Registry: "0x8004A818BFB912233c491871b3d84c89A494BD9e"
      ERC-8004 Reputation Registry: "0x8004B663056A597Dffe9eCcC1965A193B7388713"
    ```</code></pre></details><details><summary>Ethereum mainnet (production
    environment only)</summary><pre><code>```
      Chain Id: "1"
      Factory Address: "0x91af681C85Ca98Efc5D69C1B62E6F435030969Db"
      BKN Address: "0x0A638F07ACc6969abF392bB009f216D22aDEa36d"
      USDT Address: "0xdac17f958d2ee523a2206206994597c13d831ec7"
      USDC Address: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
    ```</code></pre></details><details><summary>Base mainnet (production
    environment only)</summary><pre><code>```
      Chain Id: "2105"
      Factory Address: "0x278D7bdc2451B0Fa4087A68ce084a86cB91D4d83"
      BKN Address: "0xddB293BB5C5258F7484A94a0fBd5c8B2F6E4e376"
      USDT Address: N/A
      USDC Address: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"
    ```</code></pre></details><details><summary>BNB Smart Chain mainnet
    (production environment only)</summary><pre><code>```
      Chain Id: "38"
      Factory Address: "0xCe4529Fe88df480BD777d3e32dfD7032e6C685ff"
      BKN Address: "0x0e28bC9B03971E95acF9ae1326E51ecF9C55B498"
      USDT Address: "0x55d398326f99059fF775485246999027B3197955"
      USDC Address: "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"
    ```</code></pre></details><details><summary>Avalance C Chain mainnet
    (production environment only)</summary><pre><code>```
      Chain Id: "a86a"
      Factory Address: "0xc6c230FA8F40022dE997727436Fae01caAbcDe61"
      BKN Address: "0xd44E4Dc8bdF7C1c62CfDBb182022097BA42Ac6bC"
      USDT Address: "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7"
      USDC Address: "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E"
    ```</code></pre></details></details><details><summary>**Usage
    Workflow**</summary><details><summary>1. **Prepare
    Transactions:**</summary>- Use the `POST /prepare-transactions` endpoint
    with the desired method (e.g., `newTokenization`, `mintToken`, etc...) to
    prepare the transaction(s).

    - The response will include an array of unsigned transactions that needs to
    be signed.<details><summary>**Example Of An Endpoint
    Response:**</summary>```json
      {
        "transactions": [
          {
            "from": "0xSignerAddress",
            "to": "0xTargetAddress",
            "value": {
              "type": "BigNumber",
              "hex": "0x00"
            },
            "nonce": 1,
            "chainId": 11155111,
            "data": "0x...",
            "type": 2,
            "maxPriorityFeePerGas": {
              "type": "BigNumber",
              "hex": "0x..."
            },
            "maxFeePerGas": {
              "type": "BigNumber",
              "hex": "0x..."
            },
            "gasLimit": {
              "type": "BigNumber",
              "hex": "0x..."
            }
          }
        ]
      }
    ```</details></details><details><summary>2. **Sign the
    Transactions:**</summary>- Use your preferred method or wallet to sign the
    transaction data provided in the response.

    - Ensure that the signer address matches the `signerAddress` provided in the
    initial request.<details><summary>**Example Of signing a transaction with
    typescript and `ethers-js`:**</summary>```typescript
      const tx = {...} // One of the object in the array returned by the `/prepare-transactions` endpoint
      const privateKey = process.env.PRIVATE_KEY;
      const wallet = new ethers.Wallet(privateKey);
      const signedTx = await wallet.signTransaction(tx);
      console.log('Signed Transaction:', signedTx);
    ```</details>**NOTE:** Be sure to have enough funds in the signer wallet to
    cover for the transaction cost</details><details><summary>3. **Submit Signed
    Transactions:**</summary>- Use the `POST /send-transactions` endpoint to
    submit the signed transaction(s) along with the required parameters.

    - The API will process the transactions, send them to the blockchain, and
    update the Brickken database accordingly.</details><details><summary>4.
    **Check Transaction Status:**</summary>- Use the `GET
    /get-transaction-status` endpoint to check the status of your transaction.

    - Provide either the on-chain transaction hash (`hash`) or the internal
    transaction ID (`txId`) to retrieve the
    status.</details></details><details><summary>**Environments**</summary>The
    API is available in several environments for testing and production
    purposes:- Sandbox: `https://api.sandbox.brickken.com/`

    - Master (Production): `https://api.brickken.com/`</details>


    The API also exposes x402scan discovery facade endpoints under /x402/... The
    public discovery target is https://api.brickken.com, with /.well-known/x402
    returning resource URLs and /openapi.json returning the generated OpenAPI
    3.1 document.
  version: 2.0.0
servers:
  - url: https://api.sandbox.brickken.com
    description: Sandbox Environment
  - url: https://api.brickken.com
    description: Production Environment
security:
  - apiKeyAuth: []
paths:
  /prepare-transactions:
    post:
      tags:
        - Endpoints
      summary: Prepare Transactions
      description: >-
        **Description:** This endpoint prepares unsigned transactions for the
        method selected in the `method` field. For exact required and optional
        body fields, use the method-specific endpoints under Create Transaction.


        **Headers:**

        - `x-api-key`: `YOUR_API_KEY` for API-key auth, or `X-Payment` for x402
        retries on eligible agentic methods

        - `Content-Type`: `application/json`


        **Common Request Body Parameters:**

        - `method` (string, required): Operation to prepare.

        - `chainId` (string, required): Blockchain network identifier. Hex
        format is recommended, for example `aa36a7` for Sepolia.

        - `signerAddress` (string, conditionally required): Wallet address that
        signs the prepared transaction. Most methods require it; `newInvest` and
        `claimTokens` can use `investorAddress` as the signer.

        - `gasLimit` (string, optional): Gas limit override. If omitted, the API
        estimates gas automatically.

        - `privateRpcUrl` (string, optional): Private RPC URL override.

        - `nonce` (integer, optional): Nonce override. If omitted, the API reads
        the pending nonce from the RPC.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                method:
                  type: string
                  example: newTokenization
                  enum:
                    - newTokenization
                    - newSto
                    - newInvest
                    - claimTokens
                    - mintToken
                    - whitelist
                    - approve
                    - burnToken
                    - transferFrom
                    - transferTo
                    - dividendDistribution
                    - closeOffer
                    - newTokenizedAgent
                    - agentRegister
                    - agentSetURI
                    - agentSetMetadata
                    - agentSetWallet
                    - agentTransferOwnership
                    - agentGiveFeedback
                    - agentRevokeFeedback
                    - agentAppendFeedbackResponse
                    - agentCreateToken
                    - agentMintToken
                    - agentBurnToken
                    - agentTransferToken
                    - agentTransferFromToken
                    - agentApproveToken
                  description: >-
                    The operation to be performed. Includes standard
                    tokenization methods and x402-eligible agentic methods.
                    Agentic methods can also be addressed through /x402/...
                    facade endpoints, where the method is derived from the path.
                    newTokenizedAgent remains a legacy alias for direct
                    /prepare-transactions calls and is not listed in x402scan
                    discovery.
                signerAddress:
                  type: string
                  description: >-
                    Optional. Wallet address that will sign the prepared
                    transaction. If omitted, the API uses investorAddress for
                    this method.
                  example: '0x742d35Cc6634C0532925a3b8D4C9db96c4b4d8b'
                chainId:
                  type: string
                  description: >-
                    Required. Blockchain network identifier. Hex format is
                    recommended, for example Sepolia `aa36a7`.
                  example: aa36a7
                tokenSymbol:
                  type: string
                  description: >-
                    Required. Token symbol. Must be 2 to 5 uppercase letters or
                    numbers.
                  example: EXMPL
                tokenType:
                  type: string
                  enum:
                    - EQUITY
                    - DEBT
                    - BILL_FACTORING
                    - ICO
                    - STABLECOIN
                    - REVENUE_SHARE
                    - RWA_TOKEN
                    - PROFIT_SHARING
                  example: EQUITY
                  description: Optional. Token type. Defaults to EQUITY when omitted.
                tokenizerEmail:
                  type: string
                  description: >-
                    Optional. Tokenizer email. Required for newTokenization,
                    newSto, and closeOffer.
                  example: tokenizer@example.com
                  format: email
                acceptedCoin:
                  type: string
                  description: Required. Accepted payment token symbol.
                  example: USDT
                amount:
                  type: string
                  description: >-
                    Optional. Amount used by approve, burnToken, transferFrom,
                    transferTo, and dividendDistribution.
                  example: '100'
                endDate:
                  type: string
                  description: Required. STO end date.
                  example: '2026-12-31T23:59:59.000Z'
                  format: date-time
                from:
                  type: string
                  description: Optional. Source address required by transferFrom.
                  example: '0x1111111111111111111111111111111111111111'
                  pattern: ^0x[a-fA-F0-9]{40}$
                gasLimit:
                  type: string
                  description: >-
                    Optional. Gas limit override. If omitted, the API estimates
                    gas automatically.
                  example: '2000000'
                initialHolders:
                  type: array
                  description: >-
                    Optional. Initial holders paired by index with preMints.
                    Provide walletAddress directly, or email when a DFNS wallet
                    can be resolved.
                  items:
                    type: object
                    properties:
                      walletAddress:
                        type: string
                        description: Optional. Holder wallet address.
                        example: '0x1111111111111111111111111111111111111111'
                        pattern: ^0x[a-fA-F0-9]{40}$
                      email:
                        type: string
                        description: >-
                          Optional. Holder email used to resolve a DFNS wallet
                          when walletAddress is omitted.
                        example: holder@example.com
                        format: email
                  example:
                    - walletAddress: '0x1111111111111111111111111111111111111111'
                investmentAmount:
                  type: string
                  description: Required. Payment-token amount to invest.
                  example: '1000'
                investorAddress:
                  type: string
                  description: >-
                    Optional. Investor wallet address. Required for newInvest
                    and claimTokens; optional for approve payment-token owner
                    scope.
                  example: '0x1111111111111111111111111111111111111111'
                  pattern: ^0x[a-fA-F0-9]{40}$
                investorEmail:
                  type: string
                  description: >-
                    Optional. Investor email. Required for newInvest,
                    claimTokens, burnToken, and each whitelist/mint recipient.
                  example: investor@example.com
                  format: email
                maxInvestment:
                  type: string
                  description: Required. Maximum investment amount.
                  example: '10000'
                maxRaiseUSD:
                  type: string
                  description: Required. Maximum raise amount in USD.
                  example: '100000'
                minInvestment:
                  type: string
                  description: Required. Minimum investment amount.
                  example: '100'
                minRaiseUSD:
                  type: string
                  description: Required. Minimum raise amount in USD.
                  example: '10000'
                name:
                  type: string
                  description: Required. Name of the tokenized asset.
                  example: Example Token
                newInvestor:
                  type: object
                  description: >-
                    Optional. Default profile data used when creating missing
                    investor users.
                  properties:
                    name:
                      type: string
                      description: Optional. Investor first name.
                      example: John
                    surname:
                      type: string
                      description: Optional. Investor surname.
                      example: Doe
                    middleName:
                      type: string
                      description: Optional. Investor middle name.
                      example: A.
                    secondSurname:
                      type: string
                      description: Optional. Investor second surname.
                      example: Smith
                    type:
                      type: string
                      description: Optional. Investor type. Defaults to INVESTOR_PERSON.
                      example: INVESTOR_PERSON
                offeringName:
                  type: string
                  description: Required. Name of the STO offering.
                  example: Series A
                paymentTokenSymbol:
                  type: string
                  description: >-
                    Optional. Payment token symbol used by newInvest. If
                    omitted, the chain default payment token is used.
                  example: USDT
                preMints:
                  type: array
                  description: >-
                    Optional. Pre-mint amounts. If provided, initialHolders must
                    also be provided with the same length.
                  items:
                    type: object
                    required:
                      - amount
                    properties:
                      amount:
                        type: string
                        description: >-
                          Required. Amount to pre-mint to the holder at the same
                          array index.
                        example: '1000'
                  example:
                    - amount: '1000'
                privateRpcUrl:
                  type: string
                  description: >-
                    Optional. Private RPC URL override. If omitted, the API uses
                    the configured RPC for chainId.
                  example: https://rpc.example.com
                spenderAddress:
                  type: string
                  description: Optional. Spender address required by approve.
                  example: '0x3333333333333333333333333333333333333333'
                  pattern: ^0x[a-fA-F0-9]{40}$
                startDate:
                  type: string
                  description: Required. STO start date.
                  example: '2026-09-01T00:00:00.000Z'
                  format: date-time
                supplyCap:
                  type: string
                  description: >-
                    Optional. Maximum token supply. Defaults to `0` when
                    omitted.
                  example: '1000000'
                to:
                  type: string
                  description: >-
                    Optional. Destination address required by transferFrom and
                    transferTo.
                  example: '0x2222222222222222222222222222222222222222'
                  pattern: ^0x[a-fA-F0-9]{40}$
                tokenAmount:
                  type: string
                  description: Required. Number of tokens offered in the STO.
                  example: '1000'
                tokenizerAddress:
                  type: string
                  description: >-
                    Optional. Tokenizer wallet address used by tokenization
                    setup flows when provided.
                  example: '0x4444444444444444444444444444444444444444'
                  pattern: ^0x[a-fA-F0-9]{40}$
                url:
                  type: string
                  description: >-
                    Optional. Token documentation URL. Defaults to an empty
                    string when omitted.
                  example: https://example.com/token-docs
                userToMint:
                  type: array
                  minItems: 1
                  description: Required. Users to mint tokens to.
                  items:
                    type: object
                    required:
                      - investorEmail
                      - amount
                    properties:
                      investorEmail:
                        type: string
                        description: Required. Recipient investor email.
                        example: investor@example.com
                        format: email
                      amount:
                        type: string
                        description: Required. Positive whole-token amount to mint.
                        example: '100'
                      investorAddress:
                        type: string
                        description: >-
                          Optional. Recipient wallet address. If omitted, the
                          API attempts to create or resolve a DFNS wallet.
                        example: '0x1111111111111111111111111111111111111111'
                        pattern: ^0x[a-fA-F0-9]{40}$
                      needWhitelist:
                        type: boolean
                        description: >-
                          Optional. Whether the recipient should be whitelisted
                          before minting. Defaults to true unless explicitly
                          false.
                        example: true
                      name:
                        type: string
                        description: >-
                          Optional. Investor first name used when creating a new
                          investor record.
                        example: John
                      surname:
                        type: string
                        description: >-
                          Optional. Investor surname used when creating a new
                          investor record.
                        example: Doe
                  example:
                    - investorEmail: investor@example.com
                      investorAddress: '0x1111111111111111111111111111111111111111'
                      amount: '100'
                      needWhitelist: true
                userToWhitelist:
                  type: array
                  minItems: 1
                  description: Required. Users to whitelist or blacklist.
                  items:
                    type: object
                    required:
                      - investorAddress
                      - investorEmail
                      - whitelistStatus
                    properties:
                      investorAddress:
                        type: string
                        description: Required. Investor wallet address.
                        example: '0x1111111111111111111111111111111111111111'
                        pattern: ^0x[a-fA-F0-9]{40}$
                      investorEmail:
                        type: string
                        description: Required. Investor email used for the investor record.
                        example: investor@example.com
                        format: email
                      whitelistStatus:
                        type: boolean
                        description: Required. `true` to whitelist, `false` to blacklist.
                        example: true
                  example:
                    - investorAddress: '0x1111111111111111111111111111111111111111'
                      investorEmail: investor@example.com
                      whitelistStatus: true
                ownerEmail:
                  type: string
                  example: owner@example.com
                  description: Tokenizer owner email used by agentic methods.
                email:
                  type: string
                  example: reviewer@example.com
                  description: Tracking email used by feedback and agent token methods.
                services:
                  type: array
                  items:
                    type: object
                  description: Agent service descriptors used by agentRegister.
                metadata:
                  type: object
                  description: Agent metadata stored in the registration file.
                aiModelName:
                  type: string
                  example: gpt-4o
                  description: AI model name for agent registration or metadata updates.
                aiModelProvider:
                  type: string
                  example: openai
                  description: AI model provider stored in the agent profile.
                agentUuid:
                  type: string
                  description: Internal tokenized agent UUID returned by agentRegister.
                agentId:
                  oneOf:
                    - type: string
                    - type: number
                  description: On-chain ERC-8004 agent ID.
                metadataKey:
                  type: string
                  example: modelName
                  description: Metadata key used by agentSetMetadata.
                metadataValue:
                  description: Metadata value used by agentSetMetadata.
                metadataEncoding:
                  type: string
                  enum:
                    - string
                    - json
                    - hex
                  description: Encoding mode for agentSetMetadata.
                newWallet:
                  type: string
                  description: Agent wallet assigned by agentSetWallet.
                signature:
                  type: string
                  description: Hex signature used by agentSetWallet.
                deadline:
                  oneOf:
                    - type: string
                    - type: number
                  description: Signature deadline used by agentSetWallet.
                feedbackIndex:
                  oneOf:
                    - type: string
                    - type: number
                  description: Feedback index used by reputation methods.
                clientAddress:
                  type: string
                  description: Reviewer/client address used by agentAppendFeedbackResponse.
                responseURI:
                  type: string
                  description: Off-chain response URI used by agentAppendFeedbackResponse.
                feedbackURI:
                  type: string
                  description: Off-chain feedback URI used by agentGiveFeedback.
                feedbackHash:
                  type: string
                  description: Optional 32-byte content hash for feedback.
                responseHash:
                  type: string
                  description: Optional 32-byte content hash for a feedback response.
                agentWallet:
                  type: string
                  description: Operational agent wallet used by agentCreateToken.
                symbol:
                  type: string
                  example: MAT
                  description: Agent token symbol used by agentCreateToken.
                premint:
                  type: string
                  description: Human-readable premint amount used by agentCreateToken.
                decimals:
                  type: number
                  description: Agent token decimals. Defaults to 18.
                tokenAddress:
                  type: string
                  description: >-
                    Deployed agent token address used by agentMintToken and
                    agentBurnToken.
                x402Support:
                  type: boolean
                  description: >-
                    Whether the registered agent declares x402 support in its
                    profile.
                active:
                  type: boolean
                  description: Whether the registered agent should appear active.
                nonce:
                  type: integer
                  description: >-
                    Optional. Nonce override. If omitted, the API reads the
                    pending nonce from the RPC.
                  example: 12
                paymentTokenAddress:
                  type: string
                  description: >-
                    Optional. Payment token contract address override. If
                    omitted, the chain default payment token is used.
                  example: '0x5555555555555555555555555555555555555555'
                  pattern: ^0x[a-fA-F0-9]{40}$
              required:
                - method
                - chainId
              example:
                method: newTokenization
                signerAddress: '0x742d35Cc6634C0532925a3b8D4C9db96c4b4d8b'
                chainId: aa36a7
                tokenizerEmail: tokenizer@example.com
                name: Example Token
                tokenSymbol: EXMPL
                tokenType: EQUITY
                supplyCap: '1000000'
                url: https://example.com/token-docs
                preMints:
                  - amount: '1000'
                initialHolders:
                  - walletAddress: '0x1111111111111111111111111111111111111111'
            example:
              method: newTokenization
              signerAddress: '0x742d35Cc6634C0532925a3b8D4C9db96c4b4d8b'
              chainId: aa36a7
              tokenizerEmail: tokenizer@example.com
              name: Example Token
              tokenSymbol: EXMPL
              tokenType: EQUITY
              supplyCap: '1000000'
              url: https://example.com/token-docs
              preMints:
                - amount: '1000'
              initialHolders:
                - walletAddress: '0x1111111111111111111111111111111111111111'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  transactions:
                    type: array
                    description: Array of unsigned transaction objects ready for signing
                    items:
                      type: object
                      properties:
                        from:
                          type: string
                          description: Sender address
                          example: '0x1234567890abcdef1234567890abcdef12345678'
                        to:
                          type: string
                          description: Recipient address
                          example: '0xabcdef1234567890abcdef1234567890abcdef12'
                        value:
                          type: string
                          description: Transaction value in hex
                          example: '0x00'
                        nonce:
                          type: integer
                          description: Transaction nonce
                          example: 3792
                        chainId:
                          type: integer
                          description: Blockchain network chain ID
                          example: 11155111
                        data:
                          type: string
                          description: Transaction data payload
                          example: >-
                            0xd362e8a70000000000000000000000000000000000000000000000000000000000000040...
                        type:
                          type: integer
                          description: Transaction type (EIP-1559)
                          example: 2
                        maxPriorityFeePerGas:
                          type: string
                          description: Maximum priority fee per gas
                          example: '1150000'
                        maxFeePerGas:
                          type: string
                          description: Maximum fee per gas
                          example: '1156037'
                        gasLimit:
                          type: string
                          description: Gas limit in hex
                          example: '0xccef'
                  info:
                    type: object
                    description: Metadata about the operation
                    properties:
                      tokenizerEmail:
                        type: string
                        description: Email of the tokenizer
                        example: tokenizer@example.com
                      tokenSymbol:
                        type: string
                        description: Symbol of the token
                        example: EXMPL
                      investorEmail:
                        type: string
                        description: Email of the investor (when applicable)
                        example: investor@example.com
                  txId:
                    type: string
                    description: >-
                      Unique identifier for this transaction batch (required for
                      /send-transactions). This is NOT a blockchain transaction
                      hash.
                    example: >-
                      0x46adea7bdf49c576a760102e0d6bc9ecd650b3998588cd3d7f576a7973426aad
                required:
                  - transactions
                  - txId
        '402':
          description: >-
            x402 payment required. The response includes a PAYMENT-REQUIRED
            header with a base64-encoded x402 payment request.
      security:
        - apiKeyAuth: []
        - x402Payment: []
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
    x402Payment:
      type: apiKey
      in: header
      name: X-Payment
      description: >-
        Base64-encoded x402 payment payload. Supported for x402-eligible agentic
        methods on /x402/... facades, /prepare-transactions, and eligible
        /send-transactions retries.

````