Creating your WebID on the SAFE Network (Alpha-2)

  1. Achieve trust level 1 status membership here on the SAFE Network Forum (just read some posts for an hour)

  2. Claim your token to connect to Alpha-2 network here:

  3. Download this release of Peruse browser:

  4. Unzip archive file and execute Peruse

  5. Create account, or log in if you’ve already created an account:

  6. Accept Peruse’s authorisation request:

    NOTICE: Upon accepting authorisation request, there is an known error still being debugged, which you may or may not experience. If it occurs, you’ll need to restart Peruse.

  7. Navigate to safe://webidea.ter

  8. Click on Create new WebId Profile button:

  9. Fill out form and submit:

  10. Observe newly created WebId in list:

  11. Navigate to safe://pat.ter

  12. Click on person icon in upper left-hand corner of Peruse and choose your WebId:

  13. Click on id me me button in upper right-hand corder of page:

  14. Upon accepting authorisation request, observe that you may now use the form of your wall to make a post on your own wall:

  15. Using the search bar, type in holonet.thrawn, click the person icon or presss enter, to view his profile:

  16. Post a message to Grand Admiral Thrawn’s wall!

For more details on WebId and managing your identities and social networking on the SAFE Network, see this topic: POC applications for identity management and RDF data

List of Websites/Safesites & WebIDs (Community Resources)
10 key facts about SAFE Network
List of Websites/Safesites & WebIDs (Community Resources)
10 key facts about SAFE Network
Introducing SAFE Wallet app

Nice step through. Just one thing to add: I think you need to say what’s involved in achieving Level 1 status:

Achieve level 1 status membership here in the SAFE network forum (just read some posts for an hour)


Works for me.
On second attempt though: at the first attempt I get an ‘authorization’-error. For some reason safe://webidea.ter didn’t come with an Auth Permission request (I didn’t see the mentioned ‘IPC error: …’ however).
Another remark: Peruse (on Linux Mint 18.3) doesn’t have the minimize, maximize and close icons (in the top right corner of the screen).


Also happens on Debian 9


also on Ubuntu 18.04


Is this feature replacing the standard pubID creation process for domains? Or is it instead adding another level of features so that the network will have both pubID and WebID?



You can create a publicId (or publicName, which is a term I’m leaning toward to avoid confusion). This is effectively your domain. This can then point to any bit of data on the network.

The current setup via WHM has it pointing to a subdomain container for resolving websites normally.

With the POC we’ve added the ability to point your publicName / subdomain combo to a mutable data which is a web ID.

But in theory you could point your domain at any network data…

As it stands webIds and their publicNames are not compatible with the WHM due to conventions in the data structures (although making them compatible is possible, that just wasn’t a priority yet).

It is indeed another level. With the publicID/publicName setup for domains being one thing. And then creating a webId essentially leverages publicNames to give you a url to easily access the WebId / RDF data.


Intuitively it seems that if that happened WebIDs could be too easily abused if it was baked in at a low level.

This is a relief. Thank you!

p.s. @joshuef I agree that publicName is probably a better monicker to better differentiate.


A book I read a few years ago. Related very much to what safe are doing. Thought I’d share it:


I’m a big fan of Doc Searls!


When I click the create button referenced in step 8, my primary browser (firefox) launches and two files attempt to download from the following locations:

Very odd. The form referenced in step 9 appears successfully. However once I click submit a not authorized error appears and I can go no further.

Any ideas what could be going wrong on my end?


@cooedfox are you using the version of the browser linked in this thread (and not the earlier webid release). Thise two requests are for a font used in the webapps, these should be served by the latest version of the browser.

If you do have that version can you let me know your system please.

Also @cooedfox, if step 9 is saying not authorized, you may have ignored the Auth request at some point. Try restarting the browser and crating again. You should accept the Auth request when loading the webid manager


Thanks for the reply! Will try again later on.


Puruse is grabbing stuff from the clearnet? I thought that wasn’t supposed to be possible?

I also noticed in the pat.ter code requests to https sites for namespaces. That’s a bit above my head, but I thought that was strange.

Hoping that puruse ability to request clearnet stuff will be removed or at the very least require that permission on a per app basis.


Clearnet req, open in the main browser,not peruse. That’s what’s happening don’t worry safe sites in peruse cannot make Http requests.

The poc version has the fonts needed built it at the moment (due to limitations in the app build right now).

I also noticed in the pat.ter code requests to https sites for namespaces.

Can you clarify what you’re seeing here?


As I said, it’s above my head as far as the coding goes, but there are a few things like:

const ACTSTREAMS = postsRdf.namespace( ‘’ );

throughout the code. This is from 175

I assume it’s defining a convention. Does it actually make a call to that or is that essentially a “comment” that isn’t a comment to let people know the standard?


Above code snippet do not mean that data is transported over https. What it means is "whenever we say “ACTSTREAMS” we really mean that exact same thing as some folks have defined over at “”.

Hope that helps.


That does help a lot. Thank you for that. I thought that might be what it was,

Interesting idea. Seems strange to me, after having my head in SAFE land for so long, that we would hard code a reference to such a mutable and transient object. Something like this coded with a safe:// reference would forever be a permanent record of what we’re trying to accomplish in the code.


When SAFEnet becomes a reality, developers can start using that space for publishing their semantic definitions (called “ontologies”). Makes little sense to use safe:// URIs before that namespace is a reality :wink:


Thanks for clarifying @jonas, you’re exactly right. Those urls are a reference (that’s not actually fetched in the code), to know we’re talking about the same thing. (The simple example is always a field ‘name’ in your data…, do you mean ‘first name’, ‘full name’, ‘last name’, ‘username’… these links hold such definitions for you data structure should anyone need to look them up.

And yeh, eventually these will be on safe:// urls, for dereferencing if anyone should want to. But for now this was a POC so we were moving fast (and also as it’s just us, we didn’t need to do any dereferencing).

Also sorry @wes that I didn’t respond sooner. Totally missed the notification here :expressionless: