Publisher configuration
Each publisher has six configuration flags:| Setting | Type | Default | Description |
|---|---|---|---|
| state | string | ready | Operational state: ready (accepting uploads), idle (online, no active work), working (processing uploads), deactivated (disabled). At least one publisher must not be deactivated. |
| epochs | number | 1 | Number of Walrus storage epochs. Each epoch is approximately 2 weeks. Range: 1–100. |
| quilt | boolean | true | Whether to batch files into quilts for cost efficiency. |
| permanent | boolean | false | Whether blobs are permanent (non-deletable before epoch expiry). |
| share | boolean | false | Whether published content is shared and accessible to other users via standard Walrus aggregators. |
| autoConvert | boolean | true | Whether to automatically convert SUI to WAL before upload when WAL balance is insufficient. |
Your account always has at least one non-deactivated publisher. Tusky creates a default publisher on sign-up —
state: "ready", epochs: 1, quilt: true, permanent: false, share: false, autoConvert: true.How publishers work
Account default
When you sign up, Tusky provisions a default publisher. All uploads use this publisher unless an environment has a specific publisher attached.
Create additional publishers
You can create publishers with different configurations for different use cases — for example, one publisher for short-lived temp files (1 epoch, deletable) and another for archival data (50 epochs, permanent).
Attach to environments
Publishers can be attached to specific environments. When an environment has an attached publisher, all uploads to that environment use that publisher’s configuration instead of the account default.
Configuration details
Epochs
Storage on Walrus is purchased in discrete units of time called epochs. Each Walrus epoch is approximately 2 weeks long.| Setting | Description |
|---|---|
| Default | 1 epoch (~2 weeks) |
| Range | 1–100 epochs |
| Override | Can be overridden per-upload via the API or SDK |
| Cost | Linear — 10 epochs costs 10x what 1 epoch costs for the same file |
Quilt mode
Controls whether files are batched into quilts or published as standalone blobs.- Quilts (quilt: true)
- Simple blobs (quilt: false)
Multiple files are batched into a single Walrus blob called a quilt. Each file within the quilt receives a unique quilt patch ID for individual retrieval.Advantages:
- Significantly more cost-efficient for many small files
- Reduced gas costs — one Sui transaction covers multiple files
- Files in a quilt are managed together — they are deleted and extended as a group, not individually
| Feature | Quilts (quilt: true) | Simple Blobs (quilt: false) |
|---|---|---|
| Cost efficiency | High — batches reduce gas and storage overhead | Lower — each file incurs individual transaction costs |
| Per-file management | No — files in a quilt are managed together | Yes — each file is independently deletable/extendable |
| Best for | Many small files, cost-sensitive workloads | Large files, files needing independent lifecycle control |
| Deletion | Entire quilt is deleted (all files) | Individual files deleted independently |
| On-chain objects | Fewer (one blob per batch) | More (one blob per file) |
Permanent flag
Controls whether published blobs can be deleted before their epochs expire.permanent: false (default)
Blobs can be deleted before their storage epochs expire. When deleted, the remaining storage cost is reclaimed.
permanent: true
Blobs persist for the full epoch duration regardless of any delete requests. Provides stronger immutability guarantees.
The permanent setting interacts with quilt mode: if you use quilts with
permanent: false and delete a quilt, all files in that quilt are removed. There is no way to delete individual files from a quilt.Share flag
Controls whether published content is accessible beyond your own account.share | Behavior |
|---|---|
false (default) | Content is private — accessible only through your account’s aggregator. |
true | Content is shared — accessible via any standard Walrus aggregator using the blob ID. |
Auto-convert (SUI → WAL)
WhenautoConvert is enabled, the publisher automatically swaps SUI for WAL via on-chain DEX before an upload if your managed wallet’s WAL balance is insufficient. This means you only need to hold SUI — the publisher acquires WAL on demand at current market rates.
autoConvert | Behavior |
|---|---|
true (default) | If WAL balance is too low for the upload, the publisher swaps the required amount of SUI → WAL through a Sui DEX (best available rate across Cetus, DeepBook, and other liquidity sources) and proceeds with the upload. |
false | No conversion. Upload fails with 402 Payment Required if WAL balance is insufficient. You must deposit WAL manually. |
The swap uses the best available rate across Sui DEX liquidity pools at the time of the transaction. A small amount of additional SUI covers the swap gas. The exact conversion rate and fee are included in the upload receipt.
Attaching publishers to environments
You can attach a publisher to an environment to give that environment a specific publishing configuration. This is useful when different environments have different storage requirements.- SDK
- cURL
Managing publishers
- List publishers
- Update publisher
- Delete publisher
Choosing the right configuration
I upload many small files (< 1 MB each)
I upload many small files (< 1 MB each)
Use
quilt: true with a reasonable epoch count. Quilts batch small files together, dramatically reducing per-file costs.I upload large files that need independent management
I upload large files that need independent management
Use
quilt: false. Each file gets its own blob ID and can be deleted, extended, or ejected independently.I need immutable archival storage
I need immutable archival storage
Set a high
epochs value (e.g., 50–100) and permanent: true. Blobs cannot be deleted early and will persist for the full duration.I want publicly accessible content
I want publicly accessible content
Set
share: true. Your content will be resolvable through any Walrus aggregator, not just your private Tusky aggregator.I want to simplify token management
I want to simplify token management
Enable
autoConvert: true on your publisher. Fund your wallet with SUI only — the publisher swaps SUI → WAL automatically at upload time.Different environments need different settings
Different environments need different settings
Create multiple publishers with different configs and attach each to the appropriate environment.