Vaults
Vaults are ERC-1155 tokens that contain digital twin data and manage access permissions.
Structure
graph TD
A[Vault] --> B[Streams]
B --> C[Data Attachments]
A --> D[Permissions]
A --> E[Metadata]
Key Features
Ownership
- Transferable NFT ownership
- Multi-chain deployment
- Batch operations support
Permission System
Vault permission levels:
| Level | Meaning |
|---|---|
OWNER | Full control, including ownership |
ADMIN | Full control |
EDITOR | Modify content |
VIEWER | Read-only |
CUSTOM | Granular grant, used as a prerequisite for stream-level access |
Streams use a narrower set — ADMIN, EDITOR, VIEWER — and assets use OWNER, ADMIN,
EDITOR, VIEWER.
Granting a stream permission to a collaborator who has no access to the parent vault first requires
an on-chain vault CUSTOM grant. The platform issues it as part of the grant flow.
Permissions settle on-chain asynchronously. A grant moves through FILEDGR_RECEIVED →
FILEDGR_REVIEWED → FILEDGR_APPLIED → DLT_COMPLETED → FILEDGR_COMPLETED, so a freshly
granted permission is not immediately effective.
Manage them over REST with POST, GET and DELETE on /vaults/{vault_id}/permissions, and the
equivalent routes under /streams/{stream_id}/permissions and /assets/{asset_id}/permissions.
Metadata Storage
- IPFS-based metadata
- Customizable URI schema
- Version tracking
Managing vaults
Vaults are managed over the REST API:
| Action | Endpoint |
|---|---|
| Create | POST /vaults |
| List | GET /vaults |
| Fetch one | GET /vaults/{vault_id} |
| Update name/description/archived | PUT /vaults/{vault_id} |
| Confirm or skip the image upload | PUT /vaults/{vault_id}/images |
| Add a stream | POST /vaults/{vault_id}/streams |
| List attachments | GET /vaults/{vault_id}/attachments |
| Grant / revoke / list permissions | POST / DELETE / GET /vaults/{vault_id}/permissions |
See the API reference for request and response shapes, and the Quick Start for a worked example.
On-chain, transferVaultOwnership and the batch permission operations are available directly on the
contract — see Smart Contract Integration.