Skip to main content

Home | Blog  |  Contact Us

The Core of MetaCurrency: Composable Abstractions for Wealth Building

In this post over on his Symbionomics blog Alan Rosenblith nicely gets at the core of the MetaCurrency project by asking the question: "What would it take to make the role of 3rd party record keeping irrelevant?"

I love how projects can have many cores depending on the angle from which we approach them.  Here's the question that reveals my own very geeky approach toward a core of the MetaCurrency project: "What would it take to make currencies as powerful for building and sharing wealth, as language is for building and sharing meaning?"  

The answer to that question, I believe, lies in discovering/inventing a set of composable abstractions for wealth building.

To see what that might look like, lets examine how human language is built out of a multi-layered set of composable abstractions.  

The most obvious composable abstraction in human language is the word.  Words are abstract references to things (nouns), actions (verbs), qualities (adjectives & adverbs) other words (articles, pronouns), etc.  Words by themselves are meaningful. But when words are composed together according to the semi-formal rule-sets that we call grammar we get a new level of power in building meaning:  the sentence.  

Sentences encode complex subject/object/predicate meanings.  But sentences are also composed to build the even more complex meanings that are narratives.  

Going back down the levels of composable abstractions, note that words are most often composed of "micro-words," either explicitly in the case of words built of suffixes and/or prefixes and compound words, or less explicitly as the etymology of almost all words reveal.  And even further down all words and micro-words are composed of a just small set of phonemes

Notice a pattern in each of these layers of composable abstractions: a set of fairly tight constraints allows the production of a huge number of "expressions."  At the lowest layer the small set of approximately 40 sound units in the English language, are used to produce its over half million words (a full million if scientific words are included).  The rules of grammar form fairly tight constraints on how words are to be assembled, which yield an infinite number of produceable sentences.  Even at the narrative level we often see very simple constraints to aid in the production meaningful narratives, for example: "boy-meets-girl..."  

So how does all this apply to wealth-building and currency?  

Well, for those of you who have been following what we're up to with the MetaCurrency project, it will be no surprise that we view currency, very much like language, as a fundamentally informational process.  I've written before about the parallels between the evolution of money and that of written language here and here.  But now I'm seeing more clearly that the core aspect that gives power to information systems, is the composability of their abstractions (both within and between layers), and that's where the core parallel really lies.

In our MetaCurrency work we've talked for a long time, and even done some writing, about our expanded perception of currencies, and about the how there are levels of wealth that correspond to truths about thriving systems (see here and here for more on the levels of wealth), and about how we see that currencies, if understood in this broader sense, could become the tool that will allow us to build wealth at all those levels.

But it wasn't until writing the flowplace, and implementing currencies in XGFL (our currency specification language), that we came directly and experientially up against the issue of composability.  

All along, we knew there had to be a way for currencies to reference other currencies, and even be contained in other currencies. I had assumed that that composability would be something I'd implement later. Probably, I thought, after I'd figured out more of the details of XGFL, our abstraction for the rules of particular currencies.  But then, when we came up with the idea of membrane currencies that's when I actually had to have composability.  Unfortunately XGFL didn't have anything ontologically in place to suit this need.  I think what happened is that it was as if we came up with an abstraction mechanism for entire sentences, but not one built out of a sub-composable abstractions, i.e. words.

XGFL also had some other issues.  It was developed before we had really spent much time thinking about the four opens (Transport, Identity, Data, Rules), so those concepts weren't well integrated into the language, and even more problematic the ontology of XGFL fundamentally separates currencies from players, and we had come to realize that currencies are players too.

So about ten months ago, we started working on a new approach.  We playfully called this approach the "Solar system", because we were calling the entities on the network "sols."  What sols do is send other sols structured messages called "breaths" (you see, they con-spire together... :-) The structure and rules that any particular sol uses to send breaths, and how it will change its state as it sends and receives breaths is formally specified, and plays much the same role as XGFL in the old approach.  Here's one of our working diagrams on the system, which shows how the sol's different components map on to the four "opens."  For very geeky adventurers we started coding this approach here.

Solar system conceptual map

For a number of reason, but mostly lack of time, active progress on this approach has been stalled since February.  But now my time has suddenly opened up and both Arthur and I have recommitted to making a strong push in this technical arena.  

In Janurary when we were working on this Solar System approach, we thought a lot about how the composability of Sols would be through a kind of "breath" fingerprint.  This is a much like virtual classes in Object Oriented Programming approaches, but with a more dynamic flavor, like duck-typing in Ruby, or much like how objects in Small Talk send and receive named messages with particular argument structures. What we are trying to achieve is the possibility that a currency designer can create a currency (represented by a sol) with many abstract slots for sub-currencies that would be plugged in later to fit the circumstances of particular communities.  

A familiar example is that of credit limits in a monetary currency.  Banks used to be able offer loans on the basis of "character," because a loan officer could be expected to know something about the character of the people asking for loans.  Large banks no longer have processes that can encompass the complexity of "character" in loan making decisions.  Instead calculation of credit worthiness is now largely centralized in the hands a few very large companies (Equifax, etc) which gather all kinds of information on individuals which the banks (and phone companies, car companies, credit card companies etc) use to determine how much credit (and what interest rates) they are willing to offer you.

So, imagine instead a regional mutual credit currency, in which your credit limit is set by a reputation currency created by a sub-community to which you belong.   The parameters and general structure of the reputation currency are clearly specified in the definition of the regional currency, but the particulars are left to the sub-communities.  Note that it's the composibility of the system that allows the implementation of the principle of subsidiarity in this case.  Of course to make this scale, composibility will certainly be used to create meta-reputation currencies, that rate particular effectiveness of the sub-reputation currencies at calculating accurate credit scores, and so on.

The point of all of this, once again, is that composibility gives the expressive power.

So that's where I am now (it feels like way down deep in the core of the project) searching for the appropriate abstractions for the elements of healthy and thriving social organisms, and the formal systems for conjoining them in richly composable multi-layered processes.   So if this sounds like fun to you, drop me a line!

P.S. For the geeks reading this, I came across the phrase "composable abstractions" at the end of a video that compares Emacs and TextMate, and instantly fell in love with it.


Can XFGL map emerging holons?


Great post.

Will XFGL also be able to describe changes in boundaries of self-interest as seen by participants?

As gift economies grow, it may be useful to have a way to show evolution of relationships from market (price-based) exchange to one of giving to individuals and groups one deems to be part of one's "extended self."

A markup language capable of showing this enlarged boundary of non-transactional giving (aka investments in one's extended self) might also apply to Coase's theory on non-price exchange within firms.

Look forward to your thoughts on this!  In case you may find them of interest, some early ideas on mapping emergence of the "extended self" are at .

On a possibly converging note as well, the beginnings of a markup language for sentence, paragraph, and larger storylines are described in the discussion of narrrative fractals at



Mark Frazier

@openworld @peerlearning