Update a frombox
See Fromboxes for
why postage pricing matters. This page covers the sithbit frombox update
command.
sithbit frombox update <from> [required_postage] \
[--keypair <keypair>] \
[--skip-preflight]
Updating a frombox sets its per-stamp price — the
required_postage, in lamports, that one email from <from> to you costs.
Since every send burns exactly one stamp, this single number is the price
of a message from that sender.
Unlike buying stamps, which anyone may run, only the recipient can update the price. The command signs with the recipient (“to”) keypair, and the program checks that signer against the mailbox owner. That same signer requirement is what lets you price a sender before their frombox even exists — see Setting a price before the frombox exists.
Arguments and flags
<from>— the sender’s “from” address (alias, wallet address, or keypair path). Hashed client-side; only the hash reaches the chain.[required_postage]— the new per-stamp price in lamports. Optional; defaults to 1 SOL (1000000000lamports) when omitted.--keypair <keypair>(short-k) — the recipient’s keypair; defaults to the CLI’s configured key. This key must be the mailbox owner.--skip-preflight(short-s) — skip the RPC pre-flight simulation.
There is no --stamps flag here — updating only changes the price, never
the stamp balance. Prices are per-stamp and take effect on the next stamp
purchase; stamps already bought keep the value they were funded at.
Examples
Lower a trusted sender’s price to 0.1 SOL (100000000 lamports):
sithbit frombox update [email protected] 100000000
Update frombox address 7XkQ…Qp9 for <From:[email protected] To:9aBc…prj> ...
Required postage set to 100000000 lamports
see https://explorer.solana.com/tx/…?cluster=devnet
Reset a sender back to the 1 SOL default by omitting the amount:
sithbit frombox update [email protected]
You can also raise the price above the mailbox’s own default — there is no CLI-side maximum.
Setting a price before the frombox exists
You do not have to wait for a frombox to exist before pricing it. When you run
frombox update against a (sender, you) pair that has no frombox yet, the
CLI opens one in the same transaction: it checks the chain for the frombox
PDA and, finding it
absent, submits [CreateFrombox { stamps: 0 }, UpdateFrombox { … }] — a
genuine two-instruction transaction that creates the empty frombox and then
writes your price onto it. When the frombox already exists it behaves as
before: a lone UpdateFrombox.
The frombox starts at your price with zero stamps, so the sender still can’t reach you until it holds at least one, funded by either side via Add stamps. See the anti-spam lever for why this stampless create is allowed only for the recipient.
On-chain effect
The UpdateFrombox instruction re-derives the frombox
PDA from the
recipient address and the from-hash, verifies the frombox and the
recipient’s mailbox both exist and are program-owned, requires the recipient
to sign, and overwrites the frombox’s required_postage field. No lamports
move — this is purely a price change; funding the frombox is
Add stamps’ job.
When the frombox does not exist yet, the CLI prepends a
CreateFrombox { stamps: 0 } (the owner exception
above), so the same transaction allocates the account and funds only its
rent-exemption reserve — no postage, since it carries zero stamps — before the
UpdateFrombox sets the price.