---
title: "Upload NFT token metadata"
method: POST
path: "/v2/farcaster/nft/metadata/token"
tags: ["Onchain"]
---

# Upload NFT token metadata

`POST /v2/farcaster/nft/metadata/token`

Uploads metadata JSON to S3 for one or more tokens on a deployed contract. Requires contract ownership via the wallet header.

## Headers

- `x-wallet-id` string, required

## Request body

- object
  - `contract_address` string, required — Ethereum address
  - `network` 'base' | 'optimism' | 'base-sepolia', required
  - `tokens` object[], required
    - `metadata` object, required
      - `animation_url` string
      - `attributes` object[]
        - `display_type` 'number' | 'boost_number' | 'boost_percentage' | 'date'
        - `max_value` number
        - `trait_type` string, required
        - `value` union, required
          - string
          - number
      - `background_color` string
      - `description` string
      - `external_url` string
      - `image` string, required
      - `name` string, required
      - `youtube_url` string
    - `token_id` string, required

## Response `200`

Success

- object
  - `tokens` union[], required
    - union
      - object
        - `token_id` string, required
        - `uri` string, required
      - object
        - `error` string, required
        - `token_id` string, required

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `404` — Resource not found
- `500` — Server Error

---

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