Skills
Chapter 11 of 20
Juice accounting — the cost of computation and bandwidth on the CVM.
2 minutes · 386 words · 6 sections
Juice prices computation and bandwidth. It is a flow: consumed and paid per
transaction, never held. Storage is priced separately — see the memory skill.
Normative spec: https://docs.convex.world/docs/cad/juice.
Juice Fees = Juice Consumed × Juice Price
Juice Consumed = Transaction Size Cost + Σ(cost of each operation executed)
Transaction Size Cost = TRANSACTION_PER_BYTE × storage size of the transactionTRANSACTION_PER_BYTE is 20, so the size of the submitted transaction is
itself a cost, independent of what it does. Compact transaction source is
cheaper source.
Every transaction carries a juice allowance:
On a :JUICE failure the origin is charged the full allowance and every
state change is rolled back. Running out is not free — it is the most
expensive way for a transaction to fail. When execution cost is uncertain,
estimate against a local network before submitting.
Juice price lives in the CVM state and is readable from CVM code as
*juice-price*. It moves with network load:
JUICE_PER_SECOND (100,000,000)The genesis price is 2 and the scale factor is 1.125. Governance may update the scale factor and throughput constant.
This is the cryptoeconomic defence: sustaining an attack means paying exponentially rising prices, and a burst while prices are low can only delay confirmation, not exclude legitimate transactions.
If you add a CVM op or runtime function, it needs a juice cost.
:JUICE if it is not there.That ordering is a security property, not an optimisation. If an attacker can trigger O(n) work having committed less than O(n) of juice, the asymmetry is a denial-of-service vector. Cost should track an upper bound on compute time, storage size or bandwidth — whichever dominates.
A transaction short of memory allowance can buy memory from the pool using its
remaining juice — so juice exhaustion can surface as a :MEMORY failure
and vice versa. See the memory skill for that interaction.
Install this repository
npx skills add Convex-Dev/convexSkills install per repository, not per chapter — the CLI has no documented per-skill form, so we do not print one.
Juice accounting — the cost of computation and bandwidth on the CVM. Use when reasoning about transaction execution cost, diagnosing a :JUICE failure, or pricing a new CVM operation.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
develop, last pushed 8 August 2026.SKILL.md, not by matching a directory convention. One layout observed: .claude/skills/*/SKILL.md.h1 and no skipped levels:/Convex-Dev/convex.md, and each chapter at its own .md URL.