Agent index (llms.txt) — fetch this first, then the page it names.
orama storage
Storage deals on the Orama chain. Every command and flag below comes from the orama command tree, so it matches the binary.
Global conventions are on the CLI overview.
orama storage
Storage deals on the Orama chain
orama storage
Subcommands: accept, create, decline, extend, get, grant, open, prove, put, repair, revoke, rewrap, seal
orama storage accept
Accept an assigned storage slot
orama storage accept [flags]
Accept one slot of a deal. The signer is the node's hot key. Without --node the command prints the sign document and does not submit it.
| Flag | Default | Description |
|---|---|---|
--account-number | 0 | Account number, when not read from --node |
--chain-id | — | Chain id [required] |
--deal-id | 0 | Deal id [required] |
--fee | — | Fee in norama [required] |
--gas | 0 | Gas limit [required] |
--id | — | Node id [required] |
--node | — | Chain REST API, for example http://127.0.0.1:31003; the command returns once the transaction is in a block, and fails if the block refuses it |
--onion-network | — | Start a Tor client for this Orama Tor network file (tor-network.json) and submit through it; without --onion a validator onion from the file is picked at random ($ORAMA_ONION_NETWORK) |
--onion-socks | — | Tor SOCKS5 address for --onion, a loopback host:port (default 127.0.0.1:9050, $ORAMA_ONION_SOCKS) |
--onion-tor | tor | The tor binary --onion-network starts |
--onion | — | Submit through this validator onion service (addr.onion[:port]) over Tor instead of --node; never falls back to the clearnet ($ORAMA_CHAIN_ONION) |
--pubkey | — | Compressed secp256k1 pubkey hex of the signing account |
--sequence | 0 | Account sequence, when not read from --node |
--signer | — | Signing account (orama1...) [required] |
--slot | 0 | Slot index |
orama storage create
Open a private or public-pin storage deal
orama storage create [flags]
Open a PRIVATE or PUBLIC_PIN deal. The command does not encrypt the bytes and does not upload them. Each --piece is a 32-byte root and a byte count, written as <64 hex chars>:<bytes>. Leaf counts follow the 1024-byte piece rule. The root is not checked against the bytes. A private deal needs one piece per replica. A public-pin deal needs exactly one piece. Archive deals are refused. Without --node the command prints the sign document and does not submit it.
| Flag | Default | Description |
|---|---|---|
--account-number | 0 | Account number, when not read from --node |
--chain-id | — | Chain id [required] |
--class | — | private or public-pin [required] |
--duration-epochs | 0 | Deal length in epochs [required] |
--fee | — | Fee in norama [required] |
--gas | 0 | Gas limit [required] |
--granter | — | Account whose deal allowance pays, when the signer is the grantee |
--node | — | Chain REST API, for example http://127.0.0.1:31003; the command returns once the transaction is in a block, and fails if the block refuses it |
--nonce | — | 32-byte deal nonce hex [required] |
--onion-network | — | Start a Tor client for this Orama Tor network file (tor-network.json) and submit through it; without --onion a validator onion from the file is picked at random ($ORAMA_ONION_NETWORK) |
--onion-socks | — | Tor SOCKS5 address for --onion, a loopback host:port (default 127.0.0.1:9050, $ORAMA_ONION_SOCKS) |
--onion-tor | tor | The tor binary --onion-network starts |
--onion | — | Submit through this validator onion service (addr.onion[:port]) over Tor instead of --node; never falls back to the clearnet ($ORAMA_CHAIN_ONION) |
--piece | — | Piece as <64-hex-root>:<bytes> [required] |
--price | — | Price per epoch per replica, in norama [required] |
--pubkey | — | Compressed secp256k1 pubkey hex of the signing account |
--repair-delegate | — | Repair delegate id |
--replicas | 3 | Replica count |
--sequence | 0 | Account sequence, when not read from --node |
--signer | — | Signing account (orama1...) [required] |
orama storage decline
Decline an assigned storage slot
orama storage decline [flags]
Decline one slot of a deal. The signer is the node's hot key. Without --node the command prints the sign document and does not submit it.
| Flag | Default | Description |
|---|---|---|
--account-number | 0 | Account number, when not read from --node |
--chain-id | — | Chain id [required] |
--deal-id | 0 | Deal id [required] |
--fee | — | Fee in norama [required] |
--gas | 0 | Gas limit [required] |
--id | — | Node id [required] |
--node | — | Chain REST API, for example http://127.0.0.1:31003; the command returns once the transaction is in a block, and fails if the block refuses it |
--onion-network | — | Start a Tor client for this Orama Tor network file (tor-network.json) and submit through it; without --onion a validator onion from the file is picked at random ($ORAMA_ONION_NETWORK) |
--onion-socks | — | Tor SOCKS5 address for --onion, a loopback host:port (default 127.0.0.1:9050, $ORAMA_ONION_SOCKS) |
--onion-tor | tor | The tor binary --onion-network starts |
--onion | — | Submit through this validator onion service (addr.onion[:port]) over Tor instead of --node; never falls back to the clearnet ($ORAMA_CHAIN_ONION) |
--pubkey | — | Compressed secp256k1 pubkey hex of the signing account |
--reason | — | Why the slot is declined |
--sequence | 0 | Account sequence, when not read from --node |
--signer | — | Signing account (orama1...) [required] |
--slot | 0 | Slot index |
orama storage extend
Add epochs to a storage deal
orama storage extend [flags]
Add epochs to a user deal. Without --node the command prints the sign document and does not submit it.
| Flag | Default | Description |
|---|---|---|
--account-number | 0 | Account number, when not read from --node |
--chain-id | — | Chain id [required] |
--deal-id | 0 | Deal id [required] |
--extra-epochs | 0 | Epochs to add [required] |
--fee | — | Fee in norama [required] |
--gas | 0 | Gas limit [required] |
--node | — | Chain REST API, for example http://127.0.0.1:31003; the command returns once the transaction is in a block, and fails if the block refuses it |
--onion-network | — | Start a Tor client for this Orama Tor network file (tor-network.json) and submit through it; without --onion a validator onion from the file is picked at random ($ORAMA_ONION_NETWORK) |
--onion-socks | — | Tor SOCKS5 address for --onion, a loopback host:port (default 127.0.0.1:9050, $ORAMA_ONION_SOCKS) |
--onion-tor | tor | The tor binary --onion-network starts |
--onion | — | Submit through this validator onion service (addr.onion[:port]) over Tor instead of --node; never falls back to the clearnet ($ORAMA_CHAIN_ONION) |
--pubkey | — | Compressed secp256k1 pubkey hex of the signing account |
--sequence | 0 | Account sequence, when not read from --node |
--signer | — | Signing account (orama1...) [required] |
orama storage get
Fetch and open a private file from its providers
orama storage get [flags]
Fetch the first slot of a deal that a provider serves with the on-chain piece root, strip its slot layer, and decrypt it. A wrong storage key or repair seed fails and writes nothing.
| Flag | Default | Description |
|---|---|---|
--deal-id | 0 | Deal id |
--out | — | Plaintext output file |
--repair-seed-file | — | File holding the repair seed, hex, at least 32 bytes, mode 0600 |
--rpc | — | oramad CometBFT RPC, for example http://127.0.0.1:31001 |
--storage-key-file | — | File holding the orama-storage-v1 key from RootWallet (never the wallet seed), hex, exactly 32 bytes, mode 0600 |
orama storage grant
Grant a cluster a capped deal allowance
orama storage grant [flags]
Grant a deal allowance to another account. The grant is not SDK authz. It caps spend, piece size, duration, and replica count. Without --node the command prints the sign document and does not submit it.
| Flag | Default | Description |
|---|---|---|
--account-number | 0 | Account number, when not read from --node |
--chain-id | — | Chain id [required] |
--expiry-epoch | 0 | Epoch after which the grant is dead |
--fee | — | Fee in norama [required] |
--gas | 0 | Gas limit [required] |
--grantee | — | Grantee account (orama1...) [required] |
--max-duration-epochs | 0 | Longest deal the grant allows [required] |
--max-piece-bytes | 0 | Largest piece the grant allows [required] |
--node | — | Chain REST API, for example http://127.0.0.1:31003; the command returns once the transaction is in a block, and fails if the block refuses it |
--onion-network | — | Start a Tor client for this Orama Tor network file (tor-network.json) and submit through it; without --onion a validator onion from the file is picked at random ($ORAMA_ONION_NETWORK) |
--onion-socks | — | Tor SOCKS5 address for --onion, a loopback host:port (default 127.0.0.1:9050, $ORAMA_ONION_SOCKS) |
--onion-tor | tor | The tor binary --onion-network starts |
--onion | — | Submit through this validator onion service (addr.onion[:port]) over Tor instead of --node; never falls back to the clearnet ($ORAMA_CHAIN_ONION) |
--period-epochs | 0 | Epochs in one spend period |
--pubkey | — | Compressed secp256k1 pubkey hex of the signing account |
--replicas | 3 | Exact replica count a deal must use |
--sequence | 0 | Account sequence, when not read from --node |
--signer | — | Granter account (orama1...) [required] |
--spend-limit | — | Spend limit in norama [required] |
orama storage open
Open one sealed storage slot
orama storage open [flags]
Open one slot file written by seal. A wrong storage key, repair seed, or slot fails and writes nothing.
| Flag | Default | Description |
|---|---|---|
--in | — | Sealed slot file |
--nonce | — | Deal nonce, 32 bytes hex |
--out | — | Plaintext output file |
--repair-seed-file | — | File holding the repair seed, hex, at least 32 bytes, mode 0600 |
--slot | 0 | Slot index |
--storage-key-file | — | File holding the orama-storage-v1 key from RootWallet (never the wallet seed), hex, exactly 32 bytes, mode 0600 |
orama storage prove
Submit storage challenge proofs
orama storage prove [flags]
Submit one or more challenge proofs for a storage node. --file is a JSON array. Each object has deal_id, slot, leaf_index, leaf, and siblings. leaf and siblings are hex. The leaf is 1024 bytes and each sibling is 32 bytes. The command does not choose the challenged leaf and does not read the stored piece. Without --node it prints the sign document and does not submit it.
| Flag | Default | Description |
|---|---|---|
--account-number | 0 | Account number, when not read from --node |
--chain-id | — | Chain id [required] |
--fee | — | Fee in norama [required] |
--file | — | JSON file of proofs [required] |
--gas | 0 | Gas limit [required] |
--id | — | Node id [required] |
--node | — | Chain REST API, for example http://127.0.0.1:31003; the command returns once the transaction is in a block, and fails if the block refuses it |
--onion-network | — | Start a Tor client for this Orama Tor network file (tor-network.json) and submit through it; without --onion a validator onion from the file is picked at random ($ORAMA_ONION_NETWORK) |
--onion-socks | — | Tor SOCKS5 address for --onion, a loopback host:port (default 127.0.0.1:9050, $ORAMA_ONION_SOCKS) |
--onion-tor | tor | The tor binary --onion-network starts |
--onion | — | Submit through this validator onion service (addr.onion[:port]) over Tor instead of --node; never falls back to the clearnet ($ORAMA_CHAIN_ONION) |
--pubkey | — | Compressed secp256k1 pubkey hex of the signing account |
--sequence | 0 | Account sequence, when not read from --node |
--signer | — | Hot key account (orama1...) [required] |
orama storage put
Upload sealed slots to the providers a deal assigned
orama storage put [flags]
Upload the slot-N files written by seal to the providers the chain assigned. The deal must already exist (orama storage create, with the roots seal printed). Every file's piece root is checked against its slot on chain before any byte is sent, so a wrong file or a wrong deal uploads nothing. The command waits for each slot to be assigned and for its provider to accept the root. The provider endpoint is the node's first http(s) endpoint in x/nodes.
| Flag | Default | Description |
|---|---|---|
--deal-id | 0 | Deal id |
--dir | — | Directory holding slot-N files from seal |
--rpc | — | oramad CometBFT RPC, for example http://127.0.0.1:31001 |
--wait | 5m0s | How long to wait for assignment and acceptance |
orama storage repair
Restore the replicas a deal lost, from the providers that still hold them
orama storage repair [flags]
Rebuild every slot of a deal that the chain assigned to a new provider but that no provider has accepted yet, using the repair seed. For each such slot the command fetches an accepted replica from another provider, checks it against its on-chain piece root, strips that slot's outer layer, applies the new slot's layer, checks the result against the new slot's on-chain root, and uploads it to the new provider. The plaintext is never recovered. A repair seed that is not the deal's makes the result miss the root, and nothing is uploaded. A deal that names a repair delegate is repaired by the delegate while you are away. Without one, the deal runs with fewer replicas until you run this.
| Flag | Default | Description |
|---|---|---|
--deal-id | 0 | Deal id |
--repair-seed-file | — | File holding the repair seed, hex, at least 32 bytes, mode 0600 |
--rpc | — | oramad CometBFT RPC, for example http://127.0.0.1:31001 |
--wait | 5m0s | How long to wait for each new provider to read its assignment |
orama storage revoke
Revoke a deal allowance
orama storage revoke [flags]
Revoke a deal allowance. Without --node the command prints the sign document and does not submit it.
| Flag | Default | Description |
|---|---|---|
--account-number | 0 | Account number, when not read from --node |
--chain-id | — | Chain id [required] |
--fee | — | Fee in norama [required] |
--gas | 0 | Gas limit [required] |
--grantee | — | Grantee account (orama1...) [required] |
--node | — | Chain REST API, for example http://127.0.0.1:31003; the command returns once the transaction is in a block, and fails if the block refuses it |
--onion-network | — | Start a Tor client for this Orama Tor network file (tor-network.json) and submit through it; without --onion a validator onion from the file is picked at random ($ORAMA_ONION_NETWORK) |
--onion-socks | — | Tor SOCKS5 address for --onion, a loopback host:port (default 127.0.0.1:9050, $ORAMA_ONION_SOCKS) |
--onion-tor | tor | The tor binary --onion-network starts |
--onion | — | Submit through this validator onion service (addr.onion[:port]) over Tor instead of --node; never falls back to the clearnet ($ORAMA_CHAIN_ONION) |
--pubkey | — | Compressed secp256k1 pubkey hex of the signing account |
--sequence | 0 | Account sequence, when not read from --node |
--signer | — | Granter account (orama1...) [required] |
orama storage rewrap
Rebuild one storage slot from another slot's ciphertext
orama storage rewrap [flags]
Turn one sealed slot into another slot of the same deal. The command uses the repair seed only. It does not recover the plaintext and it does not upload the result.
| Flag | Default | Description |
|---|---|---|
--from | 0 | Slot the input file belongs to |
--in | — | Source slot file |
--nonce | — | Deal nonce, 32 bytes hex |
--out | — | Destination slot file |
--repair-seed-file | — | File holding the repair seed, hex, at least 32 bytes, mode 0600 |
--to | 0 | Slot to write |
orama storage seal
Seal a file into one ciphertext per storage slot
orama storage seal [flags]
Seal a private file before a storage deal. The file key is wrapped under the owner's orama-storage-v1 key from RootWallet. Each slot gets a different ciphertext. The command writes slot-N files and prints each piece root. It does not upload the bytes and it does not submit a deal.
| Flag | Default | Description |
|---|---|---|
--in | — | Plaintext file |
--nonce | — | Deal nonce, 32 bytes hex |
--out-dir | — | Directory for slot-N files |
--repair-seed-file | — | File holding the repair seed, hex, at least 32 bytes, mode 0600 |
--replicas | 3 | Number of slots, 1 to 32 |
--storage-key-file | — | File holding the orama-storage-v1 key from RootWallet (never the wallet seed), hex, exactly 32 bytes, mode 0600 |