Urbit Docs
  • What is Urbit?
  • Get on Urbit
  • Build on Urbit
    • Contents
    • Environment Setup
    • Hoon School
      • 1. Hoon Syntax
      • 2. Azimuth (Urbit ID)
      • 3. Gates (Functions)
      • 4. Molds (Types)
      • 5. Cores
      • 6. Trees and Addressing
      • 7. Libraries
      • 8. Testing Code
      • 9. Text Processing I
      • 10. Cores and Doors
      • 11. Data Structures
      • 12. Type Checking
      • 13. Conditional Logic
      • 14. Subject-Oriented Programming
      • 15. Text Processing II
      • 16. Functional Programming
      • 17. Text Processing III
      • 18. Generic and Variant Cores
      • 19. Mathematics
    • App School I
      • 1. Arvo
      • 2. The Agent Core
      • 3. Imports and Aliases
      • 4. Lifecycle
      • 5. Cards
      • 6. Pokes
      • 7. Structures and Marks
      • 8. Subscriptions
      • 9. Vanes
      • 10. Scries
      • 11. Failure
      • 12. Next Steps
      • Appendix: Types
    • App School II (Full-Stack)
      • 1. Types
      • 2. Agent
      • 3. JSON
      • 4. Marks
      • 5. Eyre
      • 6. React app setup
      • 7. React app logic
      • 8. Desk and glob
      • 9. Summary
    • Core Academy
      • 1. Evaluating Nock
      • 2. Building Hoon
      • 3. The Core Stack
      • 4. Arvo I: The Main Sequence
      • 5. Arvo II: The Boot Sequence
      • 6. Vere I: u3 and the Serf
      • 7. Vere II: The Loom
      • 8. Vanes I: Behn, Dill, Kahn, Lick
      • 9. Vanes II: Ames
      • 10. Vanes III: Eyre, Iris
      • 11. Vanes IV: Clay
      • 12. Vanes V: Gall and Userspace
      • 13. Vanes VI: Khan, Lick
      • 14. Vanes VII: Jael, Azimuth
    • Runtime
      • U3
      • Conn.c Guide
      • How to Write a Jet
      • API Overview by Prefix
      • C in Urbit
      • Cryptography
      • Land of Nouns
    • Tools
      • Useful Links
      • JS Libraries
        • HTTP API
      • Docs App
        • File Format
        • Index File
        • Suggested Structure
    • Userspace
      • Command-Line App Tutorial
      • Remote Scry
      • Unit Tests
      • Software Distribution
        • Software Distribution Guide
        • Docket File
        • Glob
      • Examples
        • Building a CLI App
        • Debugging Wrapper
        • Host a Website
        • Serving a JS Game
        • Ship Monitoring
        • Styled Text
  • Urbit ID
    • What is Urbit ID?
    • Azimuth Data Flow
    • Life and Rift
    • Urbit HD Wallet
    • Advanced Azimuth Tools
    • Custom Roller Tutorial
    • Azimuth.eth Reference
    • Ecliptic.eth Reference
    • Layer 2
      • L2 Actions
      • L2 Rollers
      • L2 Roller HTTP RPC-API
      • L2 Transaction Format
  • Urbit OS
    • What is Urbit OS?
    • Base
      • Hood
      • Threads
        • Basics Tutorial
          • Bind
          • Fundamentals
          • Input
          • Output
          • Summary
        • HTTP API Guide
        • Spider API Reference
        • Strandio Reference
        • Examples
          • Child Thread
          • Fetch JSON
          • Gall
            • Poke Thread
            • Start Thread
            • Stop Thread
            • Take Facts
            • Take Result
          • Main-loop
          • Poke Agent
          • Scry
          • Take Fact
    • Kernel
      • Arvo
        • Cryptography
        • Move Trace
        • Scries
        • Subscriptions
      • Ames
        • Ames API Reference
        • Ames Cryptography
        • Ames Data Types
        • Ames Scry Reference
      • Behn
        • Behn API Reference
        • Behn Examples
        • Behn Scry Reference
      • Clay
        • Clay API Reference
        • Clay Architecture
        • Clay Data Types
        • Clay Examples
        • Clay Scry Reference
        • Filesystem Hierarchy
        • Marks
          • Mark Examples
          • Using Marks
          • Writing Marks
        • Using Clay
      • Dill
        • Dill API Reference
        • Dill Data Types
        • Dill Scry Reference
      • Eyre
        • EAuth
        • Eyre Data Types
        • Eyre External API
        • Eyre Internal API
        • Eyre Scry Reference
        • Low-Level Eyre Guide
        • Noun channels
      • Gall
        • Gall API Reference
        • Gall Data Types
        • Gall Scry Reference
      • Iris
        • Iris API Reference
        • Iris Data Types
        • Iris Example
      • Jael
        • Jael API Reference
        • Jael Data Types
        • Jael Examples
        • Jael Scry Reference
      • Khan
        • Khan API Reference
        • Khan Data Types
        • Khan Example
      • Lick
        • Lick API Reference
        • Lick Guide
        • Lick Examples
        • Lick Scry Reference
  • Hoon
    • Why Hoon?
    • Advanced Types
    • Arvo
    • Auras
    • Basic Types
    • Cheat Sheet
    • Cryptography
    • Examples
      • ABC Blocks
      • Competitive Programming
      • Emirp
      • Gleichniszahlenreihe
      • Islands
      • Luhn Number
      • Minimum Path Sum
      • Phone Letters
      • Restore IP
      • Rhonda Numbers
      • Roman Numerals
      • Solitaire Cipher
      • Water Towers
    • Generators
    • Hoon Errors
    • Hoon Style Guide
    • Implementing an Aura
    • Irregular forms
    • JSON
    • Limbs and wings
      • Limbs
      • Wings
    • Mips (Maps of Maps)
    • Parsing Text
    • Runes
      • | bar · Cores
      • $ buc · Structures
      • % cen · Calls
      • : col · Cells
      • . dot · Nock
      • / fas · Imports
      • ^ ket · Casts
      • + lus · Arms
      • ; mic · Make
      • ~ sig · Hints
      • = tis · Subject
      • ? wut · Conditionals
      • ! zap · Wild
      • Constants (Atoms and Strings)
      • --, == · Terminators
    • Sail (HTML)
    • Serialization
    • Sets
    • Standard Library
      • 1a: Basic Arithmetic
      • 1b: Tree Addressing
      • 1c: Molds and Mold-Builders
      • 2a: Unit Logic
      • 2b: List Logic
      • 2c: Bit Arithmetic
      • 2d: Bit Logic
      • 2e: Insecure Hashing
      • 2f: Noun Ordering
      • 2g: Unsigned Powers
      • 2h: Set Logic
      • 2i: Map Logic
      • 2j: Jar and Jug Logic
      • 2k: Queue Logic
      • 2l: Container from Container
      • 2m: Container from Noun
      • 2n: Functional Hacks
      • 2o: Normalizing Containers
      • 2p: Serialization
      • 2q: Molds and Mold-Builders
      • 3a: Modular and Signed Ints
      • 3b: Floating Point
      • 3c: Urbit Time
      • 3d: SHA Hash Family
      • 3e: AES encryption (Removed)
      • 3f: Scrambling
      • 3g: Molds and Mold-Builders
      • 4a: Exotic Bases
      • 4b: Text Processing
      • 4c: Tank Printer
      • 4d: Parsing (Tracing)
      • 4e: Parsing (Combinators)
      • 4f: Parsing (Rule-Builders)
      • 4g: Parsing (Outside Caller)
      • 4h: Parsing (ASCII Glyphs)
      • 4i: Parsing (Useful Idioms)
      • 4j: Parsing (Bases and Base Digits)
      • 4k: Atom Printing
      • 4l: Atom Parsing
      • 4m: Formatting Functions
      • 4n: Virtualization
      • 4o: Molds
      • 5a: Compiler Utilities
      • 5b: Macro Expansion
      • 5c: Compiler Backend & Prettyprinter
      • 5d: Parser
      • 5e: Molds and mold builders
      • 5f: Profiling support
    • Strings
    • The Engine Pattern
    • Udon (Markdown-esque)
    • Vases
    • Zuse
      • 2d(1-5): To JSON, Wains
      • 2d(6): From JSON
      • 2d(7): From JSON (unit)
      • 2e(2-3): Print & Parse JSON
      • 2m: Ordered Maps
  • Nock
    • What is Nock?
    • Decrement
    • Definition
    • Fast Hints and Jets
    • Implementations
    • Specification
  • User Manual
    • Contents
    • Running Urbit
      • Cloud Hosting
      • Home Servers
      • Runtime Reference
      • Self-hosting S3 Storage with MinIO
    • Urbit ID
      • Bridge Troubleshooting
      • Creating an Invite Pool
      • Get an Urbit ID
      • Guide to Factory Resets
      • HD Wallet (Master Ticket)
      • Layer 2 for planets
      • Layer 2 for stars
      • Proxies
      • Using Bridge
    • Urbit OS
      • Basics
      • Configuring S3 Storage
      • Dojo Tools
      • Filesystem
      • Shell
      • Ship Troubleshooting
      • Star and Galaxy Operations
      • Updates
Powered by GitBook

GitHub

  • Urbit ID
  • Urbit OS
  • Runtime

Resources

  • YouTube
  • Whitepaper
  • Awesome Urbit

Contact

  • X
  • Email
  • Gather
On this page
  • %step
  • %code
  • %fake
  • %life
  • %lyfe
  • %rift
  • %ryft
  • %vein
  • %vile
  • %deed
  • %earl
  • %sein
  • %saxo
  • %subscriptions
  • %sources
  • %turf
Edit on GitHub
  1. Urbit OS
  2. Kernel
  3. Jael

Jael Scry Reference

Jael's scry endpoints never take a care. The particular endpoints are specified in the place of the desk in the path prefix, then additional arguments are specified in the path. Note this style of scry path is considered outdated, and may be changed in the future.

%step

A %step scry gets the current web login code revision number. It takes your ship name as its path and the type returned is a @ud.

Example

> .^(@ud %j /=step=/(scot %p our))
0

%code

A %code scry gets the current web login code. It takes your ship name as its path and the type returned is a @p.

Example

> .^(@p %j /=code=/(scot %p our))
~lidlut-tabwed-pillex-ridrup

%fake

A %fake scry checks whether the current ship is fake (a development ship booted with the -F option). The type returned is a ?.

Example

On a fake ~zod:

> .^(? %j /=fake=)
%.y

On a real planet:

> .^(? %j /=fake=)
%.n

%life

A %life scry gets the current life (key revision number) of a ship if known, otherwise it crashes. It takes a ship as its path and the type returned is a @ud.

Example

> .^(@ud %j /=life=/(scot %p our))
1

%lyfe

A %lyfe scry gets the current unitized life (key revision number) of a ship if known, otherwise returns ~. It takes a ship as its path and the type returned is a (unit @ud).

Example

> .^((unit @ud) %j /=lyfe=/(scot %p our))
[~ 1]

%rift

A %rift scry gets the current rift (continuity number) of a ship if known, otherwise it crashes. It takes a ship as its path and the type returned is a @ud.

Example

.^(@ud %j /=rift=/(scot %p our))
1

%ryft

A %ryft scry gets the current unitized rift (continuity number) of a ship if known, otherwise it returns ~. It takes a ship as its path and the type returned is a (unit @ud).

Example

> .^((unit @ud) %j /=ryft=/(scot %p our))
[~ 1]

%vein

A %vein scry gets your ship's private key for the specified life. It takes a life @ud as its path and the type returned is a ring.

Example

> .^(@uw %j /=vein=/1)
0w84.0MwlQ.y2Ly9.6HVmH.8SYwo.EvuLC.f5YRw.T2NzD.EHtjZ.gpHZb.J0Pu5.aTGVL.UugSA.EZ~E9.~PODC.cohVD.B1zWj.ZWnJ2

%vile

A %vile scry gets your jammmed private boot parameters at your ship's current life. It takes no additional arguments in its path. The type returned is a @ which is a jammed $seed.

Examples

> .^(@ %j /=vile=)
73.825.716.773.695.891.582.219.653.213.376.682.408.892.852.624.025.387.720.465.884.094.267.975.202.807.896.467.150.282.384.122.104.470.678.155.055.914.950.319.747.613.107.324.566.157.366.237.078.063.363.527.599.682.750.233
> ;;(seed:jael (cue .^(@ %j /=vile=)))
[ who=~zod
  lyf=1
    key
  1.729.646.917.183.337.262.068.568.133.450.460.269.618.308.934.734.494.661.340.450.478.360.301.077.532.415.587.141.242.844.893.269.500.211.196.916.184.768.225.437.577.083.064.475.012.067.992.317.942.521.494.338
  sig=~
]

%deed

A %deed scry gets the life, pubkey and maybe a signature if the ship in question is a comet. It takes the target ship and life as its path like /~sampel-palnet/1 and the type returned is a [life pass (unit @ux)].

Example

> .^([life pass (unit @ux)] %j /=deed=/(scot %p our)/1)
[ 1
  2.649.818.598.466.464.524.534.996.841.661.372.043.001.125.438.577.869.575.450.096.229.472.239.369.342.882.589.479.483.389.735.480.760.982.635.242.955.515.616.049.650.771.700.602.823.946.406.713.457.849.302.626
  ~
]

%earl

A %earl scry deterministically derives a private key for a moon. Note this is a holdover from an old version of moon infrastructure, the current |moon generator doesn't use this and instead generates moon private keys non-deterministically. It takes the moon name and your ship's current life (not the moon's life) as its path like /~doznec-dozzod-dozzod-dozzod/1. The type returned is a $seed, the life of the moon in the lyf field of the seed will always be 1.

Example

> .^(seed:jael %j /=earl=/~doznec-dozzod-dozzod-dozzod/1)
[ who=~doznec-dozzod-dozzod-dozzod
  lyf=1
    key
  1.055.418.877.440.612.330.077.014.834.463.499.863.663.523.990.336.436.220.536.921.445.512.367.957.276.250.223.724.881.932.188.751.226.308.505.496.234.256.625.462.295.144.257.529.749.880.805.247.600.674.018.370
  sig=~
]

%sein

A %sein scry gets the sponsor for the specified ship. This scry is used implicitly by sein:title. It takes the target ship as its path and the type returned is a @p.

Example

> .^(@p %j /=sein=/~sampel-palnet)
~talpur

%saxo

A %saxo scry gets the sponsorship chain for the target ship (including the target ship itself). For example, a %saxo scry for a planet will return the planet, its star and the star's galaxy. This scry is used implicitly by saxo:title. It takes the target ship as its path and the type returned is a (list @p).

Example

> .^((list @p) %j /=saxo=/~sampel-palnet)
~[~sampel-palnet ~talpur ~pur]

%subscriptions

A %subscriptions scry gets the current state of subscriptions to public key updates (typically initiated with a %public-keys task). It takes a life as its path and returns a triple consisting of the following:

yen=(jug duct ship)  ::  trackers
ney=(jug ship duct)  ::  reverse trackers
nel=(set duct)       ::  trackers of all

The yen jug maps subscribed ducts to the ships they're tracking, and ney is just the inverse, mapping tracked ships to subscribed ducts. The nel set contains ducts track all public key updates.

Example

.^([yen=(jug duct ship) ney=(jug ship duct) nel=(set duct)] %j /=subscriptions=/1)
[yen={} ney={} nel={}]

%sources

A %sources scry gets the current state of Jael's sources for PKI updates. It takes no additional arguments in its path and returns a $state-eth-node.

Example

> .^(state-eth-node:jael %j /=sources=)
[ top-source-id=0
  sources={}
  sources-reverse={}
  default-source=0
  ship-sources={}
  ship-sources-reverse={}
]

%turf

A %turf scry gets the list of domain prefixes for galaxies. It takes no additional arguments in its path. It returns a (list turf), where a turf is a TLD-first (list @t), so urbit.org as a turf is ~['org' 'urbit'].

Example

> .^((list turf) %j /=turf=)
~[<|org urbit|>]
PreviousJael ExamplesNextKhan

Last updated 1 day ago