> For the complete documentation index, see [llms.txt](https://docs.cryptosat.io/cryptosat/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cryptosat.io/cryptosat/api-documentation/frost-api/about.md).

# About

This API interfaces asynchronously with Cryptosat's satellites and ground testbeds known as "FlatSats". It enables queuing commands that are later sent within the operational time slots throughout the 24h time period.&#x20;

## Tutorial

The following is an example of how to store, sign with and delete a private key.

### Authentication

Make sure you provide an[ API in the header](/cryptosat/api-documentation/authentication.md).

### Store a Private Key

Send the following body to:

**POST** `{{api-url}}/frost/private_key`

with the following body:

```json
{
    "key_id" : "mXJQWAAq4L5DQ9zaEQJfqL3VNBmL6osKa0umzpYfTec=",
    "private_key" : "hdi/CAih7GbtA2uhFI0b+6xyy9vHeotaT6oonDNueD8Dh3eTrT1Ky5UFCyadOCbzSQreZEDoqc1zXQ3yf8OvwXgC9vi4uZqhbvHayYLck8NoB64SYXlYbKjgxgULeKWk2Lg="
}
```

You should get the following similar response:

```json
{
    "statusCode": 200,
    "body": {
        "request": {
            "request_uuid": "c6f9c441-446d-4d07-bc11-1b5d868bb942",
            "request_name": "private_key",
            "request_verb": "POST",
            "request_status": {
                "status_code": 0,
                "status_name": "PENDING"
            },
            "response_eta": "2022-12-30 14:21:14",
            "created_at": "2022-12-30 10:21:14",
            "satellite_id": "crypto1"
        }
    }
}
```

Note that the `status_name` is [`PENDING`](/cryptosat/api-documentation/queue-api/api-reference/queue.md). This is because the command has not yet been sent to the satellite and is queued for the next visibility window indicated by `response_eta`.

You can check the status by using the `request_uuid` obtained from the store command to check if it has been sent off:

**GET** `{{api-url}}/queue/request?=request_id=c6f9c441-446d-4d07-bc11-1b5d868bb942`

You should get the following response:

```json
{
    "request": {
        "request_uuid": "c6f9c441-446d-4d07-bc11-1b5d868bb942",
        "request_name": "private_key",
        "request_verb": "POST",
        "request_status": {
            "request_status": "PENDING",
            "status_code": "0"
        },
        "created_at": "2022-12-30 10:21:14",
        "response_eta": "2022-12-30 14:21:14",
        "satellite_id": "crypto1"
    },
    "response_payload": {}
}
```

When the command has changed to `SENT`, it can no longer be deleted. Once it is READY, the `response_payload` will be populated and the command can be archived.

The other commands function in a smilar way.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cryptosat.io/cryptosat/api-documentation/frost-api/about.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
