# app.gainforest.asset.file

> Published by [gainforest.earth](https://lexicon.garden/identity/did:plc:qoti4acfmc5wg6zzmtix6hse)

✓ This is the authoritative definition for this NSID.

## Description

Generic durable asset record for uploaded blobs. Example use: anchoring uploads during draft editing so blobs persist until final records reference them.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:qoti4acfmc5wg6zzmtix6hse/app.gainforest.asset.file)
- [Documentation](https://lexicon.garden/lexicon/did:plc:qoti4acfmc5wg6zzmtix6hse/app.gainforest.asset.file/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:qoti4acfmc5wg6zzmtix6hse/app.gainforest.asset.file/examples)

## Definitions

### `app.gainforest.asset.file`

**Type**: `record`

A durable asset anchor record for an uploaded blob and optional tags.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `file` | `blob` | Yes | Uploaded file blob. This record can be used as a durable anchor so temporary uploads are not garbage-collected before final attachment. |
| `tags` | `array` | No | Optional machine-readable tags for quick checks and filtering. |
| `createdAt` | `string` (datetime) | Yes | Timestamp of record creation in the ATProto PDS. |

## Raw Schema

```json
{
  "id": "app.gainforest.asset.file",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "file",
          "createdAt"
        ],
        "properties": {
          "file": {
            "type": "blob",
            "accept": [
              "*/*"
            ],
            "maxSize": 10485760,
            "description": "Uploaded file blob. This record can be used as a durable anchor so temporary uploads are not garbage-collected before final attachment."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "knownValues": [
                "image-in-linear-document"
              ],
              "maxGraphemes": 64
            },
            "maxLength": 32,
            "description": "Optional machine-readable tags for quick checks and filtering."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp of record creation in the ATProto PDS."
          }
        }
      },
      "description": "A durable asset anchor record for an uploaded blob and optional tags."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "Generic durable asset record for uploaded blobs. Example use: anchoring uploads during draft editing so blobs persist until final records reference them."
}
```
