Inspiration

People yearn for connection. We are social animals. In an ever increasingly connected world, we assume that naturally, the connections we make would be positive. But the trajectory the digital platforms, corporations and markets are heading us in only seem to be dividing us. We've long since dreamed of digital spaces that connect us in ways traditional centralised systems never could (be it physically with cities, in terms of data with platforms, or culturally with inherent echo chambers). What if there were a way to have the fluidity of community, collaboration and connection that we best experience, and generate virtual spaces to transcend the limitations imposed by the natural world? Conjure is attempting to synthesise what is necessary to build user-centric virtual spaces at the data level. Building new economic models must be a part of this, and PayID provides the perfect protocols to do so.

What it does

Conjure does much more than just create virtual spaces. It is a genuine conversation about how we can reconfigure the digital world to be omni-win. By enabling PayID, we can create payment solutions that operate as seamlessly as messaging services with all the security benefits of the latest in modern cryptographic techniques. These PayIDs can be attached to not only user profiles, but virtual assets and objects themselves, enabling any instantiation of a 'real world' transaction, to any that could be conceived in a gaming context, and more.

This demo shows a user making a payment both to another user, and to an in-world asset using PayID.

How I am building it

The Conjure prototype is designed to be a simple portal into Web 3.0, thus it must meet the criteria of being entirely self contained. This introduces security concerns both on the network and data layers. Luckily, modern tools like Interledger, Zero Proof Knowledge systems and Smart Contracts allow data to be held in a distributed centralised fashion while maintaining authorship and ownership.

Being still a prototype, the underlying technologies enabling Conjure are still up for debate, and set to change. The current prototype utilises IPFS for semantic tracking of data, along with its built in libp2p for peer to peer networking.

PayID is implemented using both the ripple-lib JavaScript library as well as the PayID API directly.

Challenges I ran into

Unfortunately, I had trouble authorising payments with both interledger and the PayID admin api in the browser. I will continue to debug, but I believe it to be due to the environment in which the browser operates. The payments shown in this demo are using real accounts, and the information is real, though due to these difficulties the payments shown exist only within the Conjure world.

Accomplishments I'm proud of

Achieving cross-platform web based decentralised virtual spaces is no trivial task. In just three short months I have gone from designing a simple 3D tool for discord servers to realising the true potential of the combined power of the technologies we now have available. In this time I have laid out a plan to materialise the first instantiation of a truly decentralised and user owned virtual layer to society. Implementing PayID will play a crucial role in showing this project is more than just a game or VR experience.

What I learned

Beginning Conjure as an experienced programmer primarily in games and machine learning, but without any web development experience, it was certainly a challenge to dive into this world. This has also been a fantastic introduction to the tech stack that underlies not just PayID, but crypto and associated technologies.

What's next for Conjure

Conjure is a long term project, and is still very new. Implementing wallet management using PayID is a near term goal for Conjure, to give users full control over their PayID without ever changing browser tabs. The power to create will soon be in your hands.

Testing instructions

Currently, the source is closed, as rapid development is ongoing. A private link has been shared with contactxpring@ripple.com

Built With

Share this project:

Updates