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

# Create a wallet-authorized account session

> Sign the exact marketSessionMessage documented in Authentication and consent. Only the four approved production website origins are accepted; this is not arbitrary third-party login. Expiry is future milliseconds within five minutes, nonce UUID v4. Direct backend returns a token; the first-party website proxy stores vm2-session HttpOnly and strips token from JSON. Maximum body 8192 bytes. Consent lasts up to 30 days and cannot spend or transact.



## OpenAPI

````yaml /api-reference/vibemarket_openapi.json post /account/session
openapi: 3.0.3
info:
  title: vibe.market API
  version: '2026-09-10'
  description: >-
    Consumer HTTP API for the current vibe.market at
    https://vibechain.com/market. This is an experimental protocol; review
    https://vibechain.com/terms. Public reads do not require Classic API keys.
    Discover runtime graphs rather than hardcoding a revision. The
    /api/vibemarket2 namespace is intentional. Operational provider webhooks and
    operator-only controls are excluded.
  termsOfService: https://vibechain.com/terms
servers:
  - url: https://build.vibechain.com/api/vibemarket2
    description: Current-market backend
security: []
tags:
  - name: Discovery
  - name: Indexed market
  - name: Board
  - name: Live updates
  - name: Creators
  - name: Artwork
  - name: Accounts
  - name: Community
  - name: Private messages
  - name: Scoped sessions
paths:
  /account/session:
    post:
      tags:
        - Accounts
      summary: Create a wallet-authorized account session
      description: >-
        Sign the exact marketSessionMessage documented in Authentication and
        consent. Only the four approved production website origins are accepted;
        this is not arbitrary third-party login. Expiry is future milliseconds
        within five minutes, nonce UUID v4. Direct backend returns a token; the
        first-party website proxy stores vm2-session HttpOnly and strips token
        from JSON. Maximum body 8192 bytes. Consent lasts up to 30 days and
        cannot spend or transact.
      operationId: vm2034
      parameters:
        - name: Origin
          in: header
          required: true
          schema:
            type: string
            enum:
              - https://vibechain.com
              - https://www.vibechain.com
              - https://vibe.market
              - https://www.vibe.market
          description: Must match the approved origin in the signed consent.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SessionEnvelope'
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Session'
        '400':
          description: Invalid input, signature or action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Expired consent, signature verification failure or replayed nonce.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Origin, wallet or action not authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: Body too large.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate/admission limit. Honor Retry-After if present.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Dependency or capacity unavailable. Retry with backoff.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security: []
components:
  schemas:
    SessionEnvelope:
      allOf:
        - $ref: '#/components/schemas/SignatureEnvelope'
        - type: object
          properties:
            origin:
              type: string
              enum:
                - https://vibechain.com
                - https://www.vibechain.com
                - https://vibe.market
                - https://www.vibe.market
          required:
            - origin
    Session:
      type: object
      properties:
        address:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        token:
          type: string
          pattern: ^[a-f0-9]{64}$
          description: >-
            Direct backend only. Never log or expose this credential; the
            website proxy stores it in an HttpOnly cookie and strips it from
            JSON.
        expiresAt:
          type: integer
          format: int64
      required:
        - address
        - expiresAt
    Error:
      type: object
      properties:
        error:
          type: string
      required:
        - error
    SignatureEnvelope:
      type: object
      properties:
        address:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        nonce:
          type: string
          format: uuid
          description: Fresh UUID v4, never reused.
        expires:
          type: integer
          format: int64
          description: >-
            Unix milliseconds; future and no more than five minutes from the
            server clock.
        signature:
          type: string
          pattern: ^0x[0-9a-fA-F]{130}$
      required:
        - address
        - nonce
        - expires
        - signature
      description: >-
        Sign the exact endpoint-specific message. A syntactically valid
        signature alone is not authorization.

````