# Persistent Storage

### Key Concepts

**Bucket**

A UUID-identified storage space scoped to a single node. You own the bucket and control who can access it. Buckets persist independently of compute jobs, files remain until you delete them.

**Access List**

An ERC-721 soulbound NFT contract that gates read and write access to a bucket. Any wallet that holds a token in the contract can upload, list, and delete files in the bucket. If you create a bucket without an access list, only the owner has access.

> **Important:** An access list cannot be added to a bucket after creation. Decide at creation time whether you want shared access.

**File Object**

When the compute engine mounts a file into a container, it references it as:

```json
{
  "type": "nodePersistentStorage",
  "bucketId": "<bucket-uuid>",
  "fileName": "<file-name>"
}
```

**Algorithm access path**

Mounted files are available inside the container at:

```
/data/persistentStorage/<bucketId>/<fileName>
```

Your algorithm reads files from that path at runtime.

#### Access Control Model

| Scenario                   | Who can upload / list / delete                         |
| -------------------------- | ------------------------------------------------------ |
| Bucket with no access list | Owner only                                             |
| Bucket with access list    | Owner + any wallet holding a token in the ACL contract |

#### Next Steps

* Using with Ocean Nodes Dashboard
* Using with Ocean Orchestrator
* Using with Ocean CLI


---

# Agent Instructions: 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.oncompute.ai/persistent-storage/quickstart.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.
