# interface tokens **Published by:** [bestape](https://paragraph.com/@bestape/) **Published on:** 2023-01-16 **URL:** https://paragraph.com/@bestape/interface-tokens ## Content whyRather than trusting a web-server to send the HTML client-script, the client can access a far more trustless DOM-as-an-NFT “interface token” instead. Interface tokens have the potential to drastically lower a client’s exposure to HTML attacks. Interface tokens might cause the obsolescence of HTTPS; trustless interfaces could increase confidence in high-stakes DeFi products.examplehtml signThis is the simplest example of a “signature economy” interface token that is a just-shy-of fully onchain signature economy experience. https://opensea.io/assets/0xc6a81ff731dcb0f75bf6d8526fc660939a5f8241/3 At time of writing, the block above is not being rendered by Mirror.xyz ‘s DOM so you’ll have to visit OpenSea to see this interface token in action. https://opensea.io/assets/matic/0xc6a81ff731dcb0f75bf6d8526fc660939a5f8241/3 At time of writing, here’s a snapshot of the fully rendered interface token.at time of writing, 10 unique 0x owners of the NFT collectionTo add your 0x-signature to this interface token, please mint an 0x-signature NFT here. https://www.wrappr.wtf/137/0xc6a81ff731dcb0f75bf6d8526fc660939a5f8241 This is what an 0x-signature NFT looks like. https://opensea.io/assets/0xc6a81ff731dcb0f75bf6d8526fc660939a5f8241/0 This is the fully onchain base64 HTML with the ABI array redacted for convenience.<!DOCTYPE html> <html> <head> <script src="https://cdn.jsdelivr.net/npm/web3@1.2.9/dist/web3.min.js"> </script> </head> <body> <div id="signor"></div> <script> ( function app() { function html( $0 ) { _0.doc.getElementById( 'signor' ) .innerHTML += '<p>' + $0 + '</p>' ; } function next( $0 ) { if ( $0 == _0.zero ) { _0.signor.forEach( _0.html ) ; return ; } if ( $0 ) _0.signor.add( $0 ) _0.contract.methods.ownerOf( _0.count ).call() .then( ( $0 ) => { _0.count ++ ; _0.next( $0 ) ; } ) ; } const _0 = new App ; _0.contract = new _0.web3.eth .Contract( _0.abi, _0.address ) ; _0.next() ; function App() { this.abi = [ ... ] ; this.address = '0xc6a81ff731dcb0f7' + '5bf6d8526fc660939a5f8241' ; this.contract = null ; this.count = 0 ; this.doc = document ; this.html = html ; this.next = next ; this.signor = new Set ; this.web3 = new Web3( new Web3.providers.HttpProvider( 'https://polygon-mainnet.g.a' + 'lchemy.com/v2/ud0m_4b' + '9PrCE3CWyXrPHRdy1NGBj' + 'SrD6' ) ) ; this.zero = '0x0000000000000000000' + '000000000000000000000' ; } } )() </script> </body> </html> Not entirely onchain, the script relies on a delivr.net NPM repository publisher request as well as an Alchemy.com node request. Whenever this interface token’s script is rendered, the script looks up all the unique 0x owners in the collection and adds them to the interface token’s DOM. Explained in the description about the ORAAND project below, this interface token is stored as two-layer base64 onchain metadata & content. You can explore this interface token’s metadata & content yourself by visiting this query and inputting the number 3 to lookup its url. https://polygonscan.com/address/0xc6a81ff731dcb0f75bf6d8526fc660939a5f8241#readContract More about signature economies at KERNEL. https://sign.kernel.community/backgroundWINDOWS93WINDOWS93 is impressive Windows 9x emulating HTML first published late 2014. https://www.windows93.net/ The project shows how much a webapp can behave like an operating system as well as how much an operating system can be an interactive work of art.ORAANDORAAND is a late 2022 Commodore 64 app as an NFT project. https://nopsta.com/oraand/ ORAAN’s tokenURI contains onchain ASCII-compatible data:application/json;base64 metadata. Within that metadata, the animation_url key points to an ASCII-compatible data:text/html;base64 value. OpenSea displays this base64 HTML as an