Welcome to PERMANOISE.
PERMANOISE is an audiovisual art edition (10 / 10) airdropped for free to the owners of ITTN. It aims to explore the permanence boundaries of audiovisual art by putting an interactive audiovisual piece into Bitcoin multisig outputs.
These outputs are stored directly within the Bitcoin transaction data (not witness data like inscriptions) and cannot be pruned. Therefore this data is considered the most immutable storage within the blockchain space, as Bitcoin (as of 2023) has the most number of computers securing its blocks and storing its data.
This data was experimented with for artistic purposes a few times more in the past. Most notoriously, OLGA by JP Janssen, CCSATOSHI by Cornholio, PEPERMANENT by myself, and EVAS by Masteronchain. Stamps protocol later utilized the same method to store art on Bitcoin.
While OLGA, CCSATOSHI, and EVAS use raster image (png/jpg) encoding, PEPERMANENT uses SVG as the file format.
None of these formats are capable of producing audio. On the other hand, formats like MP4, MP3, M4A, and WAV require large file sizes which make it impossible to store on Bitcoin.
PERMANOISE achieves audio production through the HTML file format. HTMLs render in all browsers automatically. Since HTML also has a Web Audio Context feature built-in, it’s possible to produce audio or even melodies using HTML.
Below is the data of PERMANOISE, if you copy it into any browser’s search field, it will automatically display PERMANOISE.
data:text/html;base64,PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PG1ldGEgYXJ0aXN0PSJDaGFpbmxlZnQiIGNvbnRlbnQ9Ik1vc3QgcGVybWFuZW50IGF1ZGlvdmlzdWFsIGFydCBpbiBodW1hbiBoaXN0b3J5IiBjaGFyc2V0PSJVVEYtOCI+PHRpdGxlPlBFUk1BTk9JU0U8L3RpdGxlPjxzdHlsZT4uY29udGFpbmVye2Rpc3BsYXk6ZmxleH0jcGxheS1hcmVhe3dpZHRoOjYzMHB4O2hlaWdodDo2MzBweDtiYWNrZ3JvdW5kLWNvbG9yOiMzMzN9LnJkZHthbmltYXRpb24tbmFtZTpyYmw7YW5pbWF0aW9uLWR1cmF0aW9uOi4xczthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9QGtleWZyYW1lcyByYmx7MCV7ZmlsbDojNGYwOTA5fTUwJXtmaWxsOiMwMDB9MTAwJXtmaWxsOiM0ZjA5MDl9fS5nbGl0Y2h7YW5pbWF0aW9uOmdsaXRjaCAuMXMgaW5maW5pdGV9QGtleWZyYW1lcyBnbGl0Y2h7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX0yMCV7dHJhbnNmb3JtOnRyYW5zbGF0ZSgycHgsLTJweCl9NDAle3RyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwycHgpfTYwJXt0cmFuc2Zvcm06dHJhbnNsYXRlKDApfTgwJXt0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsLTJweCl9MTAwJXt0cmFuc2Zvcm06dHJhbnNsYXRlKDJweCwycHgpfX08L3N0eWxlPjwvaGVhZD48Ym9keT48ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgaWQ9InBsYXktYXJlYSIgb25jbGljaz0idG9nZ2xlU291bmQoKSI+PHN2ZyB3aWR0aD0iNjMwIiBoZWlnaHQ9IjYzMCIgdmlld0JveD0iMCAwIDQ4MCA0ODAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGZpbHRlciBpZD0iYiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIj48ZmVHYXVzc2lhbkJsdXIgaW49IlNvdXJjZUdyYXBoaWMiIHJlc3VsdD0idyIgc3RkRGV2aWF0aW9uPSI1Ii8+PGZlR2F1c3NpYW5CbHVyIGluPSJTb3VyY2VHcmFwaGljIiByZXN1bHQ9IngiIHN0ZERldmlhdGlvbj0iMTAiLz48ZmVNZXJnZT48ZmVNZXJnZU5vZGUgaW49InciLz48ZmVNZXJnZU5vZGUgaW49IngiLz48L2ZlTWVyZ2U+PC9maWx0ZXI+PGZpbHRlciBpZD0iYyIgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGZlVHVyYnVsZW5jZSBiYXNlRnJlcXVlbmN5PSIwLjEiIHJlc3VsdD0icmVzdWx0MSIvPjxmZURpc3BsYWNlbWVudE1hcCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJyZXN1bHQxIiBzY2FsZT0iOSIvPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImEiPjxmZVR1cmJ1bGVuY2UgbnVtT2N0YXZlcz0iNSIgYmFzZUZyZXF1ZW5jeT0iMC4zIi8+PGZlRGlzcGxhY2VtZW50TWFwPjxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InNjYWxlIiBmcm9tPSI0NSIgdG89IjU1IiBkdXI9IjAuMnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+PC9mZURpc3BsYWNlbWVudE1hcD48L2ZpbHRlcj48cGF0aCBkPSJNMCAwaDYzMHY2MzBIMHoiLz48cGF0aCBkPSJtNDAgNTAwIDE0MCAyLTQgMTIwIDQwIDJ2MzVsMTQwIDItMiAzMDAtMzEwLTJtOTUyLTIzOUg2MzBsLTYtMjQwIDE3MCAydi00MGw0MCAyIDItNDAwTDk1NiA0IiBzdHlsZT0iZmlsdGVyOnVybCgjYSkiLz48cGF0aCBmaWxsPSIjNmRlM2I4IiBmaWxsLW9wYWNpdHk9IjAuOCIgZD0iTTgwIDE5MGgyMzB2MjMwSDgweiIvPjxwYXRoIGZpbGw9IiM2MjljODUiIGZpbGwtb3BhY2l0eT0iMC44IiBkPSJNMjAwIDUwaDI2MHYyNjBIMjAweiIvPjxnIGZpbHRlcj0idXJsKCNiKSI+PGcgaWQ9ImQiIGZpbGwtb3BhY2l0eT0iMC43IiBmaWx0ZXI9InVybCgjYykiIGNsYXNzPSJnYWIiPjxnIGZpbGw9IiM2MTY5NmIiPjxwYXRoIGQ9Ik0xNzcgMTNjLTQ5IDE1LTc4IDQxLTc2IDgxIDIgMjAgNiAxMjUgMTEgMTQ0IDQgMTEgNDQgMTE1IDUwIDEyNCAyIDMgOTMgNjQgODggNjAtMy0yNy0zMy0yMDctMzctMjE3LTctNDQtMTQtMTQwLTM3LTE5MnoiLz48cGF0aCBkPSJNMzkgMTg1Yy0yIDktMSA1NiAwIDY2IDQgNyA0IDMxIDM3IDQ4IDAgNyA2MSAuMDAyIDYzIDYtNDItNTQtNDItMTA4LTM4LTE2MC0yNCA2LTM3IDE2LTYyIDQxeiIvPjwvZz48cGF0aCBkPSJNMTc4IDEzYzI1IDQgMTEzLTIgMTQ0IDM3IDEzIDIxIDMwIDY3IDM1IDg2LTEgMzAtOSAxMDAtMTYgMTg2LTYgMS04NCAxMDUtODkgMTAxLTMtMjctMzMtMjA3LTM3LTIxNy03LTQ0LTIyLTE3Mi0zNy0xOTJ6bTIzOSAxMjhjLTMtMS0zNC04LTUzLTE5IDUgNjYgMSA4My03IDE1NiA1MC0xOSA1Mi0xNCA2NS0xOCAzLTYxIDAtMTAxLTUtMTE5eiIgZmlsbD0iI2YwZTJjNCIvPjxnIGZpbGw9IiMwNTA1MDUiIGNsYXNzPSJyYWIiPjxwYXRoIGQ9Ik0xNTggMTU1YzIgMTMgMTYgNTAgNiA3MCAzLTE0IDMtNjAtNi03MHptMTE5LTIwYy0yIDE0LTUgMjkgNyA3MC0yMC05IDUtNTMtNy03MHoiLz48cGF0aCBkPSJNMTYzIDI0OGM0IDAgMzMgNCAzNyA0bC0zLTI3Yy0xMC04LTgxLTE1LTcyIDExIDEyIDkgMTQgNyAzOSAxMnptOTUtNWMxNC0xNCAyMi0xNCA3OS00My00LTctNC0xMy03LTE4LTQtOS04MCAyNC03OCAzOC0xIDUgNCAxNSA2IDIzem0tNjQgODdjMTYgNSAzMSA4IDQ3IDEzIDEyLTYgMTYtMTEgNDctMzIgMCA5IDEgOSAyIDE3LTEyIDctMzYgMjItNDcgMzAtOS0zLTQzLTE0LTUzLTE3IDAgMSAyLTE2IDMtMTF6Ii8+PC9nPjwvZz48L2c+PHVzZSBocmVmPSIjZCIvPjwvc3ZnPjwvZGl2PjwvZGl2PjxzY3JpcHQ+Y29uc3QgYXVkaW9Db250ZXh0PW5ldyBBdWRpb0NvbnRleHQsb3NjaWxsYXRvckNvdW50PTQsb3NjaWxsYXRvcnM9W10saW50ZXJ2YWxzPVtdLGJhc2VGcmVxMT0yMCxiYXNlRnJlcTI9NTA7bGV0IGlzUGxheWluZz0hMSxjdXJyTm90ZT0xO2NvbnN0IHN2Z0VsZW1lbnRzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5nYWIiKSxyZWRFbGVtZW50cz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucmFiIik7ZnVuY3Rpb24gZ1NWRygpe3N2Z0VsZW1lbnRzLmZvckVhY2goZT0+e2UuY2xhc3NMaXN0LnRvZ2dsZSgiZ2xpdGNoIil9KX1mdW5jdGlvbiByU1ZHKCl7cmVkRWxlbWVudHMuZm9yRWFjaChlPT57ZS5jbGFzc0xpc3QudG9nZ2xlKCJyZGQiKX0pfWZ1bmN0aW9uIHBsYXlTb3VuZCgpe2lmKCFpc1BsYXlpbmcpe2lzUGxheWluZz0hMDtmb3IobGV0IGU9MDtlPDQ7ZSsrKXtsZXQgdD1hdWRpb0NvbnRleHQuY3JlYXRlT3NjaWxsYXRvcigpO3QudHlwZT0ic3F1YXJlIix0LmZyZXF1ZW5jeS52YWx1ZT0yMCsxMCplLHQuY29ubmVjdChhdWRpb0NvbnRleHQuZGVzdGluYXRpb24pLHQuc3RhcnQoKSxvc2NpbGxhdG9ycy5wdXNoKHQpfWxldCBsPW51bGw7bD1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKDE9PT1jdXJyTm90ZSl7Zm9yKGxldCBlPTA7ZTw0O2UrKylvc2NpbGxhdG9yc1tlXS5mcmVxdWVuY3kuc2V0VmFsdWVBdFRpbWUoMjArMTAqZSxhdWRpb0NvbnRleHQuY3VycmVudFRpbWUpO2N1cnJOb3RlPTJ9ZWxzZXtmb3IobGV0IHQ9MDt0PDQ7dCsrKW9zY2lsbGF0b3JzW3RdLmZyZXF1ZW5jeS5zZXRWYWx1ZUF0VGltZSg1MCsxMCp0LGF1ZGlvQ29udGV4dC5jdXJyZW50VGltZSk7Y3Vyck5vdGU9MX19LDUwMCksaW50ZXJ2YWxzLnB1c2gobCl9fWZ1bmN0aW9uIHN0b3BTb3VuZCgpe2lzUGxheWluZyYmKGlzUGxheWluZz0hMSxvc2NpbGxhdG9ycy5mb3JFYWNoKGU9PmUuc3RvcCgpKSxvc2NpbGxhdG9ycy5sZW5ndGg9MCxpbnRlcnZhbHMuZm9yRWFjaChlPT5jbGVhckludGVydmFsKGUpKSxpbnRlcnZhbHMubGVuZ3RoPTApfWNvbnN0IHBsYXlBcmVhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5LWFyZWEiKTtwbGF5QXJlYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtpc1BsYXlpbmc/KHN0b3BTb3VuZCgpLGdTVkcoKSxyU1ZHKCkpOihwbGF5U291bmQoKSxnU1ZHKCksclNWRygpKX0pOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+
Let’s now look at how to get this data from the Bitcoin blockchain.
1. Go to xchain explorer, and see the Issuances tab. Click View in the initial issuance transaction.
2. You can already see the data in the description here but the better method is copying the Bitcoin transaction hash into your clipboard and resolving the multisig output data either manually or through an API. This is what we’ll do now: Copy the transaction hash.
The hash for PERMANOISE is: d9ecf73d8b3a4a5f25846506127c036cd5fb41613073cc882c82e74e2c3dff2e
3. Now you have three choices. Choose one of the instructions below to extract the image URI.
3.a) Go to bitst.art and scroll down to the “description” field under events.
The visual part starts with data:text/html;base64,PCF…. and ends with **….bWw+
You can just copy-paste this whole thing within the “animation_url” element’s quotes to any browser’s search box and it’ll show you your fully onchain PERMANOISE.
3.b) Visit JP Janssen’s decoder referring to this transaction and scroll all the way down to the “Description” field. You’ll see the full data there.
The visual part starts with data:text/html;base64,PCF…. and ends with **….bWw+
You can just copy-paste this whole thing within the “animation_url” element’s quotes to any browser’s search box and it’ll show you your fully onchain PERMANOISE.
3.c) You can also do it manually. Follow JP Janssen’s guide and use the transaction where the data is added on-chain. Here’s the blockstream link to the Bitcoin transaction.
Note: The entire URI is a JSON file; but what you’re interested in is the animation, which is located inside the “animation_url” element of the JSON. In either option above in Step 3, the image element starts with data:image/svg…. and ends with …/svg%3e.
If you copy this string into any browser’s URL section, it’ll display the artwork.