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 +jammed 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|>]

Last updated