# BlobStoreProvider

`BlobStoreProvider` is the interface a package implements to register a blob store with [`MastraEditor`](https://mastra.ai/reference/editor/mastra-editor). Blob stores hold content-addressable skill blobs and other large artifacts produced by the editor.

The built-in `storage` provider uses the configured storage backend's `blobs` domain. External providers (for example, S3) are supplied via `MastraEditorConfig.blobStores`.

## Usage example

```typescript
import { MastraEditor } from '@mastra/editor'
import { s3BlobStoreProvider } from '@mastra/s3'

new MastraEditor({
  blobStores: {
    [s3BlobStoreProvider.id]: s3BlobStoreProvider,
  },
})
```

## Properties

**id** (`string`): Unique provider identifier (for example, \`"storage"\`, \`"s3"\`).

**name** (`string`): Human-readable name for UI display.

**description** (`string`): Short description.

**configSchema** (`Record<string, unknown>`): JSON Schema describing provider-specific configuration. Used by the UI to render config forms.

**createBlobStore** (`(config: TConfig) => BlobStore | Promise<BlobStore>`): Create a runtime \`BlobStore\` instance from the stored config. Called when the editor resolves a blob store via \`MastraEditor.resolveBlobStore(providerId, config)\`.

## Implementing a provider

```typescript
import type { BlobStore, BlobStoreProvider } from '@mastra/core/editor'

export const myBlobStoreProvider: BlobStoreProvider<{ bucket: string; region: string }> = {
  id: 'my-blob-store',
  name: 'My Blob Store',
  description: 'Object-store-backed blob storage.',
  configSchema: {
    type: 'object',
    required: ['bucket', 'region'],
    properties: {
      bucket: { type: 'string' },
      region: { type: 'string' },
    },
  },
  async createBlobStore(config): Promise<BlobStore> {
    return createMyBlobStore({ bucket: config.bucket, region: config.region })
  },
}
```

When no `providerId` is passed to `MastraEditor.resolveBlobStore()`, the editor falls back to the storage backend's `blobs` domain.

## Related

- [MastraEditor class](https://mastra.ai/reference/editor/mastra-editor) — provider registry and `resolveBlobStore()` method.