OnChain
Ordinal Theory
An ordinal is a tracking mechanism for satoshis (the smallest unit of measurement within the Bitcoin network). Using ordinal theory, satoshis can be inscribed with various data, including code and media. Satoshis can be collected and traded. They are capable of being transferred and held in wallets.
Recursion works by calling inscriptions together into a collected data point. Using recursion, multiple inscriptions can be compiled into a single inscription. These data points create objects of various complexity from onchain media.
As time progresses, Bitcoin rises in value. As institutional and retail adoption increases, network activity elevates, causing transaction fees to climb exponentially. These factors will cause the inscription process to become progressively more expensive in the future.
The LUX approaches this issue by using a two-step process of parceling and reassembling. Initially, larger media is divided into smaller components to optimize inscription cost. Next, these parcels are reassembled onchain, bringing them back into a single data point recursively. This process can be applied to smaller recursive builds as well.
Terminus Functionality
This set of tools have been crafted to expand the onchain building process. Terminus eases the creation of onchain objects, removing the requirement to create code.
Public access to this functionality will be rolled out over time on the Terminus platform, accompanied by additional features not listed here.
To better navigate inscription size limitations, and to mitigate high inscription pricing, Terminus uses a dual process of parceling and reassembling. Larger media components are split into fractional pieces of data, condensing it in preparation to be put onchain. Once inscribed, these pieces are amalgamated back into their initial form. This process can be used to create Superinscriptions (which contain data over 4 mb in combined size) or smaller builds as well.
Prior to parceling and reassembling, compression is used on the original media components. For instance, the LUX’s first Facet (OK Algo) was compressed frame-by-frame. A single frame from the original PNG framestack averaged 2.3 mb in size. Each frame was converted to WebP formatting, drastically reducing the size to 110 kb each. This provided a significant reduction in size from the original framestack, bringing 330 mb down to 16 mb.
Using Terminus, an additional compression measure can be used to remove redundant data from parcels. One example of this is header and footer data, which becomes unnecessary within a parceled batch. By removing these, each parcel can be reduced by 30 bytes. When working with a large amount of parcels, this data reduction produces a notable size difference. If this compression hygiene becomes commonplace amongst all ordinal users, the size of onchain data would be streamlined significantly.
When working with video, Terminus encoding methods further assist this process. Video is typically exported by rendering it into a video container (i.e. mp4 or mov). Using Terminus, a user submits framestacks to create their own onchain container, which plays the parceled data as video.
This process is beneficial for two reasons:
- File size can be reduced beyond that of a typical video container.
- Onchain parcels can still be viewable as images within their individual inscriptions (whereas a video container would not be viewable onchain).
A two-part process is used to play the onchain parcels as video. First, the entire frame sequence is loaded by calling each parcel from the chain. Each frame is switched through consecutively to replicate a specified frame rate. For the LUX, this frame rate plays at 15 fps. Frame switching is then recorded after all the parcels are loaded, producing loopable video playback.
Dynamic metadata will be available on Terminus to track the count of linked Carats. With this function, the linking and unlinking of Carats affects the metadata in real time.
Terminus has mutability options as well. When enabled, a user can track or change many variables, including styling, html, scripting, and media. This function enables the diamond Facets to be revealed over time, allowing stories to be extended by the evolution of media that comprises an object.
Mutability can be turned off at any time to permanently close these changes. The LUX will convert to an immutable object after all 8 Facets have been revealed.
