Table of contents Introduction Design Motivation Background Design goals Design overview Consensus level Overview Schema Data types State Operations Scripting Schema hierarchy Contract state Contract operations State transition State generation Genesis State extension Layer 1 anchoring Deterministic bitcoin commitments Opret Tapret Single-use-seals Multi-protocol commitments State transition bundles System libraries Application level Interfaces Identifiers Invoices Working with PSBTs RGB containers Consignments Disclosures Data attachments Developing for RGB Overview Schema development Breaking things Annex Governance History & acknowledgements GLOSSARY OF TERMS