Create a new publisher. Each account gets one active publisher automatically on sign-up. You can create additional publishers with different configurations and attach them to specific environments.
Request Body
Initial state of the publisher. One of ready, idle, deactivated. At least one publisher must not be deactivated.
epochs
number
default:"1"
required
Default number of Walrus storage epochs for uploads made through this publisher. Each epoch is approximately 2 weeks. Range: 1–100.
Whether to batch files into quilts. When true, multiple files are combined into a single Walrus blob for cost efficiency. When false, each file is published as a standalone blob.
Whether blobs are permanent (non-deletable). When true, blobs persist for the full epoch duration and cannot be deleted early. When false, blobs can be deleted before their epochs expire.
Whether blobs published by this publisher are shared. When true, the published content is accessible to other Tusky users via standard Walrus aggregators. When false, content is private to the account.
Whether to automatically convert SUI to WAL before upload when the managed wallet’s WAL balance is insufficient. When true, the publisher swaps SUI → WAL via on-chain DEX at the best available rate. When false, uploads fail with 402 if WAL balance is too low.
Optional environment ID to attach this publisher to. When set, this publisher configuration is used for all uploads to the specified environment, overriding the account default.
Response
Unique publisher identifier.
Current operational state. One of ready, idle, working, deactivated.
Default storage epoch count.
Whether quilt batching is enabled.
Whether blobs are non-deletable.
Whether blobs are shared.
Whether SUI → WAL auto-conversion is enabled.
The environment this publisher is attached to, or null if it is the account default.
ISO 8601 creation timestamp.
Example
curl -X POST https://api.tusky.io/v2/publishers \
-H "Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"epochs": 5,
"quilt": false,
"permanent": true,
"share": false,
"autoConvert": true,
"environmentId": "env_abc123"
}'
Response
{
"id": "pub_7f3a2b1c",
"state": "ready",
"epochs": 5,
"quilt": false,
"permanent": true,
"share": false,
"autoConvert": true,
"environmentId": "env_abc123",
"createdAt": "2026-03-05T12:00:00Z"
}
When an environment has an attached publisher, uploads to that environment use the attached publisher’s configuration instead of the account default.