---
title: "Validate a proposed Stacks block"
method: POST
path: "/v3/block_proposal"
tags: ["Mining"]
---

# Validate a proposed Stacks block

`POST /v3/block_proposal`

Used by stackers to validate a proposed Stacks block from a miner.
**This API endpoint requires a basic Authorization header.**

## Request body

- object
  - `block` string, required — Hex-encoded block data
  - `chain_id` integer, required — Chain ID for the block

## Response `202`

Block proposal has been accepted for processing.
The result will be returned via the event observer.

- BlockProposalResponse — unresolved $ref

## Other responses

- `400` — Bad Request
- `401` — Unauthorized. Invalid or missing authentication token.
- `429` — There is an ongoing proposal validation being processed, the new request cannot be accepted until the prior request has been processed.
- `500` — Internal Server Error

## Changes

- **2025-07-09** `04a9a0b50aa3` — 1 breaking, 6 info
  - request body became required
  - api operation id `post_block_proposal` removed and replaced with `postBlockProposal`
  - the endpoint scheme security `rpcAuth` was added to the API
  - added the media type `application/json` for the response with the status `400`
  - …3 more
- **2025-07-08** `488dd3b80020` — 3 breaking, 4 info
  - removed the media type `application/json` for the response with the status `400`
  - removed the media type `text/plain` for the response with the status `400`
  - removed the media type `text/plain` for the response with the status `401`
  - api operation id `postBlockProposal` removed and replaced with `post_block_proposal`
  - …3 more
- **2025-07-08** `170414634c90` — 1 breaking, 6 info
  - request body became required
  - api operation id `post_block_proposal` removed and replaced with `postBlockProposal`
  - the endpoint scheme security `rpcAuth` was added to the API
  - added the media type `application/json` for the response with the status `400`
  - …3 more
- **2025-06-26** `2fc5956efe3d` — 3 breaking, 4 info
  - removed the media type `application/json` for the response with the status `400`
  - removed the media type `text/plain` for the response with the status `400`
  - removed the media type `text/plain` for the response with the status `401`
  - api operation id `postBlockProposal` removed and replaced with `post_block_proposal`
  - …3 more
- …earlier changes not shown

[Full history](https://skmtc.dev/stacks-network/apis/stacks-3-0-rpc-api/changes/v3/block_proposal/post.md)

---

[API](https://skmtc.dev/stacks-network/apis/stacks-3-0-rpc-api.md) · [All operations](https://skmtc.dev/stacks-network/apis/stacks-3-0-rpc-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stacks-network/stacks-3-0-rpc-api/revisions/fc4a4ef8ec94/schema)
