---
title: "Getting a sequencer signature"
url: "/docs/block-builders/customizing-a-builder/getting-a-sequencer-signature/index.md"
description: "How to obtain a sequencer co-signature for your block using the Sequencer API."
---
# Getting a Sequencer Signature

Blocks must be cosigned by the Sequencer. The Sequencer blindly signs any number of candidate blocks for the current Builder via a simple API.

The Sequencer API accepts a [`SignRequest`][signrequest] via a `POST` call to the `/signBlock` endpoint, and returns a [`SignResponse`][signresponse]. For details on calculating the `contents` hash, see the [rust builder example](https://github.com/init4tech/builder/blob/main/src/quincey.rs).

> **Danger:** The sequencer is allowed to modify the returned copy of the `SignRequest`. This is to allow the sequencer to set a specific `gas_limit`. It currently does not modify the request before returning it, but may do so in the future.

## Slot Timing

Quincey follows a round-robin sequencing approach, allowing builders to request block signatures according to their spot in the rotation.

Each slot starts at the timestamp of the latest block and extends for 12 seconds. Sequencer requests must be made in the first 10 seconds of the builder's assigned slot, as there is a 2 second buffer at the end of the slot to prevent timing games and ensure enough time for the submission process.

For this reason, the Builder [defaults to a slightly longer 3 second cutoff](https://github.com/init4tech/builder/blob/main/src/config.rs#L158-L163) at the end of its assigned slot, at which point it begins the signing and submission process for the block it built. See the [deadline calculation code](https://github.com/init4tech/builder/blob/main/src/tasks/block/sim.rs#L228-L253) for deeper details.

## API Endpoint

```http
POST /signBlock
```

- **Request Body**: [SignRequest] JSON object.
- **Response**: [SignResponse] JSON object containing the sequencer's signature.

[signrequest]: https://docs.rs/zenith-types/latest/zenith_types/struct.SignRequest.html
[signresponse]: https://docs.rs/zenith-types/latest/zenith_types/struct.SignResponse.html
