---
title: "Request a Mint or Redeem Attestation"
method: POST
path: "/v1/attestations"
tags: ["Attestations"]
---

# Request a Mint or Redeem Attestation

`POST /v1/attestations`

An attestation is a signed payload that authorizes a user to mint or redeem tokens. Each attestation is only valid for a limited time and is determined by the duration in the request. A user can specify a duration of `short` for a tighter price spread or `long` for an extended validity period.

Note: There are specific user and session limits which can prevent the creation of an attestation. For more information on limits, see the [Get Trading Limits](https://docs.ondo.finance/api-reference/limits/get-trading-limits) endpoint.

See also: [Error Codes](https://docs.ondo.finance/api-reference/error-codes)

## Request body

- union
  - AttestationByTokenAmountRequest — Request to mint or redeem a quantity of assets.
    - `chainId` 'ethereum-1' | 'bsc-56' | 'solana-900', required — The chain's identifier including the chain name and chain id.
    - `symbol` string, required — The GM token symbol.
    - `side` 'buy' | 'sell', required — The direction of the trade.
    - `tokenAmount` string, required — The number of tokens, represented as a string-encoded decimal with up to 18 digits after the decimal point.
    - `duration` 'short' | 'long' — Specifies the desired validity period for the attestation. Users can specify a duration of 'short' for a tighter price spread or 'long' for an extended validity period.
    - `userAddress` string — The Solana user address associated with the request. This is only required for Solana attestations.
  - AttestationByNotionalValueRequest — Request to mint or redeem assets equal to the notional value.
    - `chainId` 'ethereum-1' | 'bsc-56' | 'solana-900', required — The chain's identifier including the chain name and chain id.
    - `symbol` string, required — The GM token symbol.
    - `side` 'buy' | 'sell', required — The direction of the trade.
    - `notionalValue` string, required — Total value of assets, represented as a string-encoded decimal with up to 18 digits after the decimal point.
    - `duration` 'short' | 'long' — Specifies the desired validity period for the attestation. Users can specify a duration of 'short' for a tighter price spread or 'long' for an extended validity period.
    - `userAddress` string — The Solana user address associated with the request. This is only required for Solana attestations.

## Response `200`

OK

- Attestation
  - `attestationId` string, required — The attestation's unique identifier.
  - `userId` string, required — The onchain identifier for an association of wallets.
  - `chainId` string, required — The chain's identifier, only including the chain id.
  - `symbol` string, required — The GM token symbol.
  - `ticker` string, required — The stock ticker associated with this attestation.
  - `assetAddress` string, required — The contract address of the symbol.
  - `side` '0' | '1', required — The direction of the trade (0 for buy, 1 for sell).
  - `tokenAmount` string, required — The number of tokens to mint/redeem represented as a string with 18 decimal places.
  - `price` string, required — The price per asset in USDon, represented as a string with up to 18 decimal places.
  - `expiration` number, required — The epoch timestamp when the attestation will expire.
  - `signature` string, required — The base64-encoded signature attesting to the quote.
  - `additionalData` string, required — Base64-encoded additional data to provide within the attestation.

## Other responses

- `400` — One of the request parameters is invalid. Please see the returned message and documentation for details.
- `401` — Missing or invalid API key.
- `403` — The request was denied due to market state, asset state, or insufficient permissions.
- `404` — The provided asset symbol does not exist and cannot be found.
- `429` — The account has exceeded its rate limits. Please see the returned message and documentation for details.
- `500` — An internal server error occurred. Please see the returned message and documentation for details.

---

[API](https://skmtc.net/ondo/apis/gm-backend-api.md) · [All operations](https://skmtc.net/ondo/apis/gm-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ondo/gm-backend-api/versions/12953a4908b2/schema)
