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

# Create Moments Batch

> Create multiple moments in a single onchain transaction. Uses the same unified `contract` object as [POST /moment/create](/api-reference/moment/create): provide `contract.address` for an existing collection, or `contract.name` and `contract.uri` to deploy a new collection and mint all batch tokens on it.

Each token can use its own `salesConfig`, `mintToCreatorCount`, `maxSupply`, and `payoutRecipient`. If `splits` are provided, the payout recipient is resolved to the split contract address for all tokens.



## OpenAPI

````yaml POST /moment/create-batch
openapi: 3.1.0
info:
  title: In•Process API
  description: >-
    The In•Process API enables browsing and managing moments from timelines.
    Retrieve moments from a specific artist's timeline, browse the in•process
    collective timeline, or filter by collection. The API supports creating
    moments, managing collections, handling payments, and interacting with the
    In•Process protocol ecosystem.
  version: 1.0.0
servers:
  - url: https://api.inprocess.world/api
    description: Production server
security: []
paths:
  /moment/create-batch:
    post:
      summary: Create Moments Batch
      description: >-
        Create multiple moments in a single onchain transaction. Uses the same
        unified `contract` object as [POST
        /moment/create](/api-reference/moment/create): provide
        `contract.address` for an existing collection, or `contract.name` and
        `contract.uri` to deploy a new collection and mint all batch tokens on
        it.


        Each token can use its own `salesConfig`, `mintToCreatorCount`,
        `maxSupply`, and `payoutRecipient`. If `splits` are provided, the payout
        recipient is resolved to the split contract address for all tokens.
      operationId: createMomentBatch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMomentBatchRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateMomentBatchResponse'
              example:
                contractAddress: '0xfd5b6abaeb35d5d14ebad9c047c2947de938791e'
                hash: >-
                  0x49a71e96b5234eb15127c7de6446663fea1c13b91d18b5538108888ffca385cd
                chainId: 8453
                tokenIds:
                  - '4'
                  - '5'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security: []
components:
  schemas:
    CreateMomentBatchRequest:
      type: object
      required:
        - contract
        - tokens
        - account
      properties:
        contract:
          $ref: '#/components/schemas/MomentContractInput'
        tokens:
          type: array
          minItems: 1
          description: >-
            Tokens to create. Tokens are created in order and returned as
            `tokenIds` in the same order.
          items:
            $ref: '#/components/schemas/CreateMomentBatchToken'
        splits:
          type: array
          description: >-
            Optional revenue splits configuration. Must have at least 2
            recipients and sum to 100%
          items:
            $ref: '#/components/schemas/Split'
          minItems: 2
        account:
          type: string
          description: Creator's address
        chainId:
          type: integer
          description: >-
            Chain ID (optional; defaults to Base mainnet in production and Base
            Sepolia in preview or development)
          default: 8453
    CreateMomentBatchResponse:
      type: object
      required:
        - contractAddress
        - hash
        - chainId
        - tokenIds
      properties:
        contractAddress:
          type: string
          description: The existing collection address
        hash:
          type: string
          description: Transaction hash of the batch creation operation
        chainId:
          type: integer
          description: Chain ID where the transaction was executed
        tokenIds:
          type: array
          description: >-
            Token IDs created by the batch transaction, returned in the same
            order as the request tokens
          items:
            type: string
    Error:
      type: object
      required:
        - status
        - message
      properties:
        status:
          type: string
          enum:
            - error
          description: Error status
        message:
          type: string
          description: Error message
        errors:
          type: array
          description: >-
            Optional array of field-level validation errors. Typically included
            in 400 Bad Request responses for validation errors.
          items:
            type: object
            required:
              - field
              - message
            properties:
              field:
                type: string
                description: The field name that failed validation
              message:
                type: string
                description: The validation error message for this field
    MomentContractInput:
      type: object
      description: >-
        Collection target. Provide `address` to mint on an existing ERC-1155
        collection, or provide both `name` and `uri` to deploy a new collection
        in the same request.
      properties:
        address:
          type: string
          description: Existing collection contract address
        name:
          type: string
          description: >-
            New collection name (required together with `uri` when `address` is
            omitted)
        uri:
          type: string
          description: >-
            New collection metadata URI (required together with `name` when
            `address` is omitted)
    CreateMomentBatchToken:
      type: object
      required:
        - tokenMetadataURI
        - createReferral
        - salesConfig
        - mintToCreatorCount
      properties:
        tokenMetadataURI:
          type: string
          description: >-
            The URI pointing to the token's metadata (for example, an Arweave
            URI)
        createReferral:
          type: string
          description: >-
            The address that will receive referral rewards for this moment
            creation
        salesConfig:
          $ref: '#/components/schemas/SalesConfig'
        mintToCreatorCount:
          type: number
          description: Number of tokens to mint to the creator upon creation (typically 1)
        payoutRecipient:
          type: string
          description: >-
            Optional address that will receive sale proceeds. If splits are
            configured, this will be automatically set to the splits contract
            address
        maxSupply:
          type: integer
          description: >-
            Optional maximum number of tokens that can be minted. Must be an
            integer >= 1. If not provided, the token will be an open edition
            with unlimited supply
          minimum: 1
    Split:
      type: object
      required:
        - address
        - percentAllocation
      properties:
        address:
          type: string
          description: Recipient address for revenue sharing
        percentAllocation:
          type: number
          description: Allocation percentage (0-100)
          minimum: 0
          maximum: 100
    SalesConfig:
      type: object
      required:
        - type
        - pricePerToken
        - saleStart
        - saleEnd
      properties:
        type:
          type: string
          enum:
            - fixedPrice
            - erc20Mint
          description: The sale type
        pricePerToken:
          oneOf:
            - type: string
            - type: integer
            - type: number
          description: >-
            Price per token in wei (18 decimals), as a decimal integer string or
            JSON number. For example, "100000000000000000" or 100000000000000000
            represents 0.1 ETH
        saleStart:
          oneOf:
            - type: string
            - type: integer
            - type: number
          description: >-
            Sale start time: Unix timestamp as a decimal integer string or JSON
            number
        saleEnd:
          oneOf:
            - type: string
            - type: integer
            - type: number
          description: >-
            Sale end time: Unix timestamp as a decimal integer string or JSON
            number
        currency:
          type: string
          description: >-
            Optional ERC20 token address. If not provided, defaults to the
            native token (ETH)

````