Skip to main content

Immersive Payment: Second Update

This is the second update to the Immersive Payment project update under the Grant For Web Fellowship.

You can read the last report here:


Technically, WebXR is a device API that makes it possible to distribute VR/AR experiences over a web browser. It is broadly used to describe web based VR/AR experiences.

The web is the biggest platform, able to reach almost every device and balance the power with app stores through permissionless innovation. However, there’s a major issue holding the ecosystem back from growing: monetization.

There’s a reason why 99% of WebXR apps look like prototypes, it’s because indie creators struggle with finding ways to capture value.

More polished experiences like Mozilla Hubs and Frame usually have the backing of a large entity, so they can survive.

While many of the apps on the front page of Oculus Store net millions in sales, apps on the startpage for Oculus browser (#1 app) can barely hit $100 a month in ad rev.

How can other developers and studios justify spending more resources into this open ecosystem like this and make it more than just a hobby?

What Immersive Payment is trying to do

With immersive payment, you are now able to monetize part of the content of a VR scene or asset using Coil. 


  • Enabling Integration and First Prototype: The first experiment ensures that VR assets can be run in a WebVR environment. 
    As it turns out it is relatively simple to enable web monetization in a simple webvr page and host it. And it's also fairly easy to add conditional's to the page too. For example to
    <script defer src=""></script>
    <style id="wm-stylesheet">
    .wm-if-monetized { display: none; }
    .wm-if-not-monetized { display: none; }

    This enables web monetization on those elements.

    Or we can have a whole scene hidden. As you can see in this demo:
  • Enabling it in a WebAR environment: Using the same concept this can be enabled in an Augmented Reality Environment. The same glitch code detects when it is in an Augmented Reality environment instead of a VR environment and can enable monetization for those elements. 
    • Limitation:
      • This concept is dependent on the coil extension. And for mobile devices even though Firefox is there and has add-on support. It still doesn't support all add-ons, notably, it doesn't support Coil. So any content that is made available part of Augmented Reality will be locked down in mobile devices. Unless we specifically determine the device and unlock that content. Doing that client-side opens up the concept for attacks on desktop devices to unlock content too.
  • How to use it for different contents: Due to the nature of how web pages are built this works on different parts of the elements of a webpage. To enable differential web monetization, the tags should be enabled on those elements. It works for VR assets as well as AR assets.

Open Research Questions Explored:

  1. Can we make the transactions anonymous: This can be achieved by introducing confidential coin concept in the mix. If we want to look at a architectural diagram about how this can be done. This may look like following

Figure 1 provides an example of association between event definitions, event outcome announcements, and event based UTXO notes. It shows nine UTXO notes (named cc1 to cc9) and four transactions (named tx1 to tx4). For each transaction, input notes and output notes are enclosed in a colored bounding box. The coins in front of the arrows are input coins and the coins that the arrows point to are output coins. Each type of data has its own logical chain and the corresponding Merkle hash tree. All the event definitions and event outcome announcements are in public.
They are validated before appended to the ledger. In this work, we assume that event outcomes are declared by the same parties who register the events to the ledger (verified through a secure
digital signature scheme). Verification of the event outcome itself (e.g., status of a tracked shipment) is a separate concern, which could be supported through various established approaches such as
oracle service providers, event validators or zero-knowledge proof based claim verification scheme. We assume that event outcomes are verified as part of the event processing before they
are appended to the shared ledger.
All privacy coins in the system are conditional coins. In the example, one can observe that all the coins (cc1 to cc9) are paired with an event definition. A privacy coin without a real condition is configured to use one of the default constant events as its condition, for instance cc1. This way, all the transactions involving the conditional coins in the system (payments using the conditional coins or transferring of the conditional coins) follow identical validation steps in zero-knowledge protocol when deciding whether the transactions should be accepted by the participating distributed ledger nodes.

This is detailed here:


  • How do people pay for WebXR content currently?
  • What is actually being paid for in the present?
    • Access
    • Login / Bot handles ticket ownership
    • Parcels (NFTs)
    • Content (ex : stereo video streaming services)
    • XXX
  • In what ways can we make that process easier and more frictionless?
  • What monetization strategies have yet to be explored?
  • How can artists get paid?
    • Commissions + Projects
    • Patreon
    • Github sponsors
    • Grants
    • VC investment
    • Event tickets
  • Is there a multimodal solution that would work best for in VR payment?
  • Thoughts about non-payment based monetization strategies such as advertising?


  • Patreon
    • Many VR creators and sometimes platforms (NeoSVR) are using this
  • Github Sponsors
    • Avaer
  • VC Investment
  • Event Tickets
    • Really unexplored still
  • Discord community with paid roles
    • FIVARS / VRTO did some
    • WHALE / Metafactory using
  • Virtual market stalls
    • Currently in-progress via Vket5
  • Avatar store
    • Need some sort of VRMchat for people to buy this for webxr
  • Tailors
    • When people buy avatar weawrables they’ll want it custom fit their avatar
  • Virtual land parcels
    • Minting webxr worlds
    • Cryptovoxels
  • Twitch streaming with bits
    • Avaer and Sorskoot are streaming webxr development
  • Engine licensing
    • wonderland
  • App store
    • Construct Arcade
    • FIVARS made a token system for watching movies / games, can be repurposed
  • In-world advertising
    • Elijah from Vhite Rabbit / Construct arcade was exploring with Wonderleap
    • Admix
    • Google Ads work in WebXR
    • No official or unofficial link in how to do that
  • Make it easier to integrate with paypal / crypto / discord
    • Discord path seems easiest
    • FIVARS did a lot of manual work here, could be outsourced?
  • Virtual actors
    • voice actors
    • full body actors
      • performers
    • capturing / minting mocap libraries
      • Train AI npcs
    • Storytelling
      • The Scarecrow: Raindance film festival
      • Live actors in neosvr live performance
  • WebXR can be used for immersive playback

A report of the grant is also available at:


Popular posts from this blog

ARCore and Arkit, What is under the hood: SLAM (Part 2)

In our last blog post ( part 1 ), we took a look at how algorithms detect keypoints in camera images. These form the basis of our world tracking and environment recognition. But for Mixed Reality, that alone is not enough. We have to be able to calculate the 3d position in the real world. It is often calculated by the spatial distance between itself and multiple keypoints. This is often called Simultaneous Localization and Mapping (SLAM). And this is what is responsible for all the world tracking we see in ARCore/ARKit. What we will cover today: How ARCore and ARKit does it's SLAM/Visual Inertia Odometry Can we D.I.Y our own SLAM with reasonable accuracy to understand the process better Sensing the world: as a computer When we start any augmented reality application in mobile or elsewhere, the first thing it tries to do is to detect a plane. When you first start any MR app in ARKit, ARCore, the system doesn't know anything about the surroundings. It starts pro

ARCore and Arkit: What is under the hood : Anchors and World Mapping (Part 1)

Reading Time: 7 MIn Some of you know I have been recently experimenting a bit more with WebXR than a WebVR and when we talk about mobile Mixed Reality, ARkit and ARCore is something which plays a pivotal role to map and understand the environment inside our applications. I am planning to write a series of blog posts on how you can start developing WebXR applications now and play with them starting with the basics and then going on to using different features of it. But before that, I planned to pen down this series of how actually the "world mapping" works in arcore and arkit. So that we have a better understanding of the Mixed Reality capabilities of the devices we will be working with. Mapping: feature detection and anchors Creating apps that work seamlessly with arcore/kit requires a little bit of knowledge about the algorithms that work in the back and that involves knowing about Anchors. What are anchors: Anchors are your virtual markers in the real wo

IRCTC blocking certain countries?

Indian Railway Catering and Tourism Corporation or most commonly known as IRCTC is the only authorized government portal in India through which someone can book a Train Ticket. It also provides booking for flights and buses but its primary use for most people is to book rail tickets online. And like thousands of other people I also use the site intermittently while booking train tickets, especially for my parents who are in India and when I want to book tickets for them. A few days back they asked me to book a ticket for them and that is when the fun started. I found out that when I tried to access the website day before yesterday (4th July 2018), instead of the familiar login page I was greeted with an error that page cannot be loaded. I thought maybe something wrong and I would try later. After a day I tried and faced the same error. Now a little bit curious since I actually never seen the site down for a prolonged time, blamed it on my Comcast connection and connecte