{"version":1,"pages":[{"id":"LsXpLIx7m5I47n7DbmAA","title":"What is Urbit?","pathname":"/","siteSpaceId":"sitesp_q3yJh","description":"Urbit docs site. Urbit ID, Urbit OS, Hoon, Nock, and self-hosting."},{"id":"0xNfhn6EVkRkuK6r8d0C","title":"Get on Urbit","pathname":"/get-on-urbit","siteSpaceId":"sitesp_q3yJh","description":"Step-by-step guide to getting started with Urbit, including obtaining an Urbit ID, downloading they keyfile, installing the runtime, and booting your first Urbit OS server."},{"id":"aFu2npQksEi47ccPhIhE","title":"Contents","pathname":"/build-on-urbit/contents","siteSpaceId":"sitesp_q3yJh","description":"Overview of development resources for building on Urbit, including courses for learning Hoon, app development guides, core development, runtime development, and tools for Urbit developers.","breadcrumbs":[{"label":"Build on Urbit"}]},{"id":"DsMKQKxm0PrFceAXI4bN","title":"Environment Setup","pathname":"/build-on-urbit/environment","siteSpaceId":"sitesp_q3yJh","description":"Developer environment setup guide for Urbit development, including text editor configuration, development ship setup, and project organization best practices.","breadcrumbs":[{"label":"Build on Urbit"}]},{"id":"YIAyhkGX61aEHpBfG6Of","title":"Hoon School","pathname":"/build-on-urbit/hoon-school","siteSpaceId":"sitesp_q3yJh","description":"Beginner's course for learning Hoon, Urbit's functional programming language, with explanations, exercises, and tutorials for developers at all levels.","breadcrumbs":[{"label":"Build on Urbit"}]},{"id":"U8697M2TmX47lIlx0Xqy","title":"1. Hoon Syntax","pathname":"/build-on-urbit/hoon-school/b-syntax","siteSpaceId":"sitesp_q3yJh","description":"Introduction to Hoon programming language syntax, covering basic elements like nouns (atoms and cells), runes (operators), auras (atom types), and fundamental control flow structures.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"0ESXpBh9fX2W8XTlvSok","title":"2. Azimuth (Urbit ID)","pathname":"/build-on-urbit/hoon-school/c-azimuth","siteSpaceId":"sitesp_q3yJh","description":"Overview of Urbit ID (Azimuth) hierarchical address space, including galaxy, star, planet, moon, and comet identity types, their naming conventions, and sponsor relationships.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"tChmwyovByLW54H2XlMj","title":"3. Gates (Functions)","pathname":"/build-on-urbit/hoon-school/d-gates","siteSpaceId":"sitesp_q3yJh","description":"Learn to create and use gates (functions) in Hoon, including deferred computations, type specification, file organization, generators, and irregular syntactic sugar forms.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"qtlD8LscyBNrEZrtofR5","title":"4. Molds (Types)","pathname":"/build-on-urbit/hoon-school/e-types","siteSpaceId":"sitesp_q3yJh","description":"Guide to Hoon's type system, covering atoms with auras, molds for data structures, type-checking and type inference, core variance, nesting relationships, and type safety.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"aEFmvXkbyySZlyGDM12l","title":"5. Cores","pathname":"/build-on-urbit/hoon-school/f-cores","siteSpaceId":"sitesp_q3yJh","description":"Introduction to cores, Hoon's fundamental data structure that separates computation from data. Covers traps for recursion, core creation with arms and samples.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"YXtcTukqGQ53kvy3dela","title":"6. Trees and Addressing","pathname":"/build-on-urbit/hoon-school/g-trees","siteSpaceId":"sitesp_q3yJh","description":"Understanding Urbit's binary tree data representation, tree addressing systems, data location and evaluation, the `+list` mold, and standard library operations for working with tree-structured data.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"CfmV2GeDKX7eQuHFUe6H","title":"7. Libraries","pathname":"/build-on-urbit/hoon-school/h-libraries","siteSpaceId":"sitesp_q3yJh","description":"Guide to creating, importing, and using libraries in Hoon programming. Covers library imports with the /+ faslus rune, helper cores, composition runes, and best practices for code organization.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"eX0To9Mdb4IYhgRaqpzu","title":"8. Testing Code","pathname":"/build-on-urbit/hoon-school/i-testing","siteSpaceId":"sitesp_q3yJh","description":"Testing Hoon code, including unit testing frameworks, fences for runtime assertions, debugging strategies, and best practices for building reliable and maintainable software.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"zVEUX8DF8dbd8rBdZY6E","title":"9. Text Processing I","pathname":"/build-on-urbit/hoon-school/j-stdlib-text","siteSpaceId":"sitesp_q3yJh","description":"Introduction to text representation in Hoon, covering cords, tapes, knots, terms, text manipulation tools, and %say generators for command-line argument processing.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"AifR48X5qZg8eu9lkwTV","title":"10. Cores and Doors","pathname":"/build-on-urbit/hoon-school/k-doors","siteSpaceId":"sitesp_q3yJh","description":"Advanced core concepts including doors (gate-building gates), doors as parametrized cores with sample data, working with `+map`s (key-value stores), and stateful computation patterns.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"cfj6K6JNhhViIzzBiokd","title":"11. Data Structures","pathname":"/build-on-urbit/hoon-school/l-struct","siteSpaceId":"sitesp_q3yJh","description":"Guide to Hoon data structures including trees, sets, jars, and jugs. Covers mold builders, type system handling, compiler type checking, and practical manipulation operations.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"w25DRCAKlItOOi8DsIGs","title":"12. Type Checking","pathname":"/build-on-urbit/hoon-school/m-typecheck","siteSpaceId":"sitesp_q3yJh","description":"Detailed examination of Hoon's type checking system, covering type casting, type inference, compile-time verification, mold application, and debugging nest-fail errors in complex type hierarchies.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"oO0PZBuDJancJD3dbc8o","title":"13. Conditional Logic","pathname":"/build-on-urbit/hoon-school/n-logic","siteSpaceId":"sitesp_q3yJh","description":"Guide to conditional logic in Hoon, covering loobean (boolean) values, logical operators (AND, OR, NOT), conditional branching, switch statements, and pattern matching.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"y76inMoAvlGduyisQcgF","title":"14. Subject-Oriented Programming","pathname":"/build-on-urbit/hoon-school/o-subject","siteSpaceId":"sitesp_q3yJh","description":"Guide to subject-oriented programming in Hoon, covering how expressions are evaluated within subjects, core composition, state management, deferred computations, and scrying local data.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"xPnr9mNsciVWdrG6eQja","title":"15. Text Processing II","pathname":"/build-on-urbit/hoon-school/p-stdlib-io","siteSpaceId":"sitesp_q3yJh","description":"Advanced text processing in Hoon, covering text conversions, formatted text with $tanks, %ask generators, I/O operations, and practical tools for web data, JSON, and output formatting.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"HSVA8jGuBAwS6pZnzuDc","title":"16. Functional Programming","pathname":"/build-on-urbit/hoon-school/q-func","siteSpaceId":"sitesp_q3yJh","description":"Functional programming concepts in Hoon, including gate manipulation, currying and binding samples, changing arity, function composition with cork and corl, and working with lists.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"VsHTjZKht1pVO7IgEgO8","title":"17. Text Processing III","pathname":"/build-on-urbit/hoon-school/q2-parsing","siteSpaceId":"sitesp_q3yJh","description":"Guide to text parsing in Hoon, covering parser fundamentals, rule building, parsing techniques with scanning and RegEx-like operations, and building complex parsers.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"RhVZnmqRpHq22klZJrPb","title":"18. Generic and Variant Cores","pathname":"/build-on-urbit/hoon-school/r-metals","siteSpaceId":"sitesp_q3yJh","description":"Advanced core theory. Genericity with wet gates and cores, type polymorphism, dry vs wet core behavior, parametric polymorphism, and compile-time vs. runtime type-checking.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"W4KkTtk2d8ilfPE2ltjR","title":"19. Mathematics","pathname":"/build-on-urbit/hoon-school/s-math","siteSpaceId":"sitesp_q3yJh","description":"Guide to mathematical operations in Hoon beyond unsigned integers, covering floating-point arithmetic, signed integers, modular arithmetic, bitwise operations, and IEEE 754.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Hoon School"}]},{"id":"iWttJvKwz6kZZyLrnbTl","title":"App School I","pathname":"/build-on-urbit/app-school","siteSpaceId":"sitesp_q3yJh","description":"Guide to building Gall agents on Urbit.","breadcrumbs":[{"label":"Build on Urbit"}]},{"id":"mDuqesLGveApyw0CR9fZ","title":"1. Arvo","pathname":"/build-on-urbit/app-school/1-arvo","siteSpaceId":"sitesp_q3yJh","description":"Introduction to Arvo, Urbit's operating system and kernel.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School I"}]},{"id":"zBE6mlvSkr7MKkZath8F","title":"2. The Agent Core","pathname":"/build-on-urbit/app-school/2-agent","siteSpaceId":"sitesp_q3yJh","description":"Guide to Gall agent structure and core concepts.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School I"}]},{"id":"rpgOTTPxF6iKgfJTkYpE","title":"3. Imports and Aliases","pathname":"/build-on-urbit/app-school/3-imports-and-aliases","siteSpaceId":"sitesp_q3yJh","description":"Importing libraries, virtual arms, core composition, and boilerplate patterns.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School I"}]},{"id":"FgRToOWSEHWfdhyLU2Ff","title":"4. Lifecycle","pathname":"/build-on-urbit/app-school/4-lifecycle","siteSpaceId":"sitesp_q3yJh","description":"Agent lifecycle management: state initialization, import and export, versioned state types, and upgrade procedures.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School I"}]},{"id":"sTSq1nzCC2d6oXjuk95l","title":"5. Cards","pathname":"/build-on-urbit/app-school/5-cards","siteSpaceId":"sitesp_q3yJh","description":"Gall agent effects, requests, responses, and subscription management.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School I"}]},{"id":"pqX1CMYN7rMV3CbhHKbv","title":"6. Pokes","pathname":"/build-on-urbit/app-school/6-pokes","siteSpaceId":"sitesp_q3yJh","description":"Handling one-off messages (pokes) in Gall agents.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School I"}]},{"id":"en4eroCZagSR97FZ61bK","title":"7. Structures and Marks","pathname":"/build-on-urbit/app-school/7-sur-and-marks","siteSpaceId":"sitesp_q3yJh","description":"Type definitions and data conversion for Gall agents.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School I"}]},{"id":"ECZnjvNTN8UnVckRrehv","title":"8. Subscriptions","pathname":"/build-on-urbit/app-school/8-subscriptions","siteSpaceId":"sitesp_q3yJh","description":"Gall agent subscription management.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School I"}]},{"id":"74IaPYCLMdIKYZx9bFZD","title":"9. Vanes","pathname":"/build-on-urbit/app-school/9-vanes","siteSpaceId":"sitesp_q3yJh","description":"Guide to interacting with Arvo vanes (kernel modules) from Gall agents.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School I"}]},{"id":"RWZU62r9T1sZteIWZDYp","title":"10. Scries","pathname":"/build-on-urbit/app-school/10-scry","siteSpaceId":"sitesp_q3yJh","description":"Guide to Gall agent scry functionality.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School I"}]},{"id":"ctc2TSAD1N3n7Df5xrTk","title":"11. Failure","pathname":"/build-on-urbit/app-school/11-fail","siteSpaceId":"sitesp_q3yJh","description":"Guide to Gall agent error handling through the +on-fail arm and helper core patterns.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School I"}]},{"id":"P0xvPxhDMnxP3UtrX7Eo","title":"12. Next Steps","pathname":"/build-on-urbit/app-school/12-next-steps","siteSpaceId":"sitesp_q3yJh","description":"End of App School I.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School I"}]},{"id":"rsYPjYuMXilj6t7Q9ReO","title":"Appendix: Types","pathname":"/build-on-urbit/app-school/types","siteSpaceId":"sitesp_q3yJh","description":"Explanation of types commonly used in Gall agents. Vase, mark, cage, quip, path, wire.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School I"}]},{"id":"RgzkfSt9HhlltYh0KkeK","title":"App School II (Full-Stack)","pathname":"/build-on-urbit/app-school-full-stack","siteSpaceId":"sitesp_q3yJh","description":"Walkthrough for building a full-stack Urbit application with a Gall backend and React frontend, demonstrating how to create complete web applications on Urbit.","breadcrumbs":[{"label":"Build on Urbit"}]},{"id":"I1X7B5ye4vN2IwRhaxwR","title":"1. Types","pathname":"/build-on-urbit/app-school-full-stack/1-types","siteSpaceId":"sitesp_q3yJh","description":"First step in building a full-stack Urbit app. Defining data structures in /sur files including basic types, action commands, update events, and state organization.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School II (Full-Stack)"}]},{"id":"6abQot7RnEetGfW07PfF","title":"2. Agent","pathname":"/build-on-urbit/app-school-full-stack/2-agent","siteSpaceId":"sitesp_q3yJh","description":"Building the Gall agent backend for a full-stack app including imports, state management, poke handling, subscription patterns, and scry endpoints for data retrieval.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School II (Full-Stack)"}]},{"id":"swIr7Gmqm4OLjecanFc3","title":"3. JSON","pathname":"/build-on-urbit/app-school-full-stack/3-json","siteSpaceId":"sitesp_q3yJh","description":"Building JSON conversion libraries for full-stack Urbit apps covering +enjs and +dejs functions for encoding/decoding data, mark conversion workflows, and bridging Gall agents with web frontends.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School II (Full-Stack)"}]},{"id":"pscisgOuwQIoIQBl3Egx","title":"4. Marks","pathname":"/build-on-urbit/app-school-full-stack/4-marks","siteSpaceId":"sitesp_q3yJh","description":"Creating mark files for full-stack Urbit apps. Conversion methods between native types and JSON, defining +grow and +grab arms for custom type conversion logic.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School II (Full-Stack)"}]},{"id":"47qCxHyFULoVHrn3YBJL","title":"5. Eyre","pathname":"/build-on-urbit/app-school-full-stack/5-eyre","siteSpaceId":"sitesp_q3yJh","description":"Using Eyre, the HTTP server vane, in full-stack Urbit development. Covers the channel system for pokes and subscriptions, scry interface for data queries, and authentication mechanisms.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School II (Full-Stack)"}]},{"id":"aAtFLqVPcHO850CrRUG7","title":"6. React app setup","pathname":"/build-on-urbit/app-school-full-stack/6-react-setup","siteSpaceId":"sitesp_q3yJh","description":"Setting up React frontend for full-stack Urbit apps using the npm @urbit/create-landscape-app package, configuring @urbit/http-api for ship communication.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School II (Full-Stack)"}]},{"id":"YG8SjzvC9U1tZOzmHqvN","title":"7. React app logic","pathname":"/build-on-urbit/app-school-full-stack/7-app-logic","siteSpaceId":"sitesp_q3yJh","description":"React application logic for full-stack Urbit apps covering state management, ship communication patterns, subscription handling, poke operations, and data synchronization.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School II (Full-Stack)"}]},{"id":"d48K0dn9pvGoeP0atsex","title":"8. Desk and glob","pathname":"/build-on-urbit/app-school-full-stack/8-desk","siteSpaceId":"sitesp_q3yJh","description":"Building and deploying full-stack Urbit apps including desk configuration, kelvin versions, docket file for app metadata, glob creation for frontend assets, and publishing for distribution.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School II (Full-Stack)"}]},{"id":"ie5FaM5usr3agLRT73JE","title":"9. Summary","pathname":"/build-on-urbit/app-school-full-stack/9-final","siteSpaceId":"sitesp_q3yJh","description":"Summary and conclusion of the full-stack Urbit app tutorial with reference links for all covered topics including types, agents, JSON conversion, marks, Eyre, React frontend, and desk publishing.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"App School II (Full-Stack)"}]},{"id":"P1MXzCAZ4dNnS01D4spE","title":"Core Academy","pathname":"/build-on-urbit/core-academy","siteSpaceId":"sitesp_q3yJh","description":"Course for developers who have finished Hoon School to learn Arvo kernel development, covering each part of Arvo, Zuse, Hoon, and the runtime for core Urbit OS development.","breadcrumbs":[{"label":"Build on Urbit"}]},{"id":"oizaPtx8YWmGRXEP9wGK","title":"1. Evaluating Nock","pathname":"/build-on-urbit/core-academy/ca00","siteSpaceId":"sitesp_q3yJh","description":"Core Academy lesson on Nock evaluation covering all Nock rules 0-12, binary tree addressing, hints and jetting, scry operations, virtualized Nock with +mock, and the Urbit lifecycle function.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"5sme3JRLIkwIbJ8BI0uz","title":"2. Building Hoon","pathname":"/build-on-urbit/core-academy/ca01","siteSpaceId":"sitesp_q3yJh","description":"Core Academy lesson on the Hoon compiler covering vase-mode programming with +slap/+slop algebra, the compilation pipeline from text to AST to Nock, type system mechanics, and Ford file building.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"1VNlFQHhbZHZ5U1ZlWGE","title":"3. The Core Stack","pathname":"/build-on-urbit/core-academy/ca02","siteSpaceId":"sitesp_q3yJh","description":"Core Academy lesson on Urbit's core architecture. Subject-oriented programming, limb resolution mechanics, nested core structures, and the Hoon standard library organization.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"AKgxWvtLtskeeD28V5U4","title":"4. Arvo I: The Main Sequence","pathname":"/build-on-urbit/core-academy/ca03","siteSpaceId":"sitesp_q3yJh","description":"Core Academy lesson on Arvo's event handling architecture covering the main sequence, moves and events, ducts and wires, vane interactions, scry operations, and Arvo's ACID transaction guarantees.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"5kwLQXYAbMp3VNqAYk0G","title":"5. Arvo II: The Boot Sequence","pathname":"/build-on-urbit/core-academy/ca04","siteSpaceId":"sitesp_q3yJh","description":"Core Academy lesson on Arvo's boot sequence covering pill creation and loading, larval and adult phases, vane initialization, userspace bootstrapping, and the complete boot process.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"mKcCp1LWHSGXXnqIup4k","title":"6. Vere I: u3 and the Serf","pathname":"/build-on-urbit/core-academy/ca05","siteSpaceId":"sitesp_q3yJh","description":"Core Academy lesson on Vere runtime architecture covering the u3 noun system, king/serf processes, the Mars/Urth split, event log management, jet dashboard, and the Arvo/Vere interface.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"3xmtrTJZQC6rX2dxQbYR","title":"7. Vere II: The Loom","pathname":"/build-on-urbit/core-academy/ca06","siteSpaceId":"sitesp_q3yJh","description":"Core Academy lesson on Vere's memory management covering the loom allocator, noun memory layout, reference counting, structural sharing, the road system, metacircularity, paging, and snapshots.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"0U46YlSibdgMdbgiIcoB","title":"8. Vanes I: Behn, Dill, Kahn, Lick","pathname":"/build-on-urbit/core-academy/ca07","siteSpaceId":"sitesp_q3yJh","description":"Core Academy lesson on Arvo vanes covering the Behn timer vane, Dill terminal driver vane, Khan thread runner vane, Lick IPC vane.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"E4xFBnHp6BEH7wKtRCqV","title":"9. Vanes II: Ames","pathname":"/build-on-urbit/core-academy/ca08","siteSpaceId":"sitesp_q3yJh","description":"Core Academy lesson on Ames covering the encrypted peer-to-peer protocol, its packet structure, message flows, cryptographic operations, integration with Urbit ID, and the Fine remote scry protocol.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"POzZ7qqkqsVN9P60VLcS","title":"10. Vanes III: Eyre, Iris","pathname":"/build-on-urbit/core-academy/ca09","siteSpaceId":"sitesp_q3yJh","description":"Core Academy lesson on HTTP vanes covering the Eyre vane's HTTP server functionality, the Iris vane's HTTP client operations, web request/response patterns and authentication mechanisms.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"RQHe6DvnOkvk28fGLIIe","title":"11. Vanes IV: Clay","pathname":"/build-on-urbit/core-academy/ca10","siteSpaceId":"sitesp_q3yJh","description":"Description of Clay, Arvo's revision-controlled filesystem vane. Also covers the build system, marks, scry cares, %kiln.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"CWjXQspMPXeiFsPYrVrZ","title":"12. Vanes V: Gall and Userspace","pathname":"/build-on-urbit/core-academy/ca11","siteSpaceId":"sitesp_q3yJh","description":"Covers Gall, Arvo's userspace application framework vane, the agent type, running agents, and userspace software updates.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"LohpmId2SryI0qSgacQc","title":"13. Vanes VI: Khan, Lick","pathname":"/build-on-urbit/core-academy/ca12","siteSpaceId":"sitesp_q3yJh","description":"This lesson covers I/O with Khan, Arvo's thread runner vane, and Lick, Arvo's IPC vane.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"IqDMiIGsstTlsFb18D2z","title":"14. Vanes VII: Jael, Azimuth","pathname":"/build-on-urbit/core-academy/ca13","siteSpaceId":"sitesp_q3yJh","description":"A look at Urbit's networking key infrastructure. Covers the Jael vane, the %eth-watcher agent, and Azimuth's Layer 2 rollup solution.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Core Academy"}]},{"id":"2Ea4CcaxSBZ8CjIzLjSz","title":"Runtime","pathname":"/build-on-urbit/runtime","siteSpaceId":"sitesp_q3yJh","description":"Documentation for Urbit's runtime and Nock interpreter (Vere), including guides for U3, jetting, C programming in Urbit, and cryptography implementation.","breadcrumbs":[{"label":"Build on Urbit"}]},{"id":"ODsFfUFUc797uQi0Vy9d","title":"U3","pathname":"/build-on-urbit/runtime/u3","siteSpaceId":"sitesp_q3yJh","description":"Introduction to u3, the Nock runtime system. C library for making and storing nouns. Solid-state interpreter.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Runtime"}]},{"id":"QtckRU9nGYl8f29ju81u","title":"Conn.c Guide","pathname":"/build-on-urbit/runtime/conn","siteSpaceId":"sitesp_q3yJh","description":"Guide for using conn.c driver. Unix domain socket for external ship interaction. Khan vane, urbit eval utility.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Runtime"}]},{"id":"yVZr7pTZYSqRxlG9IHrl","title":"How to Write a Jet","pathname":"/build-on-urbit/runtime/jetting","siteSpaceId":"sitesp_q3yJh","description":"Complete tutorial on writing jets in Urbit. C implementations of Hoon gates for performance. Developer environment setup.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Runtime"}]},{"id":"kCgAToGIicW5cWdTHn9Q","title":"API Overview by Prefix","pathname":"/build-on-urbit/runtime/api","siteSpaceId":"sitesp_q3yJh","description":"API overview by prefix for u3 system modules. Function reference for noun manipulation, jets, allocation, Nock computation.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Runtime"}]},{"id":"p0EIcD40Wx9xqGNwnCnG","title":"C in Urbit","pathname":"/build-on-urbit/runtime/c","siteSpaceId":"sitesp_q3yJh","description":"C conventions and style used in Urbit. Integer types, variable naming, loobeans. The c3 layer under u3.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Runtime"}]},{"id":"gCy7rr1TDzk97SN2Xe6S","title":"Cryptography","pathname":"/build-on-urbit/runtime/cryptography","siteSpaceId":"sitesp_q3yJh","description":"Cryptographic primitives used by Arvo. Ed25519 signatures, AES-SIV encryption. All jetted for performance.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Runtime"}]},{"id":"NnUpiqwO7KZcXYzcVYpO","title":"Land of Nouns","pathname":"/build-on-urbit/runtime/nouns","siteSpaceId":"sitesp_q3yJh","description":"Comprehensive guide to u3 noun processing in C. Memory model, reference counting, road system architecture.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Runtime"}]},{"id":"jpwxsevNmpP4dFBDVf6l","title":"Tools","pathname":"/build-on-urbit/tools","siteSpaceId":"sitesp_q3yJh","description":"Developer documentation for additional tools, external libraries, and third-party applications for Urbit development, including JavaScript libraries and documentation tools.","breadcrumbs":[{"label":"Build on Urbit"}]},{"id":"jllTFu62TcFkrbDqjz5p","title":"Useful Links","pathname":"/build-on-urbit/tools/links","siteSpaceId":"sitesp_q3yJh","description":"Curated collection of external Urbit development resources including app repositories, Hoon libraries, JavaScript packages, documentation sites, and development tools.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Tools"}]},{"id":"1lmm4Jl1BYRHNRNan4k8","title":"JS Libraries","pathname":"/build-on-urbit/tools/js-libs","siteSpaceId":"sitesp_q3yJh","description":"JavaScript libraries for Urbit development including @urbit/http-api for communicating with a Gall agent backend from a React web frontend.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Tools"}]},{"id":"Ex63HOihvszDmHyhgaI2","title":"HTTP API","pathname":"/build-on-urbit/tools/js-libs/http-api-guide","siteSpaceId":"sitesp_q3yJh","description":"Guide to the @urbit/http-api JavaScript library for building web frontends that communicate with Urbit ships, covering authentication, pokes, subscriptions, scries, threads, and practical examples.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Tools"},{"label":"JS Libraries"}]},{"id":"u3BsLR9teoTahB8GrAqC","title":"Docs App","pathname":"/build-on-urbit/tools/docs-app","siteSpaceId":"sitesp_q3yJh","description":"Documentation application for distributing docs with Urbit desks.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Tools"}]},{"id":"GQWWW4dpA8LKm9K9UL5N","title":"File Format","pathname":"/build-on-urbit/tools/docs-app/file-format","siteSpaceId":"sitesp_q3yJh","description":"File format specifications for the %docs app including %docu mark requirements, supported formats (udon, txt, html, gmi), syntax rules, and conversion guidelines for documentation publishing.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Tools"},{"label":"Docs App"}]},{"id":"IfiwrQxWyJDreKOp4TSo","title":"Index File","pathname":"/build-on-urbit/tools/docs-app/index-file","siteSpaceId":"sitesp_q3yJh","description":"Configuration guide for doc.toc index files in the %docs app, covering structure definition, hierarchical organization, file/directory specification, and automatic table of contents generation.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Tools"},{"label":"Docs App"}]},{"id":"LQER6fUsS8vW9Upogzwz","title":"Suggested Structure","pathname":"/build-on-urbit/tools/docs-app/structure","siteSpaceId":"sitesp_q3yJh","description":"Best practices for organizing documentation in the %docs app, covering user documentation, developer API references, changelog structure, and data type documentation patterns.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Tools"},{"label":"Docs App"}]},{"id":"X8NuIwmVUpqe4FAms5uN","title":"Userspace","pathname":"/build-on-urbit/userspace","siteSpaceId":"sitesp_q3yJh","description":"Guides for building and distributing userspace applications on Urbit, including examples, exercises, and tutorials for app development.","breadcrumbs":[{"label":"Build on Urbit"}]},{"id":"eNvNTnNituwVVP7Db22k","title":"Command-Line App Tutorial","pathname":"/build-on-urbit/userspace/cli-tutorial","siteSpaceId":"sitesp_q3yJh","description":"Complete tutorial for building CLI applications using /lib/shoe.hoon. Command parsing, session management, the %shoe example app.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"}]},{"id":"1Sd14S9dJUGVkdtcof5h","title":"Remote Scry","pathname":"/build-on-urbit/userspace/remote-scry","siteSpaceId":"sitesp_q3yJh","description":"Remote scrying between ships since kernel v413. Publishing with %grow, encryption options, access control, %keen/%chum/%tune lifecycle.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"}]},{"id":"3TnoaG7gKfXIdFDSzqyD","title":"Unit Tests","pathname":"/build-on-urbit/userspace/unit-tests","siteSpaceId":"sitesp_q3yJh","description":"Unit testing framework using -test thread and /lib/test.hoon. Write test arms with +test-* pattern that return $tang.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"}]},{"id":"IeGiRqOy9Lb0VSt21aii","title":"Software Distribution","pathname":"/build-on-urbit/userspace/dist","siteSpaceId":"sitesp_q3yJh","description":"Urbit supports peer-to-peer distribution and installation of applications. A user can click on a link to an app published on another ship to install.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"}]},{"id":"51kokAPV09Ekh6AR2Xe9","title":"Software Distribution Guide","pathname":"/build-on-urbit/userspace/dist/software-distribution","siteSpaceId":"sitesp_q3yJh","description":"Complete tutorial for creating and publishing Urbit apps. Walk through Hello World example from desk creation to remote installation via Treaty.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"},{"label":"Software Distribution"}]},{"id":"f1kLorVxshXFpoq8AUNq","title":"Docket File","pathname":"/build-on-urbit/userspace/dist/docket","siteSpaceId":"sitesp_q3yJh","description":"Docket file configuration for Landscape apps. Defines tile appearance, glob source, version, and metadata using clauses like %title, %color.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"},{"label":"Software Distribution"}]},{"id":"NWzjqz990MZxgTX1GWzT","title":"Glob","pathname":"/build-on-urbit/userspace/dist/glob","siteSpaceId":"sitesp_q3yJh","description":"Globs contain client-side resources (HTML, JS, CSS) for Landscape apps. Distribution over Ames or HTTP, Globulator tool, make-glob thread.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"},{"label":"Software Distribution"}]},{"id":"qpzLf6WY8S5YNFfNKPvR","title":"Examples","pathname":"/build-on-urbit/userspace/examples","siteSpaceId":"sitesp_q3yJh","description":"Examples and exercises for building Urbit userspace apps including CLI tools, websites, and games.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"}]},{"id":"0ZUe4dqiVDJhL7NXNZPl","title":"Building a CLI App","pathname":"/build-on-urbit/userspace/examples/rpn","siteSpaceId":"sitesp_q3yJh","description":"Tutorial on building a reverse Polish notation calculator CLI app using Hoon and the shoe library.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"},{"label":"Examples"}]},{"id":"83ZPa5zaCsdSkXIlKlcr","title":"Debugging Wrapper","pathname":"/build-on-urbit/userspace/examples/dbug","siteSpaceId":"sitesp_q3yJh","description":"Guide to using the dbug library to debug Gall agents and inspect their state.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"},{"label":"Examples"}]},{"id":"ScvVy0D5rOf7fBqdojRQ","title":"Host a Website","pathname":"/build-on-urbit/userspace/examples/feature","siteSpaceId":"sitesp_q3yJh","description":"Tutorial on building a simple website hosting app using the Schooner library to serve HTML pages from Urbit.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"},{"label":"Examples"}]},{"id":"PLxg0lAES8aAOnK2Ja9W","title":"Serving a JS Game","pathname":"/build-on-urbit/userspace/examples/flap","siteSpaceId":"sitesp_q3yJh","description":"Tutorial on connecting a JavaScript Flappy Bird game to an Urbit backend with leaderboard and file serving.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"},{"label":"Examples"}]},{"id":"umqeMO8gsMy0fAJOwHvJ","title":"Ship Monitoring","pathname":"/build-on-urbit/userspace/examples/ahoy","siteSpaceId":"sitesp_q3yJh","description":"Tutorial on building a ship monitoring app with Sail frontend, CLI generators, and Behn timers for notifications.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"},{"label":"Examples"}]},{"id":"0vLgU5AVZ6N9mUlliYlU","title":"Styled Text","pathname":"/build-on-urbit/userspace/examples/track7","siteSpaceId":"sitesp_q3yJh","description":"Tutorial on producing styled text with styx strings and outputting them from Urbit agents to the terminal.","breadcrumbs":[{"label":"Build on Urbit"},{"label":"Userspace"},{"label":"Examples"}]},{"id":"EpqLWIyNeOnLCuweIhfU","title":"What is Urbit ID?","pathname":"/urbit-id/what-is-urbit-id","siteSpaceId":"sitesp_q3yJh","description":"Overview of Urbit ID, a decentralized identity standard built on Ethereum. Covers network topology, smart contracts, and Layer 2 rollup functionality.","breadcrumbs":[{"label":"Urbit ID"}]},{"id":"oJM1x9RL8GIgqiQKzaip","title":"Azimuth Data Flow","pathname":"/urbit-id/flow","siteSpaceId":"sitesp_q3yJh","description":"Technical overview of Azimuth's data flow, including Bridge, Gall agents, the Layer 2 naive rollup solution, and how components in Urbit OS communicate in Urbit's PKI system on Ethereum.","breadcrumbs":[{"label":"Urbit ID"}]},{"id":"gmhRCi5HrJ76E1ewfDbR","title":"Life and Rift","pathname":"/urbit-id/life-and-rift","siteSpaceId":"sitesp_q3yJh","description":"Explanation of life and rift numbers in Azimuth, how they track networking key revisions and breach counts for secure peer-to-peer networking on Urbit.","breadcrumbs":[{"label":"Urbit ID"}]},{"id":"umThAI4vLlAH2RqMCFlc","title":"Urbit HD Wallet","pathname":"/urbit-id/hd-wallet","siteSpaceId":"sitesp_q3yJh","description":"Guide to Urbit's Hierarchical Deterministic wallet system. Master tickets, proxy keys, wallet generation, and security best practices for Urbit ID ownership.","breadcrumbs":[{"label":"Urbit ID"}]},{"id":"MhzdmUOpthQSDlD5Tzc8","title":"Advanced Azimuth Tools","pathname":"/urbit-id/advanced-azimuth-tools","siteSpaceId":"sitesp_q3yJh","description":"Advanced techniques for generating, signing, and sending Azimuth transactions from within Urbit using the %claz and %eth-sender agents for Layer 1 operations.","breadcrumbs":[{"label":"Urbit ID"}]},{"id":"nosrYXOVFrkuWqA27pL6","title":"Custom Roller Tutorial","pathname":"/urbit-id/roller-tutorial","siteSpaceId":"sitesp_q3yJh","description":"Step-by-step tutorial for setting up your own Layer 2 roller for Urbit ID transactions, including configuration, Bridge setup, and roller management commands.","breadcrumbs":[{"label":"Urbit ID"}]},{"id":"hjASFDjitIu3kFb6KVrJ","title":"Azimuth.eth Reference","pathname":"/urbit-id/azimuth-eth","siteSpaceId":"sitesp_q3yJh","description":"Technical reference for Azimuth.eth, the data store for Urbit ID ownership, Points, Deeds, networking keys, and sponsorship information on Ethereum.","breadcrumbs":[{"label":"Urbit ID"}]},{"id":"uhLAGxIoKWg98JnPdWyZ","title":"Ecliptic.eth Reference","pathname":"/urbit-id/ecliptic","siteSpaceId":"sitesp_q3yJh","description":"Technical reference for the Ecliptic.eth smart contract, which runs business logic for Urbit ID operations, including all write and read functions for managing Points, proxies, and governance.","breadcrumbs":[{"label":"Urbit ID"}]},{"id":"Jqjl59xbjzV6XrZKlc91","title":"Layer 2","pathname":"/urbit-id/l2","siteSpaceId":"sitesp_q3yJh","description":"Technical overview of Azimuth's Layer 2 naive rollups scaling solution: transaction batching, state management, sponsorship mechanics, and security measures for reduced-cost Urbit ID operations.","breadcrumbs":[{"label":"Urbit ID"}]},{"id":"GNUoOQEy6uigh0D51AXn","title":"L2 Actions","pathname":"/urbit-id/l2/l2-actions","siteSpaceId":"sitesp_q3yJh","description":"Guide to the actions that can be taken by Azimuth's Layer 2 roller.","breadcrumbs":[{"label":"Urbit ID"},{"label":"Layer 2"}]},{"id":"gEyLaxN9zjwgeYYZuXex","title":"L2 Rollers","pathname":"/urbit-id/l2/roller","siteSpaceId":"sitesp_q3yJh","description":"Overview of Azimuth's Layer 2 naive rollup solution.","breadcrumbs":[{"label":"Urbit ID"},{"label":"Layer 2"}]},{"id":"UVqixfmwVieZTGWqSxfz","title":"L2 Roller HTTP RPC-API","pathname":"/urbit-id/l2/layer2-api","siteSpaceId":"sitesp_q3yJh","description":"Guide to Azimuth's Layer 2 roller's HTTP RPC-API.","breadcrumbs":[{"label":"Urbit ID"},{"label":"Layer 2"}]},{"id":"7v7ut2UpSVG42s9RwlpS","title":"L2 Transaction Format","pathname":"/urbit-id/l2/bytestring","siteSpaceId":"sitesp_q3yJh","description":"Guide to the bytestring format for Azimuth's Layer 2 roller transactions and batches.","breadcrumbs":[{"label":"Urbit ID"},{"label":"Layer 2"}]},{"id":"6nzEgWyiEaEv7GoqxHb6","title":"What is Urbit OS?","pathname":"/urbit-os/what-is-urbit-os","siteSpaceId":"sitesp_q3yJh","description":"Introduction to Urbit OS, a functional, deterministic personal server operating system. Includes documentation for the Arvo kernel, its modules, and the standard distribution in the %base desk.","breadcrumbs":[{"label":"Urbit OS"}]},{"id":"JB7ZGpxn3EXZTaZ4Krk9","title":"Base","pathname":"/urbit-os/base","siteSpaceId":"sitesp_q3yJh","description":"Documentation for the %base desk, the Urbit OS standard distribution containing the kernel, Arvo, Hoon standard library, system apps like %hood, and affordances for writing threads.","breadcrumbs":[{"label":"Urbit OS"}]},{"id":"4XjJlyPaAFmnjlGhZGOI","title":"Hood","pathname":"/urbit-os/base/hood","siteSpaceId":"sitesp_q3yJh","description":"API reference for %hood, a Gall agent that interfaces with Urbit OS. Includes documentation for its modules Drum (CLI management), Helm (system control), and Kiln (desk updates and filesystem).","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"}]},{"id":"Uip4ufQ2zLPXtN4MCzto","title":"Threads","pathname":"/urbit-os/base/threads","siteSpaceId":"sitesp_q3yJh","description":"Guide to writing threads, transient monadic functions for complex IO operations, managed by the %spider agent or the Khan vane, with tutorials, examples, and API reference.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"}]},{"id":"lPSKZGaLWkrhonQcoUT5","title":"Basics Tutorial","pathname":"/urbit-os/base/threads/basics","siteSpaceId":"sitesp_q3yJh","description":"Tutorial covering thread fundamentals including strands, monadic composition with form and pure, bind operations, input/output handling, and practical examples for writing threads.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"}]},{"id":"hSbStCOYG86ajUXcOYhD","title":"Bind","pathname":"/urbit-os/base/threads/basics/bind","siteSpaceId":"sitesp_q3yJh","description":"Guide to monadic bind operations for strand composition using the ;< micgal rune, chaining strands sequentially, error handling, and strandio library functions for complex thread operations.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Basics Tutorial"}]},{"id":"SFX4RZdoq0D1aOkd2l4A","title":"Fundamentals","pathname":"/urbit-os/base/threads/basics/fundamentals","siteSpaceId":"sitesp_q3yJh","description":"Thread fundamentals. Transient agent functionality, strand composition, thread definition, the +form and +pure arms, threads' location in /ted directory, and creating basic threads.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Basics Tutorial"}]},{"id":"nYiTsIKV3zLy06EONrro","title":"Input","pathname":"/urbit-os/base/threads/basics/input","siteSpaceId":"sitesp_q3yJh","description":"Guide to strand input including $bowl structure with ship, timing, and subscription data, input types (pokes, signs, agent communication), and accessing input data within thread execution.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Basics Tutorial"}]},{"id":"V4QRZulrYoxLZwqvoYdH","title":"Output","pathname":"/urbit-os/base/threads/basics/output","siteSpaceId":"sitesp_q3yJh","description":"Guide to strand output including cards and response codes (%wait, %skip, %cont, %fail, %done), flow control mechanisms, error handling, and completion patterns in thread execution.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Basics Tutorial"}]},{"id":"gGxOfAK808RqRw3IBik8","title":"Summary","pathname":"/urbit-os/base/threads/basics/summary","siteSpaceId":"sitesp_q3yJh","description":"Summary and recap of thread concepts including %spider agent management, strand composition, +form/+pure/+bind operations, input/output patterns, and strandio utility functions.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Basics Tutorial"}]},{"id":"g0qXbEPpZedzsAiXum2A","title":"HTTP API Guide","pathname":"/urbit-os/base/threads/http-api","siteSpaceId":"sitesp_q3yJh","description":"Guide to running threads via HTTP API - URL structure, mark conversion, JSON handling, and authenticated requests through Eyre.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"}]},{"id":"2FQ8mu2AN0xpfYTlVegi","title":"Spider API Reference","pathname":"/urbit-os/base/threads/api","siteSpaceId":"sitesp_q3yJh","description":"Spider API reference for starting, stopping, and interacting with threads. Pokes, subscriptions, and thread lifecycle management.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"}]},{"id":"aStoHQNIlRqLwBXG0Avy","title":"Strandio Reference","pathname":"/urbit-os/base/threads/strandio","siteSpaceId":"sitesp_q3yJh","description":"Reference for Strandio library functions - HTTP requests, pokes, subscriptions, scries, timers, and more for thread programming.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"}]},{"id":"HoEYzAPxJ8ZCHZiTFbRE","title":"Examples","pathname":"/urbit-os/base/threads/examples","siteSpaceId":"sitesp_q3yJh","description":"Collection of practical thread examples including Gall agent integration, JSON fetching, child thread management, main-loop patterns, agent communication, scrying, and fact handling.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"}]},{"id":"bKauZVIzdZaGl5pd5Lsi","title":"Child Thread","pathname":"/urbit-os/base/threads/examples/child-thread","siteSpaceId":"sitesp_q3yJh","description":"Thread examples showing how parent threads can start/stop child threads, and get their results.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Examples"}]},{"id":"YMJikWBj5mjHEWw8lk7D","title":"Fetch JSON","pathname":"/urbit-os/base/threads/examples/get-json","siteSpaceId":"sitesp_q3yJh","description":"Practical example of fetching and parsing JSON data in threads using strandio's +fetch-json function, demonstrated with a Bitcoin price fetcher that queries external APIs and processes responses.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Examples"}]},{"id":"yY0HGgVlY4K86u35Wmu4","title":"Gall","pathname":"/urbit-os/base/threads/examples/gall","siteSpaceId":"sitesp_q3yJh","description":"Examples of Gall agent integration with threads covering thread lifecycle management, starting threads, handling results, subscription patterns, cancellation, and inter-thread communication.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Examples"}]},{"id":"FrPJlspDebw5xtZCXRzh","title":"Poke Thread","pathname":"/urbit-os/base/threads/examples/gall/poke-thread","siteSpaceId":"sitesp_q3yJh","description":"Gall agent example demonstrating how to poke running threads.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Examples"},{"label":"Gall"}]},{"id":"x0nqCc3sQSRKtr8T5v4v","title":"Start Thread","pathname":"/urbit-os/base/threads/examples/gall/start-thread","siteSpaceId":"sitesp_q3yJh","description":"Gall agent examples for starting threads - inline vs file threads, Khan vs Spider APIs, thread IDs and subscription patterns.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Examples"},{"label":"Gall"}]},{"id":"AukFNhiu0TnC7bb4p3iR","title":"Stop Thread","pathname":"/urbit-os/base/threads/examples/gall/stop-thread","siteSpaceId":"sitesp_q3yJh","description":"Gall agent example demonstrating how to stop running threads - Spider-stop pokes and thread lifecycle management.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Examples"},{"label":"Gall"}]},{"id":"5E8qZfEyNhlWvYiXNbeF","title":"Take Facts","pathname":"/urbit-os/base/threads/examples/gall/take-facts","siteSpaceId":"sitesp_q3yJh","description":"Gall agent example for receiving facts from running threads - subscription patterns and fact handling while threads execute.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Examples"},{"label":"Gall"}]},{"id":"YEAleVMnnvZsliqFJQLe","title":"Take Result","pathname":"/urbit-os/base/threads/examples/gall/take-result","siteSpaceId":"sitesp_q3yJh","description":"Gall agent examples showing how to handle thread results - success/failure cases for Khan and Spider thread execution.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Examples"},{"label":"Gall"}]},{"id":"yMjdIciG155LCv7Xfssa","title":"Main-loop","pathname":"/urbit-os/base/threads/examples/main-loop","siteSpaceId":"sitesp_q3yJh","description":"Advanced thread examples using main-loop for continuous processing, multiple function patterns, and subscription handling.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Examples"}]},{"id":"cqdwWVl3ISKOPBr39odG","title":"Poke Agent","pathname":"/urbit-os/base/threads/examples/poke-agent","siteSpaceId":"sitesp_q3yJh","description":"Example thread demonstrating how to poke agents - sending a |hi command to a ship via the hood agent.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Examples"}]},{"id":"Ai5ARGndM59RBQCIBUd1","title":"Scry","pathname":"/urbit-os/base/threads/examples/scry","siteSpaceId":"sitesp_q3yJh","description":"Thread example showing how to scry ames for ship IP addresses and ports - practical scrying with formatted output.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Examples"}]},{"id":"pKEfnae2Col2rE7UPcO8","title":"Take Fact","pathname":"/urbit-os/base/threads/examples/take-fact","siteSpaceId":"sitesp_q3yJh","description":"Thread example demonstrating subscription and fact handling - watching agents, taking facts, and processing subscription data.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Base"},{"label":"Threads"},{"label":"Examples"}]},{"id":"3lPFEHTPeUVeMJepiAXD","title":"Kernel","pathname":"/urbit-os/kernel","siteSpaceId":"sitesp_q3yJh","description":"API documentation and guides for the Urbit OS kernel and its modules Ames, Behn, Clay, Dill, Eyre, Gall, Iris, Jael, Khan, and Lick.","breadcrumbs":[{"label":"Urbit OS"}]},{"id":"8XCN4LxaIIypUOO0B5MW","title":"Arvo","pathname":"/urbit-os/kernel/arvo","siteSpaceId":"sitesp_q3yJh","description":"High-level technical introduction to Arvo, Urbit's functional operating system. Covers event handling, deterministic execution, and ACID database properties.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"}]},{"id":"dtrt8zHr94ihjsE5D6Z9","title":"Cryptography","pathname":"/urbit-os/kernel/arvo/cryptography","siteSpaceId":"sitesp_q3yJh","description":"Arvo cryptography overview - Azimuth keys, networking keys, and cryptographic components across the system.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Arvo"}]},{"id":"NqzqczsB3EpGMhtbxL2n","title":"Move Trace","pathname":"/urbit-os/kernel/arvo/move-trace","siteSpaceId":"sitesp_q3yJh","description":"Arvo move trace tutorial - debugging kernel operations, tracing moves, and understanding system message flow.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Arvo"}]},{"id":"oRnE4yIz0uQZYf7YdpXr","title":"Scries","pathname":"/urbit-os/kernel/arvo/scry","siteSpaceId":"sitesp_q3yJh","description":"Arvo scry guide - read-only requests to the global namespace, endpoint mechanics, and data retrieval patterns.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Arvo"}]},{"id":"fSzFus5QMdEYWRVcERa6","title":"Subscriptions","pathname":"/urbit-os/kernel/arvo/subscriptions","siteSpaceId":"sitesp_q3yJh","description":"Arvo subscriptions guide - reactive data flow, subscription types, Clay/Gall/Jael subscriptions, and stream mechanics.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Arvo"}]},{"id":"VtVzCWqkhLJwQS2VGlhj","title":"Ames","pathname":"/urbit-os/kernel/ames","siteSpaceId":"sitesp_q3yJh","description":"Technical documentation for Ames, Urbit's encrypted peer-to-peer networking protocol and the Arvo vane that implements it. Includes packet format, flows, congestion control, and cryptography.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"}]},{"id":"HhvHVAaJ03fKtIjezYxe","title":"Ames API Reference","pathname":"/urbit-os/kernel/ames/tasks","siteSpaceId":"sitesp_q3yJh","description":"Ames API reference - networking tasks for messaging, packet handling, remote scries, and ship communication.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Ames"}]},{"id":"Z42EZo8ctSjJrHO9uUGY","title":"Ames Cryptography","pathname":"/urbit-os/kernel/ames/cryptography","siteSpaceId":"sitesp_q3yJh","description":"Ames cryptography reference - AES encryption, Curve25519 key exchange, packet signing, and comet self-attestation.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Ames"}]},{"id":"mFLRjpS6WmXpgSBRGhal","title":"Ames Data Types","pathname":"/urbit-os/kernel/ames/data-types","siteSpaceId":"sitesp_q3yJh","description":"Ames data type reference - networking structures for packets, lanes, ships, addresses, and message flow state.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Ames"}]},{"id":"pAnsj46deGrza3ZkRFs6","title":"Ames Scry Reference","pathname":"/urbit-os/kernel/ames/scry","siteSpaceId":"sitesp_q3yJh","description":"Ames scry reference - network queries for peers, routes, message flows, bones, and ship connectivity information.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Ames"}]},{"id":"lmrzOdaEeqekCKAIotnQ","title":"Behn","pathname":"/urbit-os/kernel/behn","siteSpaceId":"sitesp_q3yJh","description":"Documentation for Behn, Arvo's timer module for scheduling and managing timers.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"}]},{"id":"JjIyqHMhI3rLUqThmnZN","title":"Behn API Reference","pathname":"/urbit-os/kernel/behn/tasks","siteSpaceId":"sitesp_q3yJh","description":"Behn API reference - timer tasks for setting and cancelling timers, scheduling events, and time management.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Behn"}]},{"id":"n5bdZ3MwJhpYZM2hELgl","title":"Behn Examples","pathname":"/urbit-os/kernel/behn/examples","siteSpaceId":"sitesp_q3yJh","description":"Behn timer examples - setting timers with wait tasks, handling wake gifts, and timing operations.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Behn"}]},{"id":"PXkDfblGm8BP0HPKV0Bh","title":"Behn Scry Reference","pathname":"/urbit-os/kernel/behn/scry","siteSpaceId":"sitesp_q3yJh","description":"Behn scry reference - timer queries for debugging timers, next timer, and scheduled timer information.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Behn"}]},{"id":"hhmtRrvYRzA5Y841Zq15","title":"Clay","pathname":"/urbit-os/kernel/clay","siteSpaceId":"sitesp_q3yJh","description":"Documentation for Clay, Arvo's version-controlled, referentially-transparent, and global filesystem, including architecture, data types, marks, and usage patterns.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"}]},{"id":"nwJ8ercoOyrHIne8tFbZ","title":"Clay API Reference","pathname":"/urbit-os/kernel/clay/tasks","siteSpaceId":"sitesp_q3yJh","description":"Clay API reference - filesystem tasks for reading, writing, tracking changes, and managing desks.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Clay"}]},{"id":"Ndj4GOCcRm3nQ1xWeC95","title":"Clay Architecture","pathname":"/urbit-os/kernel/clay/architecture","siteSpaceId":"sitesp_q3yJh","description":"Clay filesystem architecture - distributed revision control, typed data, persistence, and versioned filesystem design.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Clay"}]},{"id":"z0qwebbNoGRgj6yCZcIs","title":"Clay Data Types","pathname":"/urbit-os/kernel/clay/data-types","siteSpaceId":"sitesp_q3yJh","description":"Clay data type reference - filesystem structures for files, desks, revisions, merges, and version control.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Clay"}]},{"id":"zapNqnj3P8Zi9g5Ihyaj","title":"Clay Examples","pathname":"/urbit-os/kernel/clay/examples","siteSpaceId":"sitesp_q3yJh","description":"Clay filesystem examples - reading files, tracking changes, managing desks, merging, and filesystem operations.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Clay"}]},{"id":"QR9QWyNxOf4HDn8RVq8d","title":"Clay Scry Reference","pathname":"/urbit-os/kernel/clay/scry","siteSpaceId":"sitesp_q3yJh","description":"Clay scry reference - filesystem queries by care for reading files, directories, hashes, and metadata.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Clay"}]},{"id":"qKwXRIqwl27FPF5B6AQK","title":"Filesystem Hierarchy","pathname":"/urbit-os/kernel/clay/filesystem","siteSpaceId":"sitesp_q3yJh","description":"Clay filesystem hierarchy - desk organization, folder structure, app/gen/lib/sur/sys directories and conventions.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Clay"}]},{"id":"o05xHLKWpMsyur8Ql8eM","title":"Marks","pathname":"/urbit-os/kernel/clay/marks","siteSpaceId":"sitesp_q3yJh","description":"Guide to using marks, Clay's conversion functions.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Clay"}]},{"id":"H7f1Fp0JUOZAL3psy2T7","title":"Mark Examples","pathname":"/urbit-os/kernel/clay/marks/examples","siteSpaceId":"sitesp_q3yJh","description":"Clay mark examples - CSV mark implementation with parsing, validation, and conversion code samples.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Clay"},{"label":"Marks"}]},{"id":"W0jNtQwYZa2xBTln7sLw","title":"Using Marks","pathname":"/urbit-os/kernel/clay/marks/using-marks","siteSpaceId":"sitesp_q3yJh","description":"Clay marks usage - using mark cores and conversion gates for data transformation and type-safe operations.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Clay"},{"label":"Marks"}]},{"id":"zsVbTaVDVlueU01d5c5n","title":"Writing Marks","pathname":"/urbit-os/kernel/clay/marks/writing-marks","siteSpaceId":"sitesp_q3yJh","description":"Clay marks guide - writing mark files for data type conversion, validation, parsing, and format handling.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Clay"},{"label":"Marks"}]},{"id":"bE4UNnS6okJqA7932jyk","title":"Using Clay","pathname":"/urbit-os/kernel/clay/using","siteSpaceId":"sitesp_q3yJh","description":"Clay usage guide - reading, subscribing, Unix sync, merge strategies, and filesystem best practices.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Clay"}]},{"id":"TNFO19crNOEObAeISlwk","title":"Dill","pathname":"/urbit-os/kernel/dill","siteSpaceId":"sitesp_q3yJh","description":"Guide to Dill, Arvo's terminal driver vane.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"}]},{"id":"zglAFvuBkFtDbAsObgFV","title":"Dill API Reference","pathname":"/urbit-os/kernel/dill/tasks","siteSpaceId":"sitesp_q3yJh","description":"Dill API reference - terminal tasks for session management, input/output, and system printing.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Dill"}]},{"id":"EhnfHtFjfDvq2JxV026h","title":"Dill Data Types","pathname":"/urbit-os/kernel/dill/data-types","siteSpaceId":"sitesp_q3yJh","description":"Dill data type reference - terminal structures for dimensions, sessions, input, and output handling.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Dill"}]},{"id":"k7g7F4pgk9geUoDVE7Rr","title":"Dill Scry Reference","pathname":"/urbit-os/kernel/dill/scry","siteSpaceId":"sitesp_q3yJh","description":"Dill scry reference - terminal queries for sessions and system state information.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Dill"}]},{"id":"N3RZiBG6MRr9qFxTrKUk","title":"Eyre","pathname":"/urbit-os/kernel/eyre","siteSpaceId":"sitesp_q3yJh","description":"Guide to Eyre, Arvo's HTTP server vane.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"}]},{"id":"2uRCY0nFMszxhvHvzGFB","title":"EAuth","pathname":"/urbit-os/kernel/eyre/eauth","siteSpaceId":"sitesp_q3yJh","description":"Eyre authentication guide - web login, session management, cookies, and secure authentication mechanisms.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Eyre"}]},{"id":"zyvNpsxkmGDOEb23eOC4","title":"Eyre Data Types","pathname":"/urbit-os/kernel/eyre/data-types","siteSpaceId":"sitesp_q3yJh","description":"Eyre data type reference - web server structures for HTTP requests, responses, sessions, and server state.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Eyre"}]},{"id":"db32HNvETChC4smrcOwP","title":"Eyre External API","pathname":"/urbit-os/kernel/eyre/external-api-ref","siteSpaceId":"sitesp_q3yJh","description":"Eyre external API reference - HTTP endpoints, channel communication, authentication, and web interface integration.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Eyre"}]},{"id":"nNQPK0e4Kiw1f43a9r7p","title":"Eyre Internal API","pathname":"/urbit-os/kernel/eyre/tasks","siteSpaceId":"sitesp_q3yJh","description":"Eyre API reference - web server tasks for HTTP handling, binding URLs, serving content, and session management.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Eyre"}]},{"id":"MkSV9kAAUVEPhzgCuegG","title":"Eyre Scry Reference","pathname":"/urbit-os/kernel/eyre/scry","siteSpaceId":"sitesp_q3yJh","description":"Eyre scry reference - web server queries for connections, bindings, authentication, and HTTP server state.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Eyre"}]},{"id":"AjAqNX4iwRv0JlGSSm6B","title":"Low-Level Eyre Guide","pathname":"/urbit-os/kernel/eyre/guide","siteSpaceId":"sitesp_q3yJh","description":"Eyre web server guide - HTTP request handling, URL binding, authentication, channels, and web application development.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Eyre"}]},{"id":"LFjnNoOKGX4PFFfxtajY","title":"Noun channels","pathname":"/urbit-os/kernel/eyre/noun-channels","siteSpaceId":"sitesp_q3yJh","description":"Eyre noun channels guide - direct noun communication over HTTP for efficient data exchange with applications.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Eyre"}]},{"id":"vp8Q8d53a6715O9FYGfY","title":"Gall","pathname":"/urbit-os/kernel/gall","siteSpaceId":"sitesp_q3yJh","description":"Documentation for Gall, Arvo's application framework for Urbit userspace apps.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"}]},{"id":"o2D0fIg95jAPxKloYS7c","title":"Gall API Reference","pathname":"/urbit-os/kernel/gall/gall-api","siteSpaceId":"sitesp_q3yJh","description":"Gall API reference - agent notes and cards for communication, requests, arvo tasks, and inter-agent messaging.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Gall"}]},{"id":"VbgPnEpt3t0NOURyh1N4","title":"Gall Data Types","pathname":"/urbit-os/kernel/gall/data-types","siteSpaceId":"sitesp_q3yJh","description":"Gall data type reference - agent structures for subscriptions, bowls, cards, signs, and agent lifecycle management.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Gall"}]},{"id":"P7f9WsUR5BRxHNUBo99P","title":"Gall Scry Reference","pathname":"/urbit-os/kernel/gall/scry","siteSpaceId":"sitesp_q3yJh","description":"Gall scry reference - agent queries and vane-level endpoints for agent state, subscriptions, and metadata.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Gall"}]},{"id":"Pv5jDysiyJz5QsM8sg2s","title":"Iris","pathname":"/urbit-os/kernel/iris","siteSpaceId":"sitesp_q3yJh","description":"Documentation for Iris, Arvo's HTTP client module for making HTTP requests.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"}]},{"id":"VEuJCoFS1jip93FKBONS","title":"Iris API Reference","pathname":"/urbit-os/kernel/iris/tasks","siteSpaceId":"sitesp_q3yJh","description":"Iris API reference - HTTP client tasks for making requests, canceling requests, and receiving HTTP responses.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Iris"}]},{"id":"cKqIUYGPEPUVlk0JakBu","title":"Iris Data Types","pathname":"/urbit-os/kernel/iris/data-types","siteSpaceId":"sitesp_q3yJh","description":"Iris data type reference - HTTP client structures for responses, MIME data, and outbound request configuration.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Iris"}]},{"id":"4ACd6UNugt7csmr82AMo","title":"Iris Example","pathname":"/urbit-os/kernel/iris/example","siteSpaceId":"sitesp_q3yJh","description":"Iris HTTP client example - fetching remote resources with GET requests, handling responses, and processing HTTP data.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Iris"}]},{"id":"RZ6ov2rOUTeEDjj7Plgt","title":"Jael","pathname":"/urbit-os/kernel/jael","siteSpaceId":"sitesp_q3yJh","description":"Guide to Jael, Arvo's vane for networking key infrastructure.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"}]},{"id":"Y5X7XR67bk6SPqP4mQhY","title":"Jael API Reference","pathname":"/urbit-os/kernel/jael/tasks","siteSpaceId":"sitesp_q3yJh","description":"Jael API reference - PKI tasks and gifts for key management, subscriptions, domains, and ship identity operations.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Jael"}]},{"id":"eaxK58CNm4hFsebY1sfx","title":"Jael Data Types","pathname":"/urbit-os/kernel/jael/data-types","siteSpaceId":"sitesp_q3yJh","description":"Jael data type reference - PKI structures for keys, points, diffs, blocks, seeds, and Azimuth ship identity data.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Jael"}]},{"id":"ld37u5CeWWzdhAkzegYR","title":"Jael Examples","pathname":"/urbit-os/kernel/jael/examples","siteSpaceId":"sitesp_q3yJh","description":"Practical examples of Jael PKI tasks - subscribing to key updates, managing domains, web login codes, and key subscriptions.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Jael"}]},{"id":"GMlngYdHBUC5sDIdnYuy","title":"Jael Scry Reference","pathname":"/urbit-os/kernel/jael/scry","siteSpaceId":"sitesp_q3yJh","description":"Jael scry reference - PKI queries for keys, lifes, rifts, domains, subscriptions, and ship identity information.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Jael"}]},{"id":"iasArpfecHSO0VNqeX1V","title":"Khan","pathname":"/urbit-os/kernel/khan","siteSpaceId":"sitesp_q3yJh","description":"Guide to Khan, Arvo's thread-runner vane.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"}]},{"id":"8NZ9wumsmjLFdG3QsTp8","title":"Khan API Reference","pathname":"/urbit-os/kernel/khan/tasks","siteSpaceId":"sitesp_q3yJh","description":"Khan API reference - thread runner tasks for executing threads, handling results, and thread lifecycle management.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Khan"}]},{"id":"Qu35juUF1eIKck30knU2","title":"Khan Data Types","pathname":"/urbit-os/kernel/khan/types","siteSpaceId":"sitesp_q3yJh","description":"Khan data type reference - thread runner structures for results, errors, and thread execution state.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Khan"}]},{"id":"wb876PBPU0SCyMtdhhKB","title":"Khan Example","pathname":"/urbit-os/kernel/khan/example","siteSpaceId":"sitesp_q3yJh","description":"Khan thread runner example - running threads from Gall agents with success/failure handling and result processing.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Khan"}]},{"id":"xJ0rRax7dNtOcxPV5kok","title":"Lick","pathname":"/urbit-os/kernel/lick","siteSpaceId":"sitesp_q3yJh","description":"Guide to Lick, Arvo's IPC vane.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"}]},{"id":"d5MfzIhkte2NIX7bxhHM","title":"Lick API Reference","pathname":"/urbit-os/kernel/lick/tasks","siteSpaceId":"sitesp_q3yJh","description":"Lick API reference - IPC tasks for socket creation, data transmission, and inter-process communication.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Lick"}]},{"id":"jugTxlD8r1sW9T5lK3ny","title":"Lick Guide","pathname":"/urbit-os/kernel/lick/guide","siteSpaceId":"sitesp_q3yJh","description":"Lick IPC guide - building applications that communicate with external programs through Unix sockets.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Lick"}]},{"id":"CdPBTTaWxAAm7exTVshn","title":"Lick Examples","pathname":"/urbit-os/kernel/lick/examples","siteSpaceId":"sitesp_q3yJh","description":"Lick IPC examples - inter-process communication with external programs, socket management, and data exchange.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Lick"}]},{"id":"WoP4VQyMsUWnXmUrvBb8","title":"Lick Scry Reference","pathname":"/urbit-os/kernel/lick/scry","siteSpaceId":"sitesp_q3yJh","description":"Lick scry reference - IPC queries for debugging socket connections and port status.","breadcrumbs":[{"label":"Urbit OS"},{"label":"Kernel"},{"label":"Lick"}]},{"id":"LXsgQKx3J84GdNSz9HFk","title":"Why Hoon?","pathname":"/hoon/why-hoon","siteSpaceId":"sitesp_q3yJh","description":"Rationale for Hoon programming language design.","breadcrumbs":[{"label":"Hoon"}]},{"id":"FQObAyZRTitMf6CHIHFB","title":"Advanced Types","pathname":"/hoon/advanced","siteSpaceId":"sitesp_q3yJh","description":"Advanced Hoon type system concepts including polymorphism, variance, wet and dry arms, core nesting rules, and advanced features like aliasing and bridges for complex programming scenarios.","breadcrumbs":[{"label":"Hoon"}]},{"id":"FRvI7bIPlmGcB6YLVEmP","title":"Arvo","pathname":"/hoon/arvo","siteSpaceId":"sitesp_q3yJh","description":"Arvo types and functions reference including fundamental types like $arch, $beak, $beam, $cage, $duct, $move, $ship, and utilities for Clay nodes, global paths, event processing, and namespace.","breadcrumbs":[{"label":"Hoon"}]},{"id":"Nmwq8l0fa2LF8oSDWBCW","title":"Auras","pathname":"/hoon/auras","siteSpaceId":"sitesp_q3yJh","description":"Hoon aura system reference covering soft type annotation for atoms including text, numbers, dates, addresses, and their nesting behavior, bitwidth specifications, and literal syntax examples.","breadcrumbs":[{"label":"Hoon"}]},{"id":"Fa8XVvJIEd9Zw0lYrNjl","title":"Basic Types","pathname":"/hoon/basic","siteSpaceId":"sitesp_q3yJh","description":"Hoon type system fundamentals covering the recursive type data structure including atoms, cells, cores, faces, forks, and auras with explanations of type inference and nest checking.","breadcrumbs":[{"label":"Hoon"}]},{"id":"jgfTyQQtOXQORvAC3Wc4","title":"Cheat Sheet","pathname":"/hoon/cheat-sheet","siteSpaceId":"sitesp_q3yJh","description":"Quick reference guide to Hoon programming language syntax, operators, and functions available as a downloadable PDF for developers learning Urbit development.","breadcrumbs":[{"label":"Hoon"}]},{"id":"2o5iRR2sm4LI0GsEXFnr","title":"Cryptography","pathname":"/hoon/cryptography","siteSpaceId":"sitesp_q3yJh","description":"Cryptography functions reference for Hoon including Suite B cryptography implementation with AES encryption, elliptic curve digital signatures, Diffie-Hellman key exchange, and Ames security.","breadcrumbs":[{"label":"Hoon"}]},{"id":"E09OZgNehwIHGK67Va0e","title":"Examples","pathname":"/hoon/examples","siteSpaceId":"sitesp_q3yJh","description":"Programming exercise solutions in Hoon covering algorithms like spell checking with blocks, competitive programming challenges, prime number calculations, path finding, and encryption implementations.","breadcrumbs":[{"label":"Hoon"}]},{"id":"2dvLUDyC6Lv8mHiNMcbj","title":"ABC Blocks","pathname":"/hoon/examples/abc-blocks","siteSpaceId":"sitesp_q3yJh","description":"Programming challenge solution for spelling words with letter blocks in Hoon including input validation, alphabet checking, and backtracking algorithm implementation with unit tests.","breadcrumbs":[{"label":"Hoon"},{"label":"Examples"}]},{"id":"aiYrnmspqdQm8ZhvtqxV","title":"Competitive Programming","pathname":"/hoon/examples/competitive","siteSpaceId":"sitesp_q3yJh","description":"Programming implementations in Hoon for common algorithmic tasks including sorting, bitwise operations, prime calculation, functional operators, floating-point math, and debugging techniques.","breadcrumbs":[{"label":"Hoon"},{"label":"Examples"}]},{"id":"0QZ5Xgb9DZLTay5U2WmO","title":"Emirp","pathname":"/hoon/examples/emirp","siteSpaceId":"sitesp_q3yJh","description":"Programming challenge for calculating emirp numbers (primes whose reverses are also primes) in Hoon with efficient prime checking algorithms and multiple solution implementations including unit tests.","breadcrumbs":[{"label":"Hoon"},{"label":"Examples"}]},{"id":"XlGqJwo4oMAFMpsR46TY","title":"Gleichniszahlenreihe","pathname":"/hoon/examples/gleichniszahlenreihe","siteSpaceId":"sitesp_q3yJh","description":"Challenge to implement the look-and-say sequence (Gleichniszahlenreihe) in Hoon with sample solutions.","breadcrumbs":[{"label":"Hoon"},{"label":"Examples"}]},{"id":"rXswMzX1ecF0YFNcwTPE","title":"Islands","pathname":"/hoon/examples/islands","siteSpaceId":"sitesp_q3yJh","description":"Challenge to find the largest connected island in a 2D grid using graph traversal algorithms.","breadcrumbs":[{"label":"Hoon"},{"label":"Examples"}]},{"id":"DUTKqVVUIh4mDck4M9rF","title":"Luhn Number","pathname":"/hoon/examples/luhn-number","siteSpaceId":"sitesp_q3yJh","description":"Challenge to implement the Luhn algorithm for credit card number validation in Hoon.","breadcrumbs":[{"label":"Hoon"},{"label":"Examples"}]},{"id":"PTrLc3eKs2Ol5826NdlC","title":"Minimum Path Sum","pathname":"/hoon/examples/min-path","siteSpaceId":"sitesp_q3yJh","description":"Challenge to find the minimum cost path through a 2D grid using dynamic programming.","breadcrumbs":[{"label":"Hoon"},{"label":"Examples"}]},{"id":"z29eGtnczG7yNXxIjdLl","title":"Phone Letters","pathname":"/hoon/examples/phone-letters","siteSpaceId":"sitesp_q3yJh","description":"Challenge to generate all possible letter combinations from phone keypad number sequences.","breadcrumbs":[{"label":"Hoon"},{"label":"Examples"}]},{"id":"30B9fD4xMYiz6CkgPqrZ","title":"Restore IP","pathname":"/hoon/examples/restore-ip","siteSpaceId":"sitesp_q3yJh","description":"Challenge to restore valid IPv4 addresses from strings of digits by inserting dots.","breadcrumbs":[{"label":"Hoon"},{"label":"Examples"}]},{"id":"j5wbfzZfN6JLUZh7bnep","title":"Rhonda Numbers","pathname":"/hoon/examples/rhonda","siteSpaceId":"sitesp_q3yJh","description":"Challenge to find and validate Rhonda numbers based on prime factorization and base conversion.","breadcrumbs":[{"label":"Hoon"},{"label":"Examples"}]},{"id":"ZIDKZowtfSAi3C7wr6EM","title":"Roman Numerals","pathname":"/hoon/examples/roman","siteSpaceId":"sitesp_q3yJh","description":"Challenge to implement conversion between Roman numerals and decimal numbers in Hoon.","breadcrumbs":[{"label":"Hoon"},{"label":"Examples"}]},{"id":"HJeuMF0hAAmcbfebcgs1","title":"Solitaire Cipher","pathname":"/hoon/examples/solitaire","siteSpaceId":"sitesp_q3yJh","description":"Challenge to implement the Solitaire cryptographic cipher algorithm using playing cards as keys.","breadcrumbs":[{"label":"Hoon"},{"label":"Examples"}]},{"id":"puKFELh9Xq4iFcvXrfg0","title":"Water Towers","pathname":"/hoon/examples/water-towers","siteSpaceId":"sitesp_q3yJh","description":"Challenge to calculate water trapped between tower heights using dynamic programming.","breadcrumbs":[{"label":"Hoon"},{"label":"Examples"}]},{"id":"T7b6VQ5eSqXYnASrTANd","title":"Generators","pathname":"/hoon/generators","siteSpaceId":"sitesp_q3yJh","description":"Guide to building and using Hoon generator scripts for Dojo interaction, including bare generators for standalone calculations, %say generators with system knowledge access, and %ask generators.","breadcrumbs":[{"label":"Hoon"}]},{"id":"2ffCTdJdiHxIiaf7IPYb","title":"Hoon Errors","pathname":"/hoon/hoon-errors","siteSpaceId":"sitesp_q3yJh","description":"Guide to debugging Hoon code, covering common syntax and semantic errors, error traces, debugging modes, and stack trace interpretation.","breadcrumbs":[{"label":"Hoon"}]},{"id":"99CDjlVzrYyHFUpMxPE1","title":"Hoon Style Guide","pathname":"/hoon/style","siteSpaceId":"sitesp_q3yJh","description":"Official Hoon style guide covering layout conventions, naming standards, commenting practices, and code quality.","breadcrumbs":[{"label":"Hoon"}]},{"id":"I1mta6vVnMi96sQDgQ12","title":"Implementing an Aura","pathname":"/hoon/aura-guide","siteSpaceId":"sitesp_q3yJh","description":"Step-by-step guide to creating custom auras in Hoon, covering aura design, base logic, pretty-printing, and parsing rules with a sexagesimal degrees example.","breadcrumbs":[{"label":"Hoon"}]},{"id":"ZgljCqobRMz2SkbwfbgM","title":"Irregular forms","pathname":"/hoon/irregular","siteSpaceId":"sitesp_q3yJh","description":"Reference guide to Hoon's irregular syntax forms, showing both the irregular and regular forms for common patterns with quick lookup table and detailed explanations.","breadcrumbs":[{"label":"Hoon"}]},{"id":"MBzr5wodqktf7QLM9reG","title":"JSON","pathname":"/hoon/json-guide","siteSpaceId":"sitesp_q3yJh","description":"Guide to working with JSON in Hoon, covering conversion between Hoon data structures and JSON using +enjs and +dejs functions, with practical examples and mark file creation.","breadcrumbs":[{"label":"Hoon"}]},{"id":"tHBFzXHNaLbQpOzs7Ko5","title":"Lagoon (Linear Algebra)","pathname":"/hoon/lagoon","siteSpaceId":"sitesp_q3yJh","description":"Documentation for the %base desk's /lib/lagoon.hoon library, which contains linear algebra operations.","breadcrumbs":[{"label":"Hoon"}]},{"id":"jNuSo2dwR9eHflEYwlbu","title":"Convenience functions","pathname":"/hoon/lagoon/conv","siteSpaceId":"sitesp_q3yJh","description":"","breadcrumbs":[{"label":"Hoon"},{"label":"Lagoon (Linear Algebra)"}]},{"id":"hqGSsskj0kcznX5BaVGz","title":"Builders","pathname":"/hoon/lagoon/build","siteSpaceId":"sitesp_q3yJh","description":"","breadcrumbs":[{"label":"Hoon"},{"label":"Lagoon (Linear Algebra)"}]},{"id":"PfqMZ7ZvY9EazD7qJTDC","title":"Structures","pathname":"/hoon/lagoon/structure","siteSpaceId":"sitesp_q3yJh","description":"","breadcrumbs":[{"label":"Hoon"},{"label":"Lagoon (Linear Algebra)"}]},{"id":"RDKfBFekJBYVbM8PtZuT","title":"Arithmetic","pathname":"/hoon/lagoon/math","siteSpaceId":"sitesp_q3yJh","description":"","breadcrumbs":[{"label":"Hoon"},{"label":"Lagoon (Linear Algebra)"}]},{"id":"zkDR9FSLRWVXSHq14Fcu","title":"Limbs and wings","pathname":"/hoon/limbs","siteSpaceId":"sitesp_q3yJh","description":"Introduction to limbs and wings in Hoon, which provide the primary mechanism for accessing data from the subject without traditional scope or environment concepts.","breadcrumbs":[{"label":"Hoon"}]},{"id":"NY5ubqekU8VecuWyjcvm","title":"Limbs","pathname":"/hoon/limbs/limb","siteSpaceId":"sitesp_q3yJh","description":"Reference for limbs in Hoon, which are attributes of the subject used to resolve to pieces of data (legs) or computations (arms) within the subject tree.","breadcrumbs":[{"label":"Hoon"},{"label":"Limbs and wings"}]},{"id":"PaTyP1QfG52Rgs4PjQ5W","title":"Wings","pathname":"/hoon/limbs/wing","siteSpaceId":"sitesp_q3yJh","description":"Reference for wings in Hoon, which are lists of limbs forming search paths into the subject to access nested data and computations.","breadcrumbs":[{"label":"Hoon"},{"label":"Limbs and wings"}]},{"id":"j2tR87F09dny41xHCHnw","title":"Mathematics","pathname":"/hoon/math","siteSpaceId":"sitesp_q3yJh","description":"Documentation for the %base desk's /lib/math.hoon library, which contains mathematical operations.","breadcrumbs":[{"label":"Hoon"}]},{"id":"Slo1FXfeRzUqFLZutBMi","title":"Mips (Maps of Maps)","pathname":"/hoon/mip","siteSpaceId":"sitesp_q3yJh","description":"Reference for working with mips (maps of maps) in Hoon using the mip library, covering mip operations like insertion, deletion, and retrieval.","breadcrumbs":[{"label":"Hoon"}]},{"id":"hip1oSjAcuUqGmGVbecF","title":"Parsing Text","pathname":"/hoon/parsing","siteSpaceId":"sitesp_q3yJh","description":"Guide to parsing text in Hoon using functional parsers and combinators, covering basic types like hair/nail/edge/rule and common parsing patterns.","breadcrumbs":[{"label":"Hoon"}]},{"id":"6E2Zb1RtT7xPQhM95QAx","title":"Runes","pathname":"/hoon/rune","siteSpaceId":"sitesp_q3yJh","description":"Reference documentation for Hoon's rune expressions organized by family.","breadcrumbs":[{"label":"Hoon"}]},{"id":"7Lde8pyBoXUKrEOtUHl5","title":"| bar · Cores","pathname":"/hoon/rune/bar","siteSpaceId":"sitesp_q3yJh","description":"Reference for the core rune family, including gates, doors, traps, and wet cores with detailed syntax and examples for each variant.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"RxgzQByvvFGH4Z1oSW5g","title":"$ buc · Structures","pathname":"/hoon/rune/buc","siteSpaceId":"sitesp_q3yJh","description":"Reference for Hoon's structure runes, including mold creation, validation, and type construction.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"QWgOzADgP7G9tAkV8jmu","title":"% cen · Calls","pathname":"/hoon/rune/cen","siteSpaceId":"sitesp_q3yJh","description":"Reference for the function call rune family, evaluating arms in cores and doors with various calling patterns and argument arrangements.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"crkAS7cfaQBVOWYCuaSv","title":": col · Cells","pathname":"/hoon/rune/col","siteSpaceId":"sitesp_q3yJh","description":"Reference for Hoon's cell constructor runes, with various forms including irregular syntax for common patterns.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"deJZYcdjr35Si1YDz2W5","title":". dot · Nock","pathname":"/hoon/rune/dot","siteSpaceId":"sitesp_q3yJh","description":"Reference for Hoon's Nock runes, including scrying with .^ and basic Nock operations like increment.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"RyBAKljHI9oOE0hVJTtk","title":"/ fas · Imports","pathname":"/hoon/rune/fas","siteSpaceId":"sitesp_q3yJh","description":"Reference for build system runes, used to import files from /sur and /lib directories among other locations.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"ANkcMjnfUgTaqeYkO0P5","title":"^ ket · Casts","pathname":"/hoon/rune/ket","siteSpaceId":"sitesp_q3yJh","description":"Reference for Hoon's type-casting rune family, which allows safe type transformations without violating constraints.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"u8rShxwZX5Jw89ca7S57","title":"+ lus · Arms","pathname":"/hoon/rune/lus","siteSpaceId":"sitesp_q3yJh","description":"Reference for the arm rune family used to define functions and other named expressions in cores, including normal computations, structure definitions, and constructors.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"KHfpwO3eD6fqiDuPjg5K","title":"; mic · Make","pathname":"/hoon/rune/mic","siteSpaceId":"sitesp_q3yJh","description":"Reference for the make rune family used for miscellaneous useful macros, including n-ary function calls and monadic notation.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"j2WJ93GVAlonuJ8plbvy","title":"~ sig · Hints","pathname":"/hoon/rune/sig","siteSpaceId":"sitesp_q3yJh","description":"Reference for the hint runes used to pass non-semantic information to the interpreter using Nock 11, including debugging and tracing.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"Sab8h0P3oUztqvMt3B3Y","title":"= tis · Subject","pathname":"/hoon/rune/tis","siteSpaceId":"sitesp_q3yJh","description":"Reference for Hoon's subject modification runes.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"75soDZhfwytgPqfYSHaD","title":"? wut · Conditionals","pathname":"/hoon/rune/wut","siteSpaceId":"sitesp_q3yJh","description":"Reference for the conditional runes used for logical operations, including branching, type testing, and boolean logic with type inference.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"pkKnf4aUW6xJRkY38OC4","title":"! zap · Wild","pathname":"/hoon/rune/zap","siteSpaceId":"sitesp_q3yJh","description":"Reference for the wild runes used for special operations, including AST introspection and vase creation for dynamic types.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"UsvhGQTQJrpQQ7qi09lY","title":"Constants (Atoms and Strings)","pathname":"/hoon/rune/constants","siteSpaceId":"sitesp_q3yJh","description":"Reference for constant expressions in Hoon, including cold atoms, strings with interpolation, and path syntax with examples.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"vrFcnljhPA3jsIirYDhI","title":"--, == · Terminators","pathname":"/hoon/rune/terminators","siteSpaceId":"sitesp_q3yJh","description":"Reference for Hoon terminators -- and == used to end core expressions and other variable-length expression sequences respectively.","breadcrumbs":[{"label":"Hoon"},{"label":"Runes"}]},{"id":"ryVMRF6qN0GMe2RifiuE","title":"Sail (HTML)","pathname":"/hoon/sail","siteSpaceId":"sitesp_q3yJh","description":"Guide to Sail, Urbit's domain-specific language for composing HTML and XML structures directly in Hoon, with syntax and examples for creating web interfaces.","breadcrumbs":[{"label":"Hoon"}]},{"id":"P0hmEiga0ZNJRVHSOlG8","title":"Serialization","pathname":"/hoon/serialization","siteSpaceId":"sitesp_q3yJh","description":"Guide to noun serialization in Hoon using jamming and cuing techniques for converting nouns to atoms and back, with compression through internal references.","breadcrumbs":[{"label":"Hoon"}]},{"id":"orFxpU0RUPP2F0AtLXh6","title":"Sets","pathname":"/hoon/sets","siteSpaceId":"sitesp_q3yJh","description":"Guide to working with sets in Hoon. Set creation, membership testing, and set operations like union, intersection, and difference.","breadcrumbs":[{"label":"Hoon"}]},{"id":"OXXpsiZ59aXxk3FJhaKf","title":"Standard Library","pathname":"/hoon/stdlib","siteSpaceId":"sitesp_q3yJh","description":"Reference documentation for the Hoon standard library, organized by layer from basic arithmetic to advanced compiler operations and text processing.","breadcrumbs":[{"label":"Hoon"}]},{"id":"FoHtq5wSufIQvcICbipy","title":"1a: Basic Arithmetic","pathname":"/hoon/stdlib/1a","siteSpaceId":"sitesp_q3yJh","description":"Reference for basic arithmetic functions in Hoon including addition, subtraction, multiplication, division, and comparison operations for unsigned integers.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"Y1Vbqs4xopy1Wn6mIln2","title":"1b: Tree Addressing","pathname":"/hoon/stdlib/1b","siteSpaceId":"sitesp_q3yJh","description":"Reference for tree addressing functions in Hoon using Nock's tree addressing scheme to navigate and manipulate tree structures.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"9oewiVmWYkZ91bNb5x6n","title":"1c: Molds and Mold-Builders","pathname":"/hoon/stdlib/1c","siteSpaceId":"sitesp_q3yJh","description":"Reference for fundamental container types and molds in Hoon including pair, list, unit, tree, gate, and other essential type definitions.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"2WNC3fjcH1Y6xrti0cPj","title":"2a: Unit Logic","pathname":"/hoon/stdlib/2a","siteSpaceId":"sitesp_q3yJh","description":"Reference for unit logic functions in Hoon, providing operations for working with optional values including binding, replacing null, and unit transformations.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"UNXHlCDZu3bM3y1hVBb0","title":"2b: List Logic","pathname":"/hoon/stdlib/2b","siteSpaceId":"sitesp_q3yJh","description":"Reference for `+list` manipulation functions in Hoon including searching, sorting, filtering, and transforming operations on `+list` data structures.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"gYE0vcQme3Gl5za3tsqM","title":"2c: Bit Arithmetic","pathname":"/hoon/stdlib/2c","siteSpaceId":"sitesp_q3yJh","description":"Reference for bit arithmetic functions in Hoon used for assembling, disassembling, and manipulating atoms at the bit level using block-based operations.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"LTxHiLtdK6wMciNXophF","title":"2d: Bit Logic","pathname":"/hoon/stdlib/2d","siteSpaceId":"sitesp_q3yJh","description":"Reference for bit logic functions in Hoon providing bitwise logical operations including binary AND, OR, XOR, and other bit manipulation functions.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"WPThXuR3Sk3zxFaxeAkl","title":"2e: Insecure Hashing","pathname":"/hoon/stdlib/2e","siteSpaceId":"sitesp_q3yJh","description":"Reference for non-cryptographic hash functions in Hoon including MurmurHash3 and other fast hashing algorithms for data structures and scrambling.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"puoEEyj9fH8Em7LIpaF3","title":"2f: Noun Ordering","pathname":"/hoon/stdlib/2f","siteSpaceId":"sitesp_q3yJh","description":"Reference for noun ordering functions in Hoon used for comparing and sorting nouns with different ordering schemes including alphabetical and depth order.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"rmQIRexUHG3z02Y2AdQe","title":"2g: Unsigned Powers","pathname":"/hoon/stdlib/2g","siteSpaceId":"sitesp_q3yJh","description":"Exponentiation and power-related operations for unsigned integers.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"LOOY38BqGaOO6GbZWo4M","title":"2h: Set Logic","pathname":"/hoon/stdlib/2h","siteSpaceId":"sitesp_q3yJh","description":"Set data structure operations including union, intersection, difference, and membership testing.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"Hj3rWw0Xxvf6GMsNflvA","title":"2i: Map Logic","pathname":"/hoon/stdlib/2i","siteSpaceId":"sitesp_q3yJh","description":"Functions for working with key-value `+map`s, including insertion, deletion, lookup, and `+map` transformations.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"jrNxAUO9uwtOMj6fZ8JY","title":"2j: Jar and Jug Logic","pathname":"/hoon/stdlib/2j","siteSpaceId":"sitesp_q3yJh","description":"Operations for `+jar` (map of lists) and jug (map of sets) data structures.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"XxX4Jltayr4SfNw2AX6r","title":"2k: Queue Logic","pathname":"/hoon/stdlib/2k","siteSpaceId":"sitesp_q3yJh","description":"Queue data structure operations for first-in, first-out data handling.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"ZmaCf3DhMsSMs65bcx1d","title":"2l: Container from Container","pathname":"/hoon/stdlib/2l","siteSpaceId":"sitesp_q3yJh","description":"Functions for converting between container types like lists, maps, and sets.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"oyIcGGxgk5Uof3hYy5kC","title":"2m: Container from Noun","pathname":"/hoon/stdlib/2m","siteSpaceId":"sitesp_q3yJh","description":"Functions for creating typed containers (lists, maps, sets) from raw nouns.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"3GbFFqrpvBxqcvHxBLBT","title":"2n: Functional Hacks","pathname":"/hoon/stdlib/2n","siteSpaceId":"sitesp_q3yJh","description":"Functional programming utilities including composition, currying, and common higher-order functions.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"MlPyW7hsGFC5yATmyK6H","title":"2o: Normalizing Containers","pathname":"/hoon/stdlib/2o","siteSpaceId":"sitesp_q3yJh","description":"Mold generators for common container types including maps, sets, queues, jars, and jugs.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"c7ZD6e3o1Z7C2m0bWIP4","title":"2p: Serialization","pathname":"/hoon/stdlib/2p","siteSpaceId":"sitesp_q3yJh","description":"Serialization functions for packing and unpacking `$noun`s to and from atoms.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"1KJdUZK7hTNwrGLL5fY6","title":"2q: Molds and Mold-Builders","pathname":"/hoon/stdlib/2q","siteSpaceId":"sitesp_q3yJh","description":"Core molds and mold builders for basic types like paths, dates, tanks, and strings.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"y6ZxWS3Xr8lYJWeu9G5O","title":"3a: Modular and Signed Ints","pathname":"/hoon/stdlib/3a","siteSpaceId":"sitesp_q3yJh","description":"Signed integer arithmetic and modular arithmetic operations.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"jUW6pJDyP9Zr9cqKb9Yl","title":"3b: Floating Point","pathname":"/hoon/stdlib/3b","siteSpaceId":"sitesp_q3yJh","description":"Floating-point arithmetic operations for binary and decimal floating-point numbers.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"3gkoAWfiphMBfXSjxjX5","title":"3c: Urbit Time","pathname":"/hoon/stdlib/3c","siteSpaceId":"sitesp_q3yJh","description":"Time and date manipulation functions for Urbit's datetime format.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"PHxhBPbSQpUyWH381Kx6","title":"3d: SHA Hash Family","pathname":"/hoon/stdlib/3d","siteSpaceId":"sitesp_q3yJh","description":"SHA cryptographic hash functions including SHA-1, SHA-256, and SHA-512.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"p9mzMHTVR5N4HNt8jUec","title":"3e: AES encryption (Removed)","pathname":"/hoon/stdlib/3e","siteSpaceId":"sitesp_q3yJh","description":"Deprecated section for AES encryption functions that have been removed from the standard library.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"fufNoh34LKUsYAHDNLIA","title":"3f: Scrambling","pathname":"/hoon/stdlib/3f","siteSpaceId":"sitesp_q3yJh","description":"Reversible scrambling operations used in Urbit's phonetic base encoding systems (@p and @q).","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"PPRGMPfAkNVVmGqBqE0K","title":"3g: Molds and Mold-Builders","pathname":"/hoon/stdlib/3g","siteSpaceId":"sitesp_q3yJh","description":"Molds for syntax parsing including coin literals, dimes, and format specifiers.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"FnYtnRZe1PpT852hnrQt","title":"4a: Exotic Bases","pathname":"/hoon/stdlib/4a","siteSpaceId":"sitesp_q3yJh","description":"Phonetic base encoding functions for Urbit's naming system and ship identities.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"3Dok4FRlYnfF7uiTv38N","title":"4b: Text Processing","pathname":"/hoon/stdlib/4b","siteSpaceId":"sitesp_q3yJh","description":"Text processing functions for printing, formatting, and converting between text types.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"u27yVBpD6AJ7yJwankyl","title":"4c: Tank Printer","pathname":"/hoon/stdlib/4c","siteSpaceId":"sitesp_q3yJh","description":"Tank printing and rendering functions for formatting structured output text.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"CWVmOra1hK2xDPPOVixM","title":"4d: Parsing (Tracing)","pathname":"/hoon/stdlib/4d","siteSpaceId":"sitesp_q3yJh","description":"Parsing utilities for tracking line and column positions during text parsing.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"IS3pSo9h5Jh7hnrpoWZY","title":"4e: Parsing (Combinators)","pathname":"/hoon/stdlib/4e","siteSpaceId":"sitesp_q3yJh","description":"Parser combinators for composing and combining parsing rules.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"458A7Nv5Gt6lnmfKONqX","title":"4f: Parsing (Rule-Builders)","pathname":"/hoon/stdlib/4f","siteSpaceId":"sitesp_q3yJh","description":"Parser rule builders for constructing parsing rules and modifying parser behavior.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"rV4k3KspYqjSxihEdBnE","title":"4g: Parsing (Outside Caller)","pathname":"/hoon/stdlib/4g","siteSpaceId":"sitesp_q3yJh","description":"Top-level parsing functions for parsing text from external sources.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"C3ZamljlXzcdAFIyeTtI","title":"4h: Parsing (ASCII Glyphs)","pathname":"/hoon/stdlib/4h","siteSpaceId":"sitesp_q3yJh","description":"Parsers for individual ASCII characters and punctuation marks.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"hjmPN5Q51dONpkLjVlUM","title":"4i: Parsing (Useful Idioms)","pathname":"/hoon/stdlib/4i","siteSpaceId":"sitesp_q3yJh","description":"Common parsing patterns for alphabetic, numeric, and whitespace characters.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"fStKIwPDGwu2utmflbXb","title":"4j: Parsing (Bases and Base Digits)","pathname":"/hoon/stdlib/4j","siteSpaceId":"sitesp_q3yJh","description":"Parsers for numeric literals in various bases including binary, hex, and decimal.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"y0E3Wyv7ktZklj9C02o5","title":"4k: Atom Printing","pathname":"/hoon/stdlib/4k","siteSpaceId":"sitesp_q3yJh","description":"Functions for rendering atoms and coins as human-readable text output.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"DoB5CZUi7CLqOVzQWGpA","title":"4l: Atom Parsing","pathname":"/hoon/stdlib/4l","siteSpaceId":"sitesp_q3yJh","description":"Functions for parsing atoms from text strings in various formats and bases.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"APGVWyn5aWtljZzJpFgX","title":"4m: Formatting Functions","pathname":"/hoon/stdlib/4m","siteSpaceId":"sitesp_q3yJh","description":"Functions for formatting and rendering dimes, atoms, and other data types as text.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"xJGSUiXvXuFXupNb6U0g","title":"4n: Virtualization","pathname":"/hoon/stdlib/4n","siteSpaceId":"sitesp_q3yJh","description":"Nock virtualization functions for safe execution and computation wrapping.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"01ZxRZ5FbC3zzjVSiaTG","title":"4o: Molds","pathname":"/hoon/stdlib/4o","siteSpaceId":"sitesp_q3yJh","description":"Advanced molds for Hoon's type system including type definitions and abstract syntax tree structures.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"g5oScRLwwCHEJpzOcV5v","title":"5a: Compiler Utilities","pathname":"/hoon/stdlib/5a","siteSpaceId":"sitesp_q3yJh","description":"Internal compiler utilities and functions used by the Hoon compiler backend.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"2n487qW4uvVbCjBbdTqQ","title":"5b: Macro Expansion","pathname":"/hoon/stdlib/5b","siteSpaceId":"sitesp_q3yJh","description":"Internal macro expansion utilities used by the Hoon compiler for syntax transformations.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"Y2XkYUvvFIhZnAgijv8w","title":"5c: Compiler Backend & Prettyprinter","pathname":"/hoon/stdlib/5c","siteSpaceId":"sitesp_q3yJh","description":"Hoon compiler backend and pretty-printing functions for code formatting and output.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"7VNCEXEOF09bIQEb6QPJ","title":"5d: Parser","pathname":"/hoon/stdlib/5d","siteSpaceId":"sitesp_q3yJh","description":"Hoon language parser with core parsing functions and rules for syntax analysis.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"OcGuRtokH6bJ1tRvKuwV","title":"5e: Molds and mold builders","pathname":"/hoon/stdlib/5e","siteSpaceId":"sitesp_q3yJh","description":"XML and markup-related molds for handling structured document formats.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"JBmKFn7sEo5dqQVoeZen","title":"5f: Profiling support","pathname":"/hoon/stdlib/5f","siteSpaceId":"sitesp_q3yJh","description":"Profiling and performance monitoring utilities for code analysis and optimization.","breadcrumbs":[{"label":"Hoon"},{"label":"Standard Library"}]},{"id":"ZP8ql1slAH2GvJdZQvn7","title":"Strings","pathname":"/hoon/strings","siteSpaceId":"sitesp_q3yJh","description":"Guide to Hoon's string types including cords, tapes, and text manipulation functions.","breadcrumbs":[{"label":"Hoon"}]},{"id":"yXUfa0iVx5znfbqPMoJu","title":"The Engine Pattern","pathname":"/hoon/engine-pattern","siteSpaceId":"sitesp_q3yJh","description":"Guide to the engine pattern in Hoon for managing nested cores and state with +abet.","breadcrumbs":[{"label":"Hoon"}]},{"id":"oCq800qxcQ1mb865uTBt","title":"Udon (Markdown-esque)","pathname":"/hoon/udon","siteSpaceId":"sitesp_q3yJh","description":"Udon markup language for document composition, similar to Markdown with Urbit-related affordances.","breadcrumbs":[{"label":"Hoon"}]},{"id":"iZv4RYuUFOy8yQzOLVPq","title":"Vases","pathname":"/hoon/vases","siteSpaceId":"sitesp_q3yJh","description":"Guide to vases, pairs of type and data used for runtime type information in Urbit.","breadcrumbs":[{"label":"Hoon"}]},{"id":"r3uTw5JwCWyJrw7AgGd2","title":"Zuse","pathname":"/hoon/zuse","siteSpaceId":"sitesp_q3yJh","description":"Documentation for the %base desk's /sys/zuse.hoon library, which contains helper functions for the kernel.","breadcrumbs":[{"label":"Hoon"}]},{"id":"NMr8hnO0XBoWC8E915zx","title":"2d(1-5): To JSON, Wains","pathname":"/hoon/zuse/2d_1-5","siteSpaceId":"sitesp_q3yJh","description":"Text formatting functions. Convert cords to wains (line lists), JSON encoding functions, format library utilities.","breadcrumbs":[{"label":"Hoon"},{"label":"Zuse"}]},{"id":"mcFiSjEBncS8yhVj3PTY","title":"2d(6): From JSON","pathname":"/hoon/zuse/2d_6","siteSpaceId":"sitesp_q3yJh","description":"JSON decoding functions that crash on failure. Fast JSON parsing without unit wrapping. dejs format library.","breadcrumbs":[{"label":"Hoon"},{"label":"Zuse"}]},{"id":"NyoeP1fed3KG8JPdvUcD","title":"2d(7): From JSON (unit)","pathname":"/hoon/zuse/2d_7","siteSpaceId":"sitesp_q3yJh","description":"JSON decoding functions that return units. Safe JSON parsing with error handling. dejs-soft format library.","breadcrumbs":[{"label":"Hoon"},{"label":"Zuse"}]},{"id":"8xgmf4mbOOfzRDhryUZu","title":"2e(2-3): Print & Parse JSON","pathname":"/hoon/zuse/2e_2-3","siteSpaceId":"sitesp_q3yJh","description":"JSON encoding and decoding functions. Print JSON to cord, parse JSON from cord. Part of format library.","breadcrumbs":[{"label":"Hoon"},{"label":"Zuse"}]},{"id":"jMhswcsHCpWZ6YFsENp3","title":"2m: Ordered Maps","pathname":"/hoon/zuse/2m","siteSpaceId":"sitesp_q3yJh","description":"Ordered maps (mop) data structure and operations. Maps with custom ordering functions, not hash-ordered.","breadcrumbs":[{"label":"Hoon"},{"label":"Zuse"}]},{"id":"5s2TXgELHNFv2VohyIer","title":"What is Nock?","pathname":"/nock/what-is-nock","siteSpaceId":"sitesp_q3yJh","description":"Introduction to Nock, Urbit's minimal assembly language and computation standard that underlies all of Urbit OS and Hoon compilation.","breadcrumbs":[{"label":"Nock"}]},{"id":"glnApli1IIiMwLxzSqI6","title":"Decrement","pathname":"/nock/decrement","siteSpaceId":"sitesp_q3yJh","description":"Exercise in implementing decrement in Nock as a practice for understanding the language.","breadcrumbs":[{"label":"Nock"}]},{"id":"p31v5EAnndXnUGcDKbJL","title":"Definition","pathname":"/nock/definition","siteSpaceId":"sitesp_q3yJh","description":"Formal definition of Nock with reduction rules and combinator specifications.","breadcrumbs":[{"label":"Nock"}]},{"id":"qKEJ09n4EFjns9bAwcBB","title":"Fast Hints and Jets","pathname":"/nock/jetting","siteSpaceId":"sitesp_q3yJh","description":"Runtime jetting system that accelerates Nock computation through fast hints. Cold state, hot state, warm state.","breadcrumbs":[{"label":"Nock"}]},{"id":"MC56d4JFR8EMJAaK6kQ0","title":"Implementations","pathname":"/nock/implementations","siteSpaceId":"sitesp_q3yJh","description":"Collection of Nock interpreter implementations in various programming languages.","breadcrumbs":[{"label":"Nock"}]},{"id":"mvKfTbE6p5Ks54EpmdDG","title":"Specification","pathname":"/nock/specification","siteSpaceId":"sitesp_q3yJh","description":"Complete Nock specification explaining the data model, reductions, and operational semantics.","breadcrumbs":[{"label":"Nock"}]},{"id":"en9sUSIRoveIlEWmUBK1","title":"Contents","pathname":"/user-manual/contents","siteSpaceId":"sitesp_q3yJh","description":"User manual for self-hosting an Urbit server. Guides for managing Urbit ID, running Urbit OS, and operating your personal Urbit server.","breadcrumbs":[{"label":"User Manual"}]},{"id":"bqjZujJDlM2utwqbdsPW","title":"Running Urbit","pathname":"/user-manual/running","siteSpaceId":"sitesp_q3yJh","description":"Guide to running Urbit in different contexts including cloud hosting and home servers.","breadcrumbs":[{"label":"User Manual"}]},{"id":"IEkxwQrJAInQJUEPANZK","title":"Cloud Hosting","pathname":"/user-manual/running/cloud-hosting","siteSpaceId":"sitesp_q3yJh","description":"Step-by-step guide to deploying Urbit on Digital Ocean cloud servers for remote access.","breadcrumbs":[{"label":"User Manual"},{"label":"Running Urbit"}]},{"id":"vsSh2RE2dbirwAlV7zmE","title":"Home Servers","pathname":"/user-manual/running/home-servers","siteSpaceId":"sitesp_q3yJh","description":"Guide to running Urbit on home server hardware using tools like Native Planet and Umbrel.","breadcrumbs":[{"label":"User Manual"},{"label":"Running Urbit"}]},{"id":"a3q4XxxCEFIEULx848ut","title":"Runtime Reference","pathname":"/user-manual/running/vere","siteSpaceId":"sitesp_q3yJh","description":"Guide to Vere, the Urbit runtime and Nock interpreter, for self-hosted users.","breadcrumbs":[{"label":"User Manual"},{"label":"Running Urbit"}]},{"id":"lUu9G2VFrXqV2Te2izBT","title":"Self-hosting S3 Storage with MinIO","pathname":"/user-manual/running/minio","siteSpaceId":"sitesp_q3yJh","description":"Guide to self-hosting MinIO S3-compatible storage for Urbit media uploads and avatars.","breadcrumbs":[{"label":"User Manual"},{"label":"Running Urbit"}]},{"id":"lmKDeVQqO5xsxdHRhLFh","title":"Urbit ID","pathname":"/user-manual/id","siteSpaceId":"sitesp_q3yJh","description":"This section covers managing your Urbit ID with Bridge, and some other practical information about using Urbit ID.","breadcrumbs":[{"label":"User Manual"}]},{"id":"lg0ny2Fg5aFFmTIGvOrk","title":"Bridge Troubleshooting","pathname":"/user-manual/id/bridge-troubleshooting","siteSpaceId":"sitesp_q3yJh","description":"Troubleshooting guide for common issues with the Bridge web application for Urbit ID management.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit ID"}]},{"id":"sX0wyLPLl8WUeu7DxcZi","title":"Creating an Invite Pool","pathname":"/user-manual/id/creating-an-invite-pool","siteSpaceId":"sitesp_q3yJh","description":"Guide for Urbit star owners to create invite pools for distributing planet invites to friends.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit ID"}]},{"id":"GKrnYEXrAEu7SNhUkQOB","title":"Get an Urbit ID","pathname":"/user-manual/id/get-id","siteSpaceId":"sitesp_q3yJh","description":"How users can acquire an Urbit ID.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit ID"}]},{"id":"8o59XNFDxGNEg0YROGFI","title":"Guide to Factory Resets","pathname":"/user-manual/id/guide-to-resets","siteSpaceId":"sitesp_q3yJh","description":"Guide to performing factory resets and understanding network continuity in Urbit.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit ID"}]},{"id":"Nc7YJLjzV63p8hiy9N0p","title":"HD Wallet (Master Ticket)","pathname":"/user-manual/id/hd-wallet","siteSpaceId":"sitesp_q3yJh","description":"Guide to Urbit HD wallets and master tickets for managing Urbit ID keys and ownership.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit ID"}]},{"id":"DO4US0xR1VW0NIUtW8SM","title":"Layer 2 for planets","pathname":"/user-manual/id/layer-2-for-planets","siteSpaceId":"sitesp_q3yJh","description":"How planet users can use Azimuth's Layer 2 rollup solution.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit ID"}]},{"id":"Krl2M7VpLqyNrwYyMTLL","title":"Layer 2 for stars","pathname":"/user-manual/id/l2-star","siteSpaceId":"sitesp_q3yJh","description":"How star owners can use Azimuth's Layer 2 rollup.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit ID"}]},{"id":"AKvkiSutVf22iQ7UySlB","title":"Proxies","pathname":"/user-manual/id/proxies","siteSpaceId":"sitesp_q3yJh","description":"Overview of Azimuth's Proxies system for users.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit ID"}]},{"id":"y1ySrBjoDRYLWAfOcRgL","title":"Using Bridge","pathname":"/user-manual/id/using-bridge","siteSpaceId":"sitesp_q3yJh","description":"Guide to using Bridge for managing Urbit ID, generating keyfiles, and setting networking keys.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit ID"}]},{"id":"PQjKGyRvRuKsTeeH7Kat","title":"Urbit OS","pathname":"/user-manual/os","siteSpaceId":"sitesp_q3yJh","description":"User manual for operating and interacting with Urbit OS including filesystem and command line.","breadcrumbs":[{"label":"User Manual"}]},{"id":"1nrbYHkGwCoUdnWXKz62","title":"Basics","pathname":"/user-manual/os/basics","siteSpaceId":"sitesp_q3yJh","description":"Basic instructions on how to set up an run an Urbit server for self-hosted users.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit OS"}]},{"id":"VO7MUFj8xIZ17kbsItRo","title":"Configuring S3 Storage","pathname":"/user-manual/os/s3","siteSpaceId":"sitesp_q3yJh","description":"Guide to setting up S3 cloud storage integration for file uploads and media sharing in Urbit.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit OS"}]},{"id":"lg1LZaDTeIX8CLaLSbPS","title":"Dojo Tools","pathname":"/user-manual/os/dojo-tools","siteSpaceId":"sitesp_q3yJh","description":"Complete refernce for the Dojo, Urbit's CLI. Includes common actions self-hosted users will need to run their Urbit server.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit OS"}]},{"id":"GpUjWvdjQoeDPMMgMkj4","title":"Filesystem","pathname":"/user-manual/os/filesystem","siteSpaceId":"sitesp_q3yJh","description":"Guide to Clay, Arvo's revision-controlled filesystem vane, for self-hosted users.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit OS"}]},{"id":"MD5rVFfReFLfM6p2OS3B","title":"Shell","pathname":"/user-manual/os/shell","siteSpaceId":"sitesp_q3yJh","description":"Guide to using the Dojo shell for command-line interaction and Hoon expression evaluation.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit OS"}]},{"id":"2VQXSO4hJOWyIc1tU1Dm","title":"Ship Troubleshooting","pathname":"/user-manual/os/ship-troubleshooting","siteSpaceId":"sitesp_q3yJh","description":"Troubleshooting guide for resolving common Urbit ship connectivity and operational issues.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit OS"}]},{"id":"XxvZZkCpwTiOHeJHuI58","title":"Star and Galaxy Operations","pathname":"/user-manual/os/stars-and-galaxies","siteSpaceId":"sitesp_q3yJh","description":"Guide for operating stars and galaxies including hosting, planet distribution, and etiquette.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit OS"}]},{"id":"3NiFigg7paLaVkxEl3pg","title":"Updates","pathname":"/user-manual/os/updates","siteSpaceId":"sitesp_q3yJh","description":"Guide to managing Urbit OS updates including Vere runtime, Arvo kernel, and application updates.","breadcrumbs":[{"label":"User Manual"},{"label":"Urbit OS"}]}]}