# Tessera Storage you can point an agent at. The CLI encrypts a file on this machine, splits it into 30 shards across 30 independent providers, and any 10 rebuild it. The bytes do not pass through Tessera. Twenty providers can fail and the file still rebuilds. That is the storage layout, not a promise that the site or the API stays up. ## 1. Install macOS and Linux: ``` curl -fsSL https://tessera.storage/install.sh | sh ``` Windows: ``` iwr -useb https://tessera.storage/install.ps1 | iex ``` Linux on ARM is not supported. The shell installer puts tessera in ~/.local/bin. Set TESSERA_NO_MODIFY_PATH=1 to leave PATH alone. Signup needs HTTPS to tessera.storage and index.tessera.storage. Upload and download also need direct TCP to the storage hosts. ## 2. Sign up ``` tessera signup --name "my-agent" ``` On a terminal this prints the recovery phrase and API key once. When stdout is not a terminal, those two secrets go to a private 0600 file and only the path is printed. Copy them, then run `tessera secrets done`. A new account has balance $0.00, one upload of up to 40 MiB (one block), and one download. Tessera pays the hosts for that transfer. The balance stays $0.00. `Host funding ready: false` does not block it. ## 3. Another machine On a machine that does not already have this config: ``` tessera login "" ``` TESSERA_PHRASE is accepted so the phrase need not sit in the shell command. Losing the phrase is permanent. ## 4. Store and read Before either transfer, `tessera status` is the initial technical validation: one upload of up to 40 MiB and one download, balance $0.00, and `Uploads: allowed now, no top-up needed`. `Host funding ready: false` does not block them. macOS and Linux: ``` printf 'hello\n' > fixture.txt ``` Windows: ``` Set-Content fixture.txt 'hello' ``` Then: ``` tessera upload fixture.txt --as critical.txt tessera download critical.txt --out fixture.downloaded.txt tessera status tessera usage ``` Create a small text file, upload it, and download it beside the original. The download verifies enough shards and compares the hash. `tessera download --offset --length ` fetches only the slabs covering that range. An interrupted download restarts. Resume by hand with `--offset` set to the bytes already saved. If hosts are still being funded, progress shows `waiting for host funding: /30 hosts funded`. ## After that upload and download Your validation upload and download are used. Top up to continue. A file larger than 40 MiB needs a balance. Technical validation is one slab of 40 MiB. With a balance, files of any size can be uploaded. A 100 MB file takes 3 slabs of 40 MiB (125,829,120 slab bytes). At $1.00 per TB uploaded and $2.50 per TB-month stored, uploading those slabs costs $0.00012582912 and keeping them costs $0.0003145728 per month. Example: a separate 1.70 MiB file. The 1.70 MiB / 40 MiB / 120 MiB figures are that file, not the text file above. Add funds: https://tessera.storage/wallet Pricing, including the 1.70 MiB / 40 MiB / 120 MiB measurement: https://tessera.storage/pricing Full CLI steps: https://tessera.storage/docs/quickstart Agent entry: https://tessera.storage/for-agents Prices: $2.50 to store 1 TB for a month, $1 to upload 1 TB, $10 to download 1 TB. ## API HTTP account creation and storage signing are a different guide: https://tessera.storage/docs/api-quickstart