> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tape.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Deletions

S3 deletes here are real on-chain deletes. The track comes off the tape's commitment with a Merkle proof, and the freed capacity returns to the tape ([the semantics](/protocol/architecture/objects)). The same prerequisites as uploads apply: a write-scoped credential and the tape's delegation.

## DeleteObject

Deletes one object by key. It follows the S3 standard for idempotency: deleting a missing key succeeds with `204`, so retries and sync tools behave.

<Tabs>
  <Tab title="aws CLI">
    ```bash theme={null}
    aws s3 rm s3://my-bucket/reports/q2.pdf --profile tapedrive
    ```
  </Tab>

  <Tab title="rclone">
    ```bash theme={null}
    rclone delete tapedrive:my-bucket/reports/q2.pdf
    ```
  </Tab>

  <Tab title="boto3">
    ```python theme={null}
    s3.delete_object(Bucket="my-bucket", Key="reports/q2.pdf")
    ```
  </Tab>
</Tabs>

## Deleting many objects

Bulk deletion works through the tools you already use: rclone's `purge` or `delete` against a prefix, the aws CLI's recursive `rm`, or a direct `DeleteObjects` call.

```bash theme={null}
aws s3 rm s3://my-bucket/reports/ --recursive --profile tapedrive
```

A `DeleteObjects` request (`POST /{bucket}?delete`) carries up to 1000 keys and reports a per-key result: `<Deleted>` on success, `<Error>` with a code and message when a key fails, and quiet mode returns only the failures. Missing keys count as deleted, matching S3, so retried purges converge. A failing key never fails the batch.

Under the hood every key is still its own on-chain delete, and the gateway submits them one at a time: each delete rewrites the tape's track commitment, so deletes on one tape cannot run in parallel or collapse into fewer transactions. A large purge is many sequential transactions; expect throughput of roughly one object per confirmation, not one request.

## What deletion means here

Deletion removes the data from storage and serving and frees the capacity. It does not shorten history: the original write remains part of the chain's record ([tracks](/protocol/architecture/tracks)).

Buckets themselves are not deleted through S3. A bucket is a tape, and tapes run to their expiry ([tapes](/protocol/architecture/tapes)).
