Kiriakos Krastillis's Blog

How to build a City

Okay, so here we are. I want to build the framework to allow the Cardano community to build their own city. On chain!!! Now, how do we do that?

Whoever has visited a city in the past knows that cities generally are not simple things. They have streets, building blocks, parks, public buildings, transportation and people... Myriads of people doing interesting things! And they change. They keep constantly evolving through committee and through the private hand. This is because in cities we se the symbiosis of two forms of ownership. On the one side you have private ownership, people buying lots or existing buildings and doing interesting stuff with them. On the other hand you have administrative ownership. The city council, deciding to extend the city in one direction or another, to redevelop public places and in some cases to reclaim private land to invest in re-planing (obviously by reimbursing owners).

So we can immediately identify a couple of concepts here.

  • ownership
  • design
  • commerce
  • agency
  • identity

We have ownership in the form of private and council ownership, we have design in the form of private or council design and planing decisions, we have commerce in the form of transitioning ownership from private to private, council to private and private to council (note here that interactions with the council seem to always be initiated by the council). We have agency. If you own something you can do stuff with it and in most cases also define who can do what with it. Last but not least we do have some sort of identity. Things are owned by someone and something. Groups are comprised of individuals, etc. One more thing that we have that is not on that list is grouping. Somehow a city needs to elect its council.

So how can we create a dApp that addresses these things? Lets look at the concepts one by one. I will be doing deep dive articles about how I think Pergamon should deal with each one of those, but that's in the future. Let's take a precursory look for now and see if those things are at least doable.


Easy, encode building lots etc. of the map as NFTs, NFT reminting allows for modifications, NFT burning allows for large scale redesign and the NFTs themselves can be used as keys to permit their holder agency about their lot.


We need to set up a protocol of what people can do with a lot but generally this doesn't bring up too many novel problems. Sure we will need to define what sort of interactions one can make with their lot. How they can design a building etc. But that is not new technology, there is a multitude of ways to create WebGL compatible models. Storage might be an issue but in the Cardano world we are good to go with stuff like NFT Guaranteed Storage. So no worries here.


Ah, now we get into deeper waters. How do we get a notion of identity in a decentralized system that is supposed to be open and anonymous? This is a great question and it doesn't have concrete answers yet. I think the answer to creating robust identities from a set of anonymous participants lies in a combination of web-of-trust and creativity. Webs of trust are excellent if you can seed them correctly. But the looming danger or scripted paranets (sibyl attacks) still exists. But what if we add a creative factor to it? Lets discuss this further along in the Design section.


It's elections. If you have a robust identity system they are easy. Participants that are active in the community of the city and provide good content in the eyes of the other citizens will be more visible in an election. So you already have the key ingredients to set up elections that will profit the City long term.


What is a city without a marketplace right? Doing transactions on a blockchain is a super easy thing. But how do you do a storefront or an auction? Well ideally you first make sure they happen in an environment trusted by both parties. Until Cardano gets smart contracts this means doing an escrow service. This will also be needed for the Design functions so one of the first features we will put in the world for Pergamon is a blind auction service. The good part here is that the whole protocol is already designed and it is fully on chain. So once the Alonzo hard fork happens we can move the escrow part from offchain into a smart contract seamlessly!


Okay and how do we design this city then? How about putting pixels on a virtual canvas? Think about it, we design the city in increments of one hectare (100x100 meters) through a 32x32 virtual canvas (each pixel is 3x3 meters). Now the city can be designed and extended in increments. Before each increment the community will have to decide where it will attach to the existing city plan. And I think this should also be freely definable. So if the community decides to re-zone an existing increment they really can!

So I hope it is evident that we need to find out how we can design this city as a community and distribute its property properly. Since this all is very much new tech territory I have decided to implement the tech first as technology experiments and later on introduce them as design features of the city itself. So as part of the Pergamon Roadmap the first thing I will implement are the Weave and Agora demonstrators. The Pergamon Weave is a virtual canvas that creates NFTs these NFTs are auctioned off on the Agora, a marketplace where anybody can go and auction off their NFTs in a blind auction that is completely run on the blockchain.

If you want to find out more about how the Pergamon Weave will work, check out Economic incentives for Multi User Art

The next installments in this series will be about the Weave and Agora protocols.

Cheers, K