Overview of Cryptosim - the Cryptosat simulator

Most developers and users are far removed from the space industry and have never directly interacted with a satellite. This is why we thought it would be extremely helpful to give developers a sense of some of the possibilities, as well as the constraints of working with a satellite constellation. Cryptosim (Cryptosat Simulator) is  a sandbox simulator and interactive tutorial we’ve been developing since we started Cryptosat. Cryptosim is accessible using any modern browser and enables developers to learn about our satellites’ functionality prior to any actual integration with our production pipeline.

The simulator UI is divided between a tutorial (on the right-hand side) that describes the API functions supported by Cryptosat, a map that shows the satellite trajectory, and a JS console where the user can programmatically try the API and interact with the simulated satellite to request its status, sign messages, request randomness, generate Delay-Encryption key-pairs and more.

This tutorial explains the general premise of Cryptosat, teaches about communication windows and satellite availability, the asynchronous interface to the satellites, and showcases the different cryptographic functions supported by Cryptosat, as well as how to use them in a context. Let’s take a look at the example of Public Randomness, also known as a Random Beacon or VRF (Verifiable Random Function).

Cryptosat periodically broadcasts a random beacon — an unpredictable bit sequence generated off entropy harvested aboard a satellite. This beacon could be used to run lotteries, generate random NFT shuffles, and more. Calling cryptosat.getPublicRandom() returns the most recent beacon received from Cryptosat’s satellite constellation.

From a physics perspective, it actually shows on a map the real trajectory of our first satellite, Crypto1, based on data (TLE) pulled from NORAD, a US agency that monitors all moving objects in orbit. As we launch more satellites, we’ll be adding those in Cryptosim with their respective trajectories.

Last updated