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

> Stake tokens to a single-asset staking campaign to earn rewards based on the campaign configuration.

# User - Staking token to a campaign



## OpenAPI

````yaml cardano/managed-contracts-api/openapi.json post /contracts/singleAssetStaking/stakeToken
openapi: 3.0.3
info:
  title: Cardano - Managed Contracts API
  description: https://docs.gomaestro.org/getting-started
  contact:
    name: Maestro
    email: info@gomaestro.org
    url: https://gomaestro.org/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.txt
  version: v1.9.0
servers:
  - url: https://mainnet.gomaestro-api.org/v1
    description: Cardano Mainnet
  - url: https://preprod.gomaestro-api.org/v1
    description: Cardano Preprod
  - url: https://preview.gomaestro-api.org/v1
    description: Cardano Preview
security:
  - api-key: []
paths:
  /contracts/singleAssetStaking/stakeToken:
    post:
      tags:
        - Single Asset Staking
      summary: User - Staking token to a campaign
      description: User - Staking token to a single asset staking campaign
      operationId: sas_stake_token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StakeTokenRequest'
      responses:
        '200':
          description: Stake token transaction build successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
        '400':
          description: Bad Request. Invalid request body provided.
components:
  schemas:
    StakeTokenRequest:
      type: object
      properties:
        nodeUTxOs:
          type: array
          items:
            $ref: '#/components/schemas/UTxO'
          description: Node UTXOs
        configTN:
          type: string
          description: Configuration TN
        sender:
          type: string
          description: Sender's address
        toStake:
          type: number
          description: To stake
      required:
        - configTN
        - sender
        - toStake
    Transaction:
      type: object
      description: Unsigned transaction
      properties:
        cbor_hex:
          type: string
          description: CBOR hexadecimal representation of the transaction
        tx_hash:
          type: string
          description: Transaction hash
      required:
        - cbor_hex
        - tx_hash
    UTxO:
      type: object
      properties:
        txHash:
          type: string
          description: Transaction hash
        outputIndex:
          type: number
          description: Output index
        address:
          type: string
          description: Address
        assets:
          type: array
          items:
            $ref: '#/components/schemas/Assets'
          description: Assets
        datumHash:
          type: string
          description: Datum hash
        datum:
          type: string
          description: Datum
        scriptRef:
          type: string
          description: Script reference
      required:
        - txHash
        - outputIndex
        - address
        - assets
    Assets:
      type: object
      additionalProperties:
        type: string
      example:
        policyId1assetName1: '123'
        policyId2assetName2: '456'
        policyId3assetName3: '789'
      description: A record with string keys and bigint values
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: api-key
      description: Project API Key

````