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

# Create Market

> Create a new market through the router

<Note>
  This is a smart contract write function. The curl example shown is for illustration. To call this function, use web3 libraries (ethers.js, viem, web3.py) or JSON-RPC directly.
</Note>


## OpenAPI

````yaml POST /router/createMarket
openapi: 3.0.3
info:
  title: Based Protocol Smart Contracts API
  description: >-
    OpenAPI specification for the Based Protocol - a bidirectional perpetual
    markets platform built for EVM blockchains. The protocol allows users to
    create binary markets where participants can take "Based" (positive) or
    "Cringe" (negative) positions using the Based Market mechanism.
  version: 1.0.0
  license:
    name: LicenseRef-Proprietary
servers:
  - url: https://mainnet.base.org
    description: Base Mainnet (default RPC endpoint)
security: []
tags:
  - name: BasedProtocol
    description: Operations related to the main protocol contract
  - name: BasedMarket
    description: Operations for individual markets
  - name: BasedMarketRouter
    description: Router operations with safety checks and deadline protection
paths:
  /router/createMarket:
    post:
      tags:
        - BasedMarketRouter
      summary: Create market through router
      description: Create a new market through the router
      operationId: routerCreateMarket
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RouterCreateMarketRequest'
      responses:
        '200':
          description: Market created successfully through router
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateMarketResponse'
components:
  schemas:
    RouterCreateMarketRequest:
      type: object
      required:
        - creator
      properties:
        creator:
          type: string
          pattern: ^0x[a-fA-F0-9]{40}$
          description: Address of the market creator
    CreateMarketResponse:
      type: object
      properties:
        marketAddress:
          type: string
          pattern: ^0x[a-fA-F0-9]{40}$
          description: Address of the newly created market
        marketCounter:
          type: integer
          format: uint64
          description: Counter/ID of the created market
        transactionHash:
          type: string
          pattern: ^0x[a-fA-F0-9]{64}$
          description: Transaction hash of the market creation

````