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

text
orama storage

Subcommands: accept, create, decline, extend, get, grant, open, prove, put, repair, revoke, rewrap, seal

orama storage accept

Accept an assigned storage slot

text
orama storage accept [flags]
text
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.
FlagDefaultDescription
--account-number0Account number, when not read from --node
--chain-id—Chain id [required]
--deal-id0Deal id [required]
--fee—Fee in norama [required]
--gas0Gas 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-tortorThe 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
--sequence0Account sequence, when not read from --node
--signer—Signing account (orama1...) [required]
--slot0Slot index

orama storage create

Open a private or public-pin storage deal

text
orama storage create [flags]
text
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.
FlagDefaultDescription
--account-number0Account number, when not read from --node
--chain-id—Chain id [required]
--class—private or public-pin [required]
--duration-epochs0Deal length in epochs [required]
--fee—Fee in norama [required]
--gas0Gas 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-tortorThe 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 &lt;64-hex-root>:&lt;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
--replicas3Replica count
--sequence0Account sequence, when not read from --node
--signer—Signing account (orama1...) [required]

orama storage decline

Decline an assigned storage slot

text
orama storage decline [flags]
text
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.
FlagDefaultDescription
--account-number0Account number, when not read from --node
--chain-id—Chain id [required]
--deal-id0Deal id [required]
--fee—Fee in norama [required]
--gas0Gas 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-tortorThe 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
--sequence0Account sequence, when not read from --node
--signer—Signing account (orama1...) [required]
--slot0Slot index

orama storage extend

Add epochs to a storage deal

text
orama storage extend [flags]
text
Add epochs to a user deal. Without --node the command prints the sign document and does not submit it.
FlagDefaultDescription
--account-number0Account number, when not read from --node
--chain-id—Chain id [required]
--deal-id0Deal id [required]
--extra-epochs0Epochs to add [required]
--fee—Fee in norama [required]
--gas0Gas 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-tortorThe 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
--sequence0Account sequence, when not read from --node
--signer—Signing account (orama1...) [required]

orama storage get

Fetch and open a private file from its providers

text
orama storage get [flags]
text
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.
FlagDefaultDescription
--deal-id0Deal 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

text
orama storage grant [flags]
text
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.
FlagDefaultDescription
--account-number0Account number, when not read from --node
--chain-id—Chain id [required]
--expiry-epoch0Epoch after which the grant is dead
--fee—Fee in norama [required]
--gas0Gas limit [required]
--grantee—Grantee account (orama1...) [required]
--max-duration-epochs0Longest deal the grant allows [required]
--max-piece-bytes0Largest 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-tortorThe 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-epochs0Epochs in one spend period
--pubkey—Compressed secp256k1 pubkey hex of the signing account
--replicas3Exact replica count a deal must use
--sequence0Account 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

text
orama storage open [flags]
text
Open one slot file written by seal.

A wrong storage key, repair seed, or slot fails and writes nothing.
FlagDefaultDescription
--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
--slot0Slot 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

text
orama storage prove [flags]
text
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.
FlagDefaultDescription
--account-number0Account number, when not read from --node
--chain-id—Chain id [required]
--fee—Fee in norama [required]
--file—JSON file of proofs [required]
--gas0Gas 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-tortorThe 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
--sequence0Account sequence, when not read from --node
--signer—Hot key account (orama1...) [required]

orama storage put

Upload sealed slots to the providers a deal assigned

text
orama storage put [flags]
text
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.
FlagDefaultDescription
--deal-id0Deal id
--dir—Directory holding slot-N files from seal
--rpc—oramad CometBFT RPC, for example http://127.0.0.1:31001
--wait5m0sHow long to wait for assignment and acceptance

orama storage repair

Restore the replicas a deal lost, from the providers that still hold them

text
orama storage repair [flags]
text
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.
FlagDefaultDescription
--deal-id0Deal 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
--wait5m0sHow long to wait for each new provider to read its assignment

orama storage revoke

Revoke a deal allowance

text
orama storage revoke [flags]
text
Revoke a deal allowance. Without --node the command prints the sign document and does not submit it.
FlagDefaultDescription
--account-number0Account number, when not read from --node
--chain-id—Chain id [required]
--fee—Fee in norama [required]
--gas0Gas 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-tortorThe 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
--sequence0Account sequence, when not read from --node
--signer—Granter account (orama1...) [required]

orama storage rewrap

Rebuild one storage slot from another slot's ciphertext

text
orama storage rewrap [flags]
text
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.
FlagDefaultDescription
--from0Slot 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
--to0Slot to write

orama storage seal

Seal a file into one ciphertext per storage slot

text
orama storage seal [flags]
text
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.
FlagDefaultDescription
--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
--replicas3Number 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