action_id returned during upload. Knowing the four steps behind a download helps you show progress in your app and handle failures cleanly.
1
Authenticate
Every download request is authenticated with an ADR-036 signature. ADR-036 is the Cosmos standard for signing arbitrary data outside a transaction. The SDK signs the This proves the requester holds the private key for their Lumera address. Any wallet can download a public file. Only authorized wallets can download a private file.
action_id string with the connected wallet.2
Request the download
The SDK sends a download request to the SN-API, the HTTP API served by SuperNodes.The SN-API responds with a
task_id that tracks the download preparation. The SDK retries this request up to 3 times on transient server errors (HTTP 500). SuperNodes may need time to locate and gather the required chunks.3
Monitor progress
The SDK monitors download progress over Server-Sent Events (SSE), a one-way HTTP stream of status updates.In browsers the SDK uses the native
EventSource API. In Node.js it uses a custom fetch-based SSE parser.4
Stream the file
Once the task completes, the file is available as a binary stream.The SDK returns a
ReadableStream<Uint8Array> that your application consumes.Download task states
Convenience methods
Basic download
Download with options
Private download
The call is identical for private files. The auth signature restricts who can download.SN-API fallback
The SN-API client tries versioned endpoints first (/api/v1/...). On a 404 response it falls back to legacy paths (/api/...). This keeps the SDK compatible across SN-API versions.
Next steps
Upload lifecycle
What happens between selecting a file and permanent storage.
Erasure coding
How SuperNodes reconstruct your file from a subset of symbols.
JavaScript SDK reference
Full method reference for uploads, downloads, and task options.