Get on Urbit
Urbit is two things: Urbit ID, and Urbit OS. To get on the network, you'll need both.
This guide will walk through the steps of getting an Urbit ID, downloading its key, installing the Urbit runtime, and using that to boot up your Urbit OS.
Get on Urbit faster
If you want a quicker and easier way to get on Urbit, you can skip this guide and use a hosting provider instead. Tlon offers a free Urbit ID and hosting in the cloud that only takes a few clicks to get up and running, available here.
Requirements
Ability to use a terminal / command line. We'll go through everything you need to do step by step.
If you want to buy an Urbit ID you will need either...
A credit card
Some ETH and familiarity with Ethereum wallets, gas fees, security best practices, etc.
A computer or server running macOS or Linux, with at least 4GB of RAM and around 4GB of disk space. (You can usually get away with 2GB of RAM plus a swapfile and less disk space, but this might become a problem in the future as your Urbit grows.)
(If you want to run Urbit on a Windows computer you should be able to do so with Windows Subsystem for Linux (WSL), but that's outside the scope of this guide.)
1. Get an Urbit ID
Every Urbit OS server is made unique by its Urbit ID, which others can use to reach you on the network. There are five ranks of Urbit ID, but the one an ordinary user needs is a planet, which has a four-syllable name like "~sampel-palnet". Unless you know someone who can gift you one, or you want to get one from a cloud hosting provider like Tlon, you'll need to buy one.
Here are the best places to buy planets:
Layer 1
The largest NFT marketplace. Accepts ETH.
Layer 2
Third-party L2 planet store. Accepts ETH.
Layer 2
Third-party L2 planet store. Accepts credit cards.
Originally, all Urbit IDs were ERC-721 NFTs on Ethereum. In 2021, Tlon introduced a Layer 2 solution to reduce transaction costs on Ethereum. This means there are two places where ownership of your Urbit ID could be recorded:
Layer 1: These ordinary NFTs can traded on regular NFT marketplaces like OpenSea, and other smart contracts can interact with them. It'll cost you a bit of gas if you need to do an onchain action like a factory reset or changing your networking keys. Ownership of these IDs is recorded in Urbit's Azimuth.eth smart contract.
Layer 2: With a Layer 2 planet you pay no transaction fee for onchain actions like factory resets and key changes. (Tlon runs the L2 system you'll use by default and they pay the very small L2 fees.) However, normal Ethereum smart contracts and NFT marketplaces cannot see or interact with L2 IDs. While there have been proposals to offer an L2 -> L1 bridge that would turn L2 IDs into ordinary NFTs on Ethereum, you should not assume this will come to pass when making a purchase decision. Ownership of your Urbit ID is not recorded in the Azimuth smart contract, but every onchain transaction associated with your ID is recorded on Ethereum.
In either case, your ownership of your planet is secured by your private key. Only you can access your Urbit ID, only you can boot up an Urbit server with your ID. Messages attributed to your ID will only ever come from your Urbit. Nobody can take your ID away from you unless they know your private key, and nobody should know your private key. Your Urbit is yours, forever.
2. Get your keyfile
Once you've got an Urbit ID, the next step is to download its private networking key (contained in a "keyfile") so you can boot it up. This process can vary depending on how you obtained your ID and where it's stored.
If you got an L1 planet from somewhere like OpenSea, it was likely transferred directly to your Ethereum wallet. Here are the steps to get your keyfile:
Go to bridge.urbit.org.
Conect your wallet.
Click on your planet, which should be listed there. (If you only have one Urbit ID in your wallet, click "Set Network Keys" on the popup and go to Step 5.)
Go to the "OS" section.
Click "Initialize" next to "Network Keys". (See the note below if it says something else.)
Make sure you have a little ETH to pay the transaction fee, then click on "Set Network Keys".
Click "Send Transaction".
Approve the transaction in your wallet.
Wait until the transaction completes and it says "Network Keys have been set" in bridge.urbit.org.
Click "Download Keyfile". Ignore the prompt about
|rekey
.A file called something like
sampel-palnet-1.key
will have been downloaded. Don't lose it; you'll need it for the next step.
3. Get the Urbit runtime
To boot up a new Urbit, you'll need the Urbit runtime. There are four pre-built versions of the runtime available, one for each platform we support. Pick the one you're on and copy/paste the provided curl
command into your terminal.
Open a terminal and run:
curl -L https://urbit.org/install/macos-aarch64/latest | tar xzk -s '/.*/urbit/'
4. Boot up your Urbit
Having acquired a planet and downloaded its keyfile, you can now boot up your Urbit.
The easiest way to run an Urbit is inside a screen
session. screen
is installed on macOS and Linux by default; it lets you "detach" from terminal sessions, leave them running in the background, then "attach" to them again later.
To start a new screen
session and name it urbit
, run the following command in your terminal:
screen -S urbit
You are now inside a screen
session. You can boot your Urbit with the command below, replacing sampel-palnet
with your actual planet name, and /path/to/sampel-palnet-1.key
with the path to the keyfile you downloaded previously. (If you're on macOS, it's probably ~/Downloads/sampel-palnet-1.key
.)
./urbit -w sampel-palnet -k /path/to/sampel-palnet-1.key
(Very rarely this can result in an error message pre-boot error: %not-keyed
. If you see this, check your ETH wallet in Etherscan for a "Configure Keys" transaction. If you've confirmed your planet's keys have been set, leave it for a while and try again.)
Your planet will begin to boot up, which will take a few minutes. You'll know your planet has booted when you see something like this in the terminal:
~sampel-palnet:dojo>
This is the Dojo, Urbit's command-line interface.
For the moment, shut the ship down again by typing |exit
or pressing Ctrl+D
. If you see a loading spinner like "<<behn>>", you won't be able to type until that goes away. Your planet might be installing a couple of apps, but since Urbit OS has no concept of RAM you can safely turn it off at any time without worrying about breaking it.
Linux default port
Linux won't let Urbit's web server bind port 80, and it will instead default to port 8080. If you want it to bind port 80, you'll need to do the following in the terminal:
# if you're on ubuntu and don't already have setcap
sudo apt-get install libcap2-bin
# replace sampel-palnet with the actual folder name
sudo setcap 'cap_net_bind_service=+ep' sampel-palnet/.run
For ease of portability the Urbit runtime has made a copy of itself in the sampel-palnet
folder, so you don't need the separate urbit
executable anymore. Delete it by typing rm urbit
.
At this point you can also delete your keyfile because it can never be used again.
Spin up your planet again by running sampel-palnet/.run
, and you'll be back at the Dojo.
Next, you'll want to get the web login code so you can login to your Urbit's web interface in a browser.
To do so, type +code
in the Dojo and press Return
. It'll give you a code that looks like lidlut-tabwed-pillex-ridrup
. Highlight that and copy it.
Save your code
If you want, you can save your +code
in a password manager or write it down somewhere safe. Your +code
isn't your private key, just a web login password. If you think your +code
has been compromised, you can just reset it in the Dojo to log out of all browser sessions in your Urbit.
Detach from this screen
session by hitting Ctrl+A
, then hitting D
. It should say something like [detached from 1819892.urbit]
. You can now close or quit the terminal entirely; your Urbit is still running in the screen
session.
If you need to get back to the Dojo again in the future, just open a terminal and run screen -r urbit
to reattach to the urbit
session.
5. Login to Landscape
With your Urbit now running and your web login code copied, you can open a browser and go to http://localhost
. (If that doesn't work, try http://localhost:8080
.) You should see with your Urbit's login screen. Paste in the code you got from running +code
in the Dojo (it looks like lidlut-tabwed-pillex-ridrup
) and click "Continue". You'll now be in your Landscape homescreen.
To join your first group, you can open the Tlon app by clicking on its tile, then click the +
in the sidebar and click "Join a group". Paste in ~halbex-palheb/uf-public
, the Urbit Foundation's official public group, and click "Go", then click "Join group".
Have a look at the Urbit Foundation group for a list of more groups on the network to join.
If you'd like to see what apps are available other than Tlon, click on the "Get Urbit Apps" button at the top of the Landscape homescreen. There are a few suggestions listed there. If you know an app's publisher (e.g. ~bitdeg) or "shortcode" (e.g. ~bitdeg/hits
), you can type that in the searchbar at the top of the "Get Urbit Apps" menu.
Last updated