Skip to content

Vaults

Vaults are containers that organize your files. Every file belongs to exactly one vault. This guide walks through every vault operation — creating, listing, updating, deleting, setting defaults, managing members, and organizing with folders.

Vaults have a visibility that determines encryption and access control:

PublicShared
EncryptionNone — plaintextSEAL protocol (on-chain IBE)
Who can accessAnyone with the URLOwner + granted Sui addresses
AuthenticationFiles downloadable without authRequires API key + Sui key
Use casePublic assets, open data, static hostingTeam collaboration, multi-agent workflows, sensitive data
Terminal window
# Shared vault (default) — SEAL-encrypted, requires Sui key
opentusk vault create "Team Project"
# Public vault — unencrypted, no Sui key required
opentusk vault create "Public Assets" --public
# With a description
opentusk vault create "Research Data" --description "Q2 experiment results"

When you create a shared vault, OpenTusk deploys an on-chain SEAL Whitelist on the Sui blockchain. Your Sui address is automatically added as the vault owner.

Terminal window
# List all vaults you own
opentusk vault list
# JSON output for scripting
opentusk vault list --format json
Terminal window
# By vault ID, slug, or name
opentusk vault info "Team Project"
opentusk vault info team-project
opentusk vault info <vault-id>

You can change a vault’s name and description. Visibility cannot be changed.

Terminal window
# Rename
opentusk vault rename "Team Project" "Engineering"
# Update name and/or description
opentusk vault update "Team Project" --name "Engineering" --description "Core team files"

Deleted vaults go to trash with a 7-day grace period before permanent deletion.

Terminal window
# Delete an empty vault (prompts for confirmation)
opentusk vault delete "Old Project"
# Force delete — moves all files to trash first
opentusk vault delete "Old Project" --force
# Skip confirmation prompt
opentusk vault delete "Old Project" --force --yes

When you upload a file without specifying a vault, OpenTusk uses your default vault. The setup wizard sets this automatically, or you can set it manually:

Terminal window
# Set by name, slug, or ID
opentusk vault set-default "Team Project"
# Now uploads go here by default
opentusk upload report.pdf
# equivalent to: opentusk upload report.pdf --vault "Team Project"

You can always override the default with --vault:

Terminal window
opentusk upload photo.jpg --vault "Public Assets"

Shared vaults use Sui address-based access control. Only the vault owner can add or remove members. Members can be humans (with their wallet address) or AI agents (with their generated Sui address).

Terminal window
# Add a member by Sui address
opentusk vault members add "Team Project" 0x5678...efgh
# Add an agent (find its address in Settings → API Keys, or from invite output)
opentusk vault members add "Team Project" 0xabcd...1234

The CLI signs the on-chain transaction with your Sui key to add the address to the SEAL Whitelist.

Terminal window
opentusk vault members list "Team Project"

Output shows each member’s Sui address, role (owner/member), granted date, and member ID.

Terminal window
# Remove by member ID (shown in members list)
opentusk vault members remove "Team Project" <member-id>
# Skip confirmation
opentusk vault members remove "Team Project" <member-id> --yes

When a member is removed, their Sui address is removed from the on-chain Whitelist — they can no longer decrypt files in the vault.

ActionOwnerMember
Upload filesYesYes
Download / view filesYesYes (all files, not just their own)
Create / list / manage foldersYesYes
List vault membersYesYes
Add / remove membersYesNo
Update / delete vaultYesNo

To list vaults that other users have granted you access to (not vaults you own):

Terminal window
opentusk vault shared

Before creating or joining shared vaults, you need a Sui address linked to your account. The opentusk setup wizard handles this automatically, or do it manually:

Terminal window
# Link an address
opentusk account link-sui 0x1234...abcd
# Unlink
opentusk account unlink-sui
# Check current address
opentusk account show-sui

Vaults support nested folder hierarchies to organize files.

Terminal window
# Create a top-level folder
opentusk folder create "Documents" --vault "Team Project"
# Create a nested folder
opentusk folder create "Invoices" --vault "Team Project" --parent <parent-folder-id>
Terminal window
# List top-level folders in a vault
opentusk folder list --vault "Team Project"
# List children of a specific folder
opentusk folder list --vault "Team Project" --parent <folder-id>
# View folder contents (files + subfolders)
opentusk folder contents <folder-id>
# View folder details
opentusk folder info <folder-id>
Terminal window
# Rename
opentusk folder rename <folder-id> "New Name"
# Delete (folder must be empty)
opentusk folder delete <folder-id>
opentusk folder delete <folder-id> --yes # skip confirmation
Terminal window
opentusk upload invoice.pdf --vault "Team Project" --folder <folder-id>
Create vault → Upload files → Organize with folders
Shared vaults:
├── Add members by Sui address
├── Members upload/download with SEAL encryption
└── Remove members to revoke access
Delete vault → Trash (7-day grace) → Permanent delete