Public ID's (Discussion)


I’m trying to understand Public ID’s on the SAFE Network and realized they’re so much more than what I thought! Let’s start with the question…

What are Public ID’s on SAFE?

  • They are (unique) names registered on the SAFE Network. Once that name is registered, no one else can register the exact same name.
  • They can be (transferred) from one owner to another. This allows users to trade/sell their Public ID’s.
  • They are (restricted) to lower case letters, and numbers… and no special characters.

"This will be used on all the apps and services on the network."

The quote from this screen shot is the most telling of all. But what does it really mean?

Use Case Examples
I registered my public ID as “dyamanaka.” Now what?

  • Whenever I create/upload a website. The domain address is “dyamanaka.safenet”
  • If someone wants to msg me, they send to: dyamanaka@safenet?
  • If I post on a blog, it says posted by: dyamanaka

The list goes on and on with every new app/service utilizing my Public ID. At glance, it looks like an email, blog, website domain… but it really is everything we can think of.

Here’s what will really blow your mind. Your Public ID is unique, which means no one can impersonate you on different websites, blogs, etc. Well not easily anyway. So “dyamanaka” on youtube.safenet is the same “dyamanaka” on safebook.safenet. How cool is that!!!

How many ID’s?
This raises a question as to how many Public ID’s an account could/should have. If there are more than one Public ID per permission session, how do the APPS know which one to use? Will there be a popup list of options? Will users accidentally mix different ID’s with different APPS?

When I played MMO games, I managed multiple characters (ID’s) BUT each one has to be selected before I entered the game. If I wanted to switch, I needed to log out first. This process made sure I “knew” who I was playing. This may not be the case once you log into your SAFE account as all Public ID’s will be available to all APPS?

Suggestion: Manage Public ID’s in the Launcher
If Public ID’s are associated to your SAFE account, shouldn’t they be managed by the Launcher instead of an APP? Imagine logging to your SAFE account and selecting 1 of 4 Public IDs. No matter what APP you’re using, it will use the “selected” Public ID._

How much should it cost?
If you realize how beneficial a Public ID can become, we should discuss value. From a Network point of view, Public ID’s are both rare and high utility. From the Consumer point of view, this translates into very high value. How much exactly is subjective, but it’s definitely worth more than regular PUT data.

For this reason, I suggest Public ID’s are treated by the Network as a “special PUT” class. My first thought is to treat it 1000 times greater than a normal PUT. So if a regular PUT is around 1MB, then a special PUT is 1GB. This is still a very, very tiny cost since 1GB is around $0.06.

This OP is meant to discuss not dictate. I hope we can come up with better ideas and community consensus regarding value and game changing benefits of Public ID’s. This is so exciting!

Special note: I don’t think MaidSafe or MaidSafe Foundation wants to pre-sell the most popular names. But I’m also not against them doing it to help themselves and the community by funding future development.

Discussion on the use of Public_IDs in Apps
Urbit is a virtual city in the cloud (address space crowdsale)
What should my PublicID/service be?

Quite impressive, isn’t it?

It’s almost like it’s the way the internet is supposed to be…

Kind of ridiculous that this type thing is such a problem for everybody in today’s internet :stuck_out_tongue:



I added a suggestion to the OP. I’m not 100% clear how Public ID’s are created/stored/managed, but if this is possible, it would make the user experience so much better.


I really very strongly dislike the current state of these public ideas and the tie to some sort of old school old world paradigms called dns names. This all doesnt make any sense. These registering names and literally “buying” numbers or words and letters (such as in todays oldschool hierarchical dns based hosting and namespace world) contradicts equality and self governing idea of maidsafe where nodes and everything were to be considered equals amongst equals.

Also that other thread where buying and registering names for the financing of maidsafe as a company was proposed.

In facty, I dont understand why we would introduce a .safenet namespace to begin with as there is just no need to base anything on this kind of old world hierarchies, but it would be much better to base everything on keys that are verifiable and cryptographically sound.

Why would there be only one “domain” (or realm) named david or your favourite name or expression here, when there are millions and billions who would like to use this word(ing) or have legitimate interest and use for this.

All of this dns stuff imposed upon the much more fantastic and liberal architecture and design of the maidsafe concept seems like a huge disappointment to me.

Also this safenet could only be considered a second level domain if at all and there will be cries for mirroring the old world dns structure into maidsafe space and recreate the current situation from out there and there will be a lot of mess resulting from these early mistakes. I can already see it coming.

So please dont go down this road. We dont need old ideas mirrored into the maidsafe world if there is just no need for it.

Thanks and cheers.


It is necessary because cryptographic keys are hard for people to remember.


Yes I was under the impression that this was a temporary fix, and we will have http:// replaced by safe:// very soon instead of continuing to use .safenet over today’s clearnet.

We are still trying to become an entirely new internet correct?

This has always been a huge point of mine.


Ever heard pet naming system?

Micro dns is better than centralized planned dns like what maidsafe has in place right now.


There are several questions concerns raised in your post. I’ll try to address them one by one. I’m sure other people may have similar questions/concerns. The following is my point of view based on events that led to where we are today.

Q: Why are we using a dot extention (.safenet) instead of a new protocol like (SAFE:)?

A: We initially tried to use (SAFE:) to replace (HTTP:) but this required a browser plugin for each browser, which means download and installation, and then support from browser updates like (firefox, chrome, and others). It came down to what works and ease-of-use. MaidSafe transitioned from (SAFE:) to (.safenet) which made the browser setup VERY easy and less work for the devs. We don’t need a plugin anymore… just copy/past the .pac address into your browser settings and you’re good to go.

Q: Why do Public ID’s behave like DNS on SAFE websites?

A: Accurate navigation is the main reason. If we tell people go to (dyamanaka.safenet), everyone must navigate to the same website. Some would argue this isn’t a problem using a decentralized listing service… see thread V - No DNS. We have 6 threads discussing solutions to website navigation, squatting, transferring, and ownership. You can review and comment these threads in more detail. As a consumer specialist, it comes down to a better user experience. While people like familiar, they’re also willing to upgrade if it makes life easier.

RFC - Decentralised Naming System
RFC - Decentralised Naming System II - continuous auction (by Seneca)
RFC - Decentralised Naming System III - prevent domain transfer (dirvine)
RFC - Decentralised Naming System IV - inhibiting domain squatting (happybeing)
RFC - Decentralised Naming System V - No DNS
The Petname System

Q: That is a valid concern. Said another way… who gets exclusive “use” over commonly used names?

A1: These Public ID’s must be (unique) in order to function correctly. Imagine dialing the exact same number and randomly calling up 1000 different people. Someone suggested adding a random 3 letter extention (david - XBG), allowing more people to use a common name. We may need a listing service to find and sort all the different variations… similar to a phone book directory. But I think people already resolved this issue… see A2 below.

A2: (Unique) conflicts with (Common Names). I’ve seen this in popular MMO games and social networks. To my surprise, users come up with different variations of a common name, and somehow life goes on… however see A3 below.

A3: We are talking about a global internet. The population could grow into a billion users! If that ever happens, I’d be super happy we impacted the world to that degree. Perhaps, we will have a better solution in the future. But as @bluebird mentioned, people prefer names that are easy to remember. Unfortunately, this is a limitation of human memory.

What should my PublicID/service be?

Isn’t the name “dyamanaka” translated by the DNS function to the actual ID which is the public key.

So pet name or micro dns is going to allow people to have any name for your public ID key


I can see this as being very problematic, say if I’m using a friendly general social network app in one window and in the other managing hardcore porn. Don’t want to mix the two public IDs now do I? :wink:

So what if it’s high subjective value? It doesn’t cost the network anything more than any other PUT which is kind of the point and the key to it’s value. It’s cheap relatively speaking. That’s the advantage of SAFE, you can create websites and so forth easily. To artificially inflate the value of public ids because they are useful but don’t actually cost the network additional resources threatens the network.

Can you not see the dangerous precedent this would set? Not only are you creating a “special put”, and who knows how the network would determine that, but also you are basing the value on the assumption that space is cheap. It’s the SAFE network and the value of resources are liable, and intended, to fluctuate. What happens when 1 GB costs $500 or $1,000 in safecoin? Even if it was only $100 which is about what it costs now at hardware price (maybe a bit less) what then? 1,000 x 100 = 100,000 to get a public id? What if it was a mere dollar per gig? $1 per GB? That’s 1 grand in safecoin! This is exactly why your idea is a threat to the SAFE network. No one is going to pay a grand to start a website or operate on the network and remember you need a public ID to do pretty much anything on the network.


I believe so, yes. This is how I understand it…

Public Name == dyamanaka
I register this name as long as it’s not already taken, therefore it’s unique.

Public Key == Hash(Hash(public_name) + type_tag))
SAFE DNS translates the (Public Name) ~> (Public Key) which is used to retrieve and decrypt the file.

In order for SAFE DNS to “derive” the Public Key, it needs to know the Public Name.

I’m basing my understand from the quote below, taken from the first RFC - Decentralized Naming System.

To find this information an application will Hash(Hash(public_name) + type_tag)) and retrieve this packet.

This prevents two identities using the same name, is this really the best way to go. This is more like twitter than facebook in approach.

Devs, if this is not exactly how it works, please correct this explanation.

This is a little more complicated. But yes, we can have a pet name or micro dns listing service. It takes the actual (Public Key) and associates whatever name the listing creator/curator wishes.

I say this is complicated because…

  • There could be as many variations as there are listings. Think different versions of the bible.
  • People from different listings won’t have the exact same information. dyamanaka on listing A may not be the same dyamanaka on listing B.
  • Typically, one “most trusted” listing will evolve, and majority use that service to reference information to their peers. Think google search engine. Obviously, this is not autonomous but human driven and controlled. I’m sure there will be many niche listings for different interests (whitelists, blacklists, special interests, etc).

I’m always in favor of a better user experience. I believe listings services will arise because people need to find things. And this will happen naturally anyway. We can keep the core SAFE DNS function as it is and let people customize their experience with their favorite listing service.


Interesting point, I had not considered multitasking different APPS. Perhaps each APP could “select” a Public ID at the time it requests permission. Or put another way, when the SAFE Launcher permission window pops up, you have the option to select which Public ID the APP will use.

I disagree. If the Network charges more for Public ID’s regardless of actual resources used, it increases income, which increases circulation to the “Network” economy. IMO a Network going bankrupt is more threatening and probable than rising fiat prices. If Safecoin’s fiat value remains extremely high, the Network must be in demand, which is a good sign.

The PUT costs for a Public ID will always be less than 1MB… in other words 1 PUT. So 1000 PUTS (1GB) per Public ID is still a very small costs in actual SAFE space. Your scenario requires special circumstances to reach the $1000 Public ID cost.

What happens when 1 Safecoin is worth $1 and only buys 1 PUT?

  • This is extremely unlikely unless… there’s a massive frenzy of whale speculators intentionally driving up the fiat price AND the Network is at full capacity. If that is the case, yay for early investors, lets go farming, and Public ID’s for sale!
  • The market would have to be really irrational to pay $1 per Safecoin when it only buys 1 PUT (1MB) in SAFE storage. But let’s assume people are temporarily insane, which does happen.
  • I think there would be a stampede of new farmers joining the Network trying to turn their 1TB hard drives into $1,000,000 dollars! That’s right, 1TB = 1,000,000 potential GET requests. If the Network is charging 1 SC per PUT it could be paying out 1 SC per GET.
  • As new Safecoins enter the market, the fiat price will likely go down until an equilibrium is reached.

If all else fails, just run a vault(s) and farm Safecoin to pay for your Public ID, you’ll only need to provide 1GB or 1000 GET requests.


Just a minor correction here

As cost of PUT goes up so does farming rewards. But they are not the same

I would think if the algorithms were changed to farming reward = put cost then the economics would fail.



I was just trying to show the relationship in simple terms.


Interesting idea. If that is the case I think there should be an option within the launcher to switch the public ID within the launcher assigned to any given app. Say I want to “log out” of safebook under one name and “log in” under another. Or say I want to assume a different name for one profile while browsing through a kinky BDSM site and then relog in under a different profile so I can explore a totally different side of my personality. Would be handy for those awkward kinks that you don’t want EVERYONE to know about or even associate with your identity. Well you get the idea. Essentially a log in and out feature so you don’t have to be constantly reallowing the app access from scratch. You could also have a menu listing your public IDs and sort them into folders and what not. Keep it organized.

Uh, what? How could the network go bankrupt? That makes no sense. I devote x number of resources which results in me being paid safecoin which I then use to upload x number of data. Cycle complete. How does the network go bankrupt? It can’t, it’s a closed loop.

I disagree. We shouldn’t artificially inflate the fiat cost of safecoin. SAFE is a RESOURCE economy. That’s it’s power. Didn’t we learn anything from the banking cartel and debt based currency? Don’t base currency on debt and usury. There is no reason to value a public id 1000x more than any other PUT. So what safecoin is cheap as hell in fiat? That’s irrelevant as it just means people will buy up safecoin. If people buy up safecoin they’ll be devoting resources to the network. And who is to say what value a Pub ID is worth? Could be worth nothing could be worth millions. Paying the price of a gig when the resources aren’t being used doesn’t make sense. It’s an artificial inflation and contrary to how a resource economy works, at least at the network layer anyway. You want to buy up a bunch of public Ids and sell them for a gig each that’s your affair. But this whole business of the network going broke and that being an excuse for artifical inflation makes absolutely no sense.


Well I think that in the days of scam and fake and hacks and leaks, people would put more scrutiny into being precise and would be checking certificates or using e.g. qr codes in the advent of bazillion of new and fancy toplevel domains emerging daily out there and people have long ago stopped memorizing their domain names but entering their words or remembered names into their favourite search engines and similar. Also checking security certificates, hash sums of downloads or files, and things such security extensions to ancient services such as dns or email all ring the same bell to me. You cant have security without being precise and exact about what piece of data you want to access and without proof and verfication.

But the major point I see here is that a concept such as maidsafe just doesnt need an old school hierarchical system such as dns where you group your data on y server that needs to have a dns entry and so forth. In fact its the other way around the main repository here is the network itself whose participants or better say members and direct bearers we all are, or ought to be and as I said equals among equals, and I dont need to ask for permission and to fork over money or fork over trust to be able to be a holder of an oldschool ip address or dns entry (address in general). I only need to use the inherent features of the network as total to include and insert my piece of data, automatically resulting in an address and name.

I must not race or be an early adopter or have special means or connections to some developer, or groups, or marketplace or special powers or relations.
I just create my object and put it on the network and it will (it needs) to automatically have a unique address of its own, and that needs to be cryptographically safe and sound and proof. And the network (must) and the users can check these security metadata to be sure they landed where they wanted to or they fetched or sent what they intended to.

Looking at fellow Freenetproject network, or even just barely related tech such as n-coin (e.g. bitcoin) or similar, there you can then try to brutefore a (more) nicely looking hash or crypto part for your site / objects address and so on, and thats what probably might make sense if at all.

But again, the oldworly paradigm of centralised and hierarchical dns makes absoltely no sense to me.


If what you say is true, people won’t use SAFE DNS names. But I think we both know they will, and that what you say is really how you would like things to be, rather than how most people will expect them to work - which helps speed adoption.

Personally I still use domain names a lot. I also use search a lot. It isn’t either/or, and I’m afraid you are probably going to be stuck with domain names because it will ease adoption (which on SAFE are not really that hierarchical - just one TLD: safenet).

The fact they can be squatted is unfortunate, but let’s see if MaidSafe have any tricks ready to alleviate that. If not, perhaps the community could get together and set up a better squatter/trading system. There has been quite a lot of talk about such solutions but that remains to be turned into action, so I expect we will just live with it. There are worse things to be concerned about TBH.

People can still build their own systems on top or use hashed addresses too I believe, so may the best system win! Or perhaps let users choose which they like. :slight_smile:


Well maybe I have personally a long(er) history with tools such as Freenet or other paradigms but I still think these centralized ideas and hierarchical stuff such as dns names dont fit in with the new paradigms that maidsafe would hopefully stand for. But maybe we just need more iterations and respins and forks of the network and the project and other implementations and eventually it will evolve and be done with the old way to do things. We shall see.


Perhaps you could also specify, or pre-set, permissions for different Public IDs so that you don´t accidentaly use a certain APP with a certain ID. Say, for ID 1 you give all APPs the possibility to be used, but for ID 2 only the SAFEbook application, and for ID 3 only the bank application. Even if you have them pre-set you need to give them permission each time (this could be user defined also), but it would make it less likely to accidentaly use an ID in the wrong setting.


Good suggestions @Aster and @Blindsite2k,

Instead of the Authorisation Request pop up window I previously suggested, we can use the Manage Permissions Tab with a Public ID (drop down selection). Or we can add a Public ID Tab, whichever works. The user can see which Public ID’s are assigned to the APPS and change them when needed.

This assumes APPS send a PUT request and SAFE Launcher can attach/assign the “selected” Public ID signature. But I’m not certain it works this way, so we are just brainstorming ideas to make a better user interface.

I have no idea how hard or easy MaidSafe can remodel the SAFE Launcher. But I firmly think Public ID’s should be created & managed in the SAFE Launcher. If possible, I hope MaidSafe can do this easily.

Fun Thought…

Imagine a video comparing SAFE Network VS The Internet. There is a split screen showing a user sending an email from 3 different accounts.

Split Screen Left (SAFE Network)

  1. User logs into the SAFE Launcher.
  2. User opens the email APP
  3. User (One-Click) selects their 1st Public ID and sends email.
  4. User (One-Click) selects their 2nd Public ID and sends email.
  5. User (One-Click) selects their 3rd Public ID and sends email.

Split Screen Right (The Internet)

  1. User logs into the 1st email account.
  2. User sends email.
  3. User logs into the 2nd email account.
  4. User sends email.
  5. User logs into the 3rd email account.
  6. User sends email.

The video shows a better email experience on the SAFE Network compared to The Internet. If we put money into marketing we should show people how the SAFE Network is better.