FOAM is a Proof of Location technology for applications needing secure location services. It enables a handshake between the location service providers and the user, proving the user’s location. Terrestrial radios and time-of-flight algorithms are used to perform localizations, and digital signatures ensure the location data cannot be spoofed. The system is completely independent of satellite-based location services like GPS.
Over the past few months through previous Mirror posts, we introduced the MVP and answered key questions such as its purpose, where it is deployed and where it is going. To reiterate, the core objective of the FOAM MVP is to demonstrate proofs of location (”Presence Claims”) on a blockchain. Recently, this has required developing new layers to our stack, such as our FOAM Devnet (OP Stack rollup), Proof of Location smart contracts, an indexing and publishing service and new user-interface flows for our Hostel web app. Generating Presence Claims also requires tightly integrating all these new elements into our existing hardware, firmware, and software packages we built and tested over the past several years.
The FOAM team is working hard and moving fast towards the completed MVP. This week we are very excited to share that the front end and back end work is complete for the minting of Presence Claims on our OP l2 devnet! 🏆 🥇 This post serves to spread this amazing update and provides a sneak peak of the process for minting Presence Claims (a.k.a. Location Proofs), which will be detailed further in upcoming MVP demo blog posts.
With this simple series of clicks in our Hostel web application and MetaMask, a lot is happening over-the-air (radio) and in the backend. First, the user selects a mobile node, which is the hand-held radio device used to interact with a Zone. Here, the mobile node is identified as 7230.
The user then clicks Ping FOAM Zones triggering a series of steps under the hood. These include the mobile node broadcasting a radio message, the Zone Anchors receiving, timestamping, and countersigning the message, and then forwarding it to Hostel. This can be seen in the video - when each Zone Anchor receives the mobile node’s OTA message, it lights up green in Hostel.
Next, Hostel uses the signed timestamps to calculate the location of the mobile node, and posts this information to the FOAM Devnet (OP Stack Rollup). In the video, the blue dot and the green dot in the middle of the Zone represent the location of the mobile node, each calculcated using a different localizer (i.e. algorithm). We will elaborate on localizers in a future post, but having multiple allows us to offer more location data onchain with various levels of accuracy and security that the user or application can select from.
With the data onchain, the PoL smart contracts (described previously here) perform checks on the location data. If successful, the user can mint the Presence Claim as an NFT by clicking Mint Location Proof and confirming in MetaMask. Before minting, the user can see the details of the Presence Claim in Hostel. The transaction is confirmed by the rollup sequencer and the Presence Claim is officially minted and available onchain!
Final touches of the user flow are ongoing, such as changes to the interface, animations for when waiting on a Presence Claim and a wireless mobile transmitter that can initiate a a Presence Claim request with a physical button.
Minting Presence Claims represents the completion of an incredible milestone for FOAM and the culmination of countless of hours of work by our team. Provable location data is finally onchain. This achievement ties together new components like the FOAM OP Devnet, Proof of Location smart contracts and UI flow with the existing radio hardware, transmission protocol, localization algorithms and much more. The resulting Presence Claim NFT is a “proof of location”, which represents the birth of a new, unlocked primitive for web3 applications - location.