Failures
Every condition under which a Pebble builtin, prelude method, or stdlib function aborts the script. Aborting means the entire transaction is rejected — there is no partial state on-chain. Use this catalog when generating defensive code: validate inputs before calling, or arrange the call so failure is unreachable.
Laws and Invariants
Algebraic properties you can rely on when generating Pebble code or its tests. Every law below holds for all values of its free variables unless a precondition is stated.
Pitfalls
Common mistakes when writing Pebble, grouped by symptom. If the code you're generating matches one of these shapes, replace it with the safer form.
Cost and Complexity
On-chain Cardano scripts are bounded by a CPU and memory budget (exUnits). A transaction whose validators exceed the budget is rejected — there is no "ran slowly" outcome. When generating Pebble code, you have to keep cost in your head from the first line.