CINXE.COM
omg.lol - Proofs
<!-- edge: usw-web-lorxu --> <!DOCTYPE html> <html lang="en"> <head> <title>omg.lol - Proofs</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <meta property="og:type" content="website"> <meta property="og:title" content="omg.lol - Proofs"> <meta property="og:url" content="https://home.omg.lol/info/proofs"> <meta property="og:description" content="You don’t have to prove yourself to anyone, but proving that your stuff is yours is pretty sweet"> <meta property="og:image" content="https://cdn.cache.lol/img/social_card_2022-06-23.png"> <meta name="twitter:profile" content="summary_large_image"> <meta name="twitter:site" content="@omgdotlol"> <meta name="twitter:creator" content="@omgdotlol"> <meta name="twitter:title" content="omg.lol - Proofs"> <meta name="twitter:description" content="You don’t have to prove yourself to anyone, but proving that your stuff is yours is pretty sweet"> <meta name="twitter:image" content="https://cdn.cache.lol/img/social_card_2022-06-23.png"> <link rel="apple-touch-icon" sizes="180x180" href="https://cdn.cache.lol/favicons/omg.lol/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="https://cdn.cache.lol/favicons/omg.lol/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="https://cdn.cache.lol/favicons/omg.lol/favicon-16x16.png"> <link rel="manifest" href="https://cdn.cache.lol/favicons/omg.lol/site.webmanifest"> <link rel="mask-icon" href="https://cdn.cache.lol/favicons/omg.lol/safari-pinned-tab.svg" color="#ff69ad"> <link rel="shortcut icon" href="https://cdn.cache.lol/favicons/omg.lol/favicon.ico"> <meta name="apple-mobile-web-app-title" content="omg.lol"> <meta name="application-name" content="omg.lol"> <meta name="msapplication-TileColor" content="#343a40"> <meta name="msapplication-config" content="https://cdn.cache.lol/favicons/omg.lol/browserconfig.xml"> <meta name="theme-color" content="#343a40"> <link rel="stylesheet" href="https://cdn.cache.lol/css/style.css?v=2024-08-04a"> <script> // Function to set a cookie function setCookie(name, value, days) { var expires = ""; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toUTCString(); } document.cookie = name + "=" + value + expires + "; path=/"; } // Function to get a cookie value function getCookie(name) { var nameEQ = name + "="; var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = cookies[i]; while (cookie.charAt(0) === ' ') { cookie = cookie.substring(1, cookie.length); } if (cookie.indexOf(nameEQ) === 0) { return cookie.substring(nameEQ.length, cookie.length); } } return null; } // Check if the notice should be displayed function checkNoticeDisplay() { var noticeDiv = document.getElementById("notice_004"); // Read the cookie value var noticeDismissed = getCookie("notice_004"); //console.log('result = ' + noticeDismissed); if (noticeDismissed === "true") { // Hide the notice if the cookie value is set to true noticeDiv.style.display = "none"; } else { // Show the notice if the cookie value is not set or set to false noticeDiv.style.display = "block"; } } // Function to dismiss the notice and set the cookie function dismissNotice() { var noticeDiv = document.getElementById("notice_004"); // Hide the notice noticeDiv.style.display = "none"; // Set the cookie to remember the dismissal setCookie("notice_004", "true", 90); // Cookie will expire in 90 days } // Call the checkNoticeDisplay function when the page loads window.addEventListener("load", checkNoticeDisplay); </script> <style> h2, h3, h4, h5 { margin-top: 2rem; } .legal h3 { margin-top: calc(var(--spacing)*2); } .legal .item-label { text-transform: uppercase; font-size: 85%; margin-right: .3em; } .legal-section { margin-left: 0; margin-bottom: var(--spacing); padding-left: calc(var(--spacing)/2); border-left: calc(var(--spacing)/2) solid var(--gray-3); } .legal-summary { background: var(--gray-3); padding: 1em; border-radius: var(--small-radius); } .legal-summary i { color: var(--gray-7); } .breadcrumbs p { margin: 0; } .penelope-info { float: right; width: 12em; margin-top: 1em; margin-right: -1em; } .video-container { position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden; } .video-container iframe, .video-container object, .video-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } @media only screen and (max-width: 500px) { .penelope-info { display: none; } } </style> <script src="https://cdn.cache.lol/js/main.js" integrity="sha384-LfVyp53sQ2unlxhfV1meh0uoJAa4+M4ufxSxXrsx+K1rAfdA5z96NtzHluvzOHzF" crossorigin="anonymous"></script> <meta name="proof" content="proven.lol/d5a32f"> </head> <body> <script> const theme = localStorage.getItem('color_scheme') || 'dark-mode'; document.body.className = theme; </script> <div class="fixed" style="--width: 70em;"> <header> <div class="flex"> <div class="box logotype space basis" style="--basis: 3em;"> <p><a href="https://home.omg.lol/">omg<span class="pink-5-fg">.</span>lol <img src="https://cdn.cache.lol/img/prami.svg?v=20230701" alt="Prami"></a></p> </div> <div class="box space right basis" style="--basis: 9em;"> <nav class="horizontal"> <ul> <li><span name="color_mode_button" id="color_mode_button" onclick="toggle_color_scheme(true)" title="Toggle dark/light mode"></span></li> <li><a class="help" href="/info"><i class="fa-solid fa-block-question"></i><span class="dashboard-label"> Help</span></a></li> <li><a href="/sign-up">Sign up</a></li> <li><a href="/sign-in">Sign in</a></li> </ul> </nav> </div> </div> </header> <main><div class="penelope-info"><img src="https://cdn.cache.lol/img/pigeonpose5.svg"></div> <h1 class="green-5-fg"><a href="/info/"><i class="fa-solid fa-memo-circle-info lime-5-fg"></i> Info Center</a></h1> <div class="container gray-3-bg black-fg"><h1>Proofs</h1> <p style="font-style: italic; margin: -1em 0 1.5em 0; font-size: 85%;">Updated 8 months ago</p><hr class="dark"> <p>Proven (dot lol) is digital asset ownership proofs for everyone. No monthly fees or crypto blockchain ape JPGs—just a simple verification process to validate ownership of stuff on the internet.</p> <h2>How it works</h2> <p>First, it’s really important to make this point clear: proven.lol isn’t aiming to be like Keybase or Keyoxide, or anything that’s serious and smart in the cryptographic proof / web of trust space. It’s meant to be simple and fun, and is ultimately a centralized and opinionated service. Use it for fun, not for government-level identity verification. Remember, the domain ends in “dot lol”.</p> <p>With that out of the way, here’s how it operates in a nutshell:</p> <ol> <li>You claim ownership of something, like https://example.com/jabberwocky.</li> <li>proven.lol provides you a verification snippet like <code>proven.lol/a0c1b2</code> </li> <li>There are currently two ways to add the snippit: <ul> <li>Page: Add the snippit somewhere on the page you're trying to prove ownership of. This method can be used for any URL claim.</li> <li>DNS: Add the snippit as a TXT record. This method is only for if you're claiming ownership of a domain.</li> </ul> </li> <li>You add the snippet and tell proven.lol that you’ve done so, and then proven.lol checks the page for the snippet. If the claim is present, your claim is turned into a timestamped proof. Yay!</li> </ol> <p><strong>Note: You should only attempt to prove ownership over things that you actually “own”—that is, things that are wholly for or about you (like a social profile page), or that you created or maintain, and that would fit any reasonable definition of something that you “own”. Don’t claim shared spaces or things that you know you do not own.</strong></p> <p>For things that aren’t websites, the flow may be a little different (proving an email address, for instance, would require you to email your claim to a specific validation address). We’ll get to that when we build it.</p> <p>Here’s the cool part—you can delete your verification snippet from your asset after your claim has been proven. “But doesn’t that defeat the entire purpose of this?” you might ask. “No way,” we’d answer. Because proven.lol works differently. (Keep reading below.)</p> <h3>Point-In-Time Proofs</h3> <p>All of the proofs on proven.lol are timestamped, and the claims are proven <em>as of that timestamp</em>. Unlike Keybase or other services that require you to make a post with your claim and keep it live forever, proven.lol isn’t going to keep checking for that stuff over and over (or pester you if it vanishes). Simply put, we’re only interested in documenting proof of something at a particular point in time.</p> <p>You’re welcome to refresh your proof as often as you’d like, or you can let your proofs age. Ultimately it’s up you to decide what’s “fresh” enough when it comes to a proof, or if it even matters. Life is short and everything is temporary, so maybe don’t overthink it. You can always leave your verification snippet in place, which is a great way to signal to visitors that you still maintain control over the asset.</p> <p>The upside to a point-in-time proof system is that you can easily prove ownership of third-party pages where you only have limited space to post a claim (like in a “bio” field). We can check your claim, prove it, and then you can remove the snippet from your bio and go back to normal.</p> <h3>Negative Assertions</h3> <p>Another feature (that’s coming soon) is that we’ll allow you to post <em>negative proofs</em>, which is a way of saying, for example, “I’m not on Twitter.” You can’t truly prove a negative, though, so these assertions can never turn into proofs—but we’re happy to host them for you, as part of your proven.lol page. This way, people can get a comprehensive view about where you can and <em>can’t</em> be found online.</p> <h3>omg.lol integration</h3> <p>“This all sounds nice, but I already have all of my stuff listed on my omg.lol page” is something you might be thinking. Well, cool, we’ve thought about that too! proven.lol will eventually work in tandem with omg.lol, and the URLs you have on your omg.lol profile will automatically receive a visual designation of their proofs if you’ve proven them on proven.lol. Or, you can set up all of your stuff on proven.lol and easily bring it all into your omg.lol profile without having to duplicate anything. It’ll all be possible, and easy.</p> <h2>Aren’t you just a random untrusted party, though?</h2> <p>Yeah, we are. Also, the domain ends in .lol, so that probably should have been your first clue that you’re not getting government-level RFC3161-compliant Time Stamp Authority service here or anything even remotely close. This is for fun! If you don’t think it’s fun, then don’t use it.</p> <h2>Questions?</h2> <p>Visit the <a href="https://discourse.lol/c/proofs/18">Proofs category on Discourse</a> to ask questions or share any feedback.</p> <p class="centered"><i class="fa-solid fa-star"></i></p></div><div class="container"><div class="flex" style="margin: 0;"><div class="box"><i class="fa-duotone fa-fw fa-handshake-angle"></i> Need more help? <a href="/info/contact">Contact us</a> at any time.</div></div></div><link rel="stylesheet" href="https://cdn.cache.lol/css/highlightjs/dracula.css"> <script src="https://cdn.cache.lol/js/highlight.min.js"></script></main> <footer> <div class="area"> <div class="box basis" style="--basis: 15em;"> <ul class="fa-ul"> <li><a href="https://omglol.news"><span class="fa-li"><i class="fa-solid fa-fw fa-newspaper"></i></span>News & Updates</a></li> <li><a href="https://broke.lol"><span class="fa-li"><i class="fa-solid fa-fw fa-wave-pulse"></i></span>System Status</a></li> <li><a href="https://api.omg.lol"><span class="fa-li"><i class="fa-solid fa-fw fa-brackets-curly"></i></span>API</a></li> <li><a href="/info"><span class="fa-li"><i class="fa-solid fa-fw fa-handshake-angle"></i></span>Info & Help</a></li> <li><a href="/sponsors"><span class="fa-li"><i class="fa-solid fa-fw fa-trophy"></i></span>Sponsors</a></li> <li><a href="/tip-jar"><span class="fa-li"><i class="fa-solid fa-fw fa-jar"></i></span>Tip Jar</a></li> <li><a href="/info/legal"><span class="fa-li"><i class="fa-solid fa-fw fa-scale-balanced"></i></span>Legal</a></li> </ul> </div> <div class="box basis centered" style="--basis: 20em;"> <p><span class="logotype"><a href="https://home.omg.lol">omg<span class="pink-5-fg">.</span>lol</a></span> is made by <a href="https://neatnik.net/">Neatnik</a> in Louisville, KY.</p> <p>We hope you’re having a great day.</p> <p><img src="https://cdn.cache.lol/img/prami_content.svg" alt="Prami looking rather contented" style="width: 3.5em;"></p> </div> <div class="box basis centered" style="--basis: 15em;"> <ul class="horizontal"> <li><a rel="me" href="https://social.lol/@prami"><i class="fa-brands fa-fw fa-2x fa-mastodon"></i></a></li> <li><a href="https://discourse.lol"><i class="fa-brands fa-fw fa-2x fa-discourse"></i></a></li> <li><a href="http://youtube.com/@omgdotlol"><i class="fa-brands fa-fw fa-2x fa-youtube"></i></a></li> </ul> </div> </div> </footer> </div> <script src="https://cdn.cache.lol/js/prism.js"></script> <script> const dark_class = 'gray-6-fg fa-duotone fa-fw fa-moon'; const light_class = 'yellow-3-fg fa-duotone fa-fw fa-sun'; // set the color scheme based on the browser/OS preference, if any if(window.matchMedia('(prefers-color-scheme)').media !== 'not all') { // the browser is indicating that it supports prefers-color-scheme if(window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { // the browser prefers dark mode var body = document.body; body.classList.add('dark-mode'); document.getElementById('color_mode_button').innerHTML = '<i class="'+light_class+'"></i>'; } else { // the browser doesn’t prefer dark mode var body = document.body; body.classList.add('light-mode'); document.getElementById('color_mode_button').innerHTML = '<i class="'+dark_class+'"></i>'; } // add an event listener to toggle the color scheme as changes are made, as long as the user hasn't already set their mode with the button window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => { if(!localStorage.getItem('color_scheme')) { const new_color_scheme = event.matches ? "dark" : "light"; toggle_color_scheme(); } }); } else { // browser does not support prefers-color-scheme var body = document.body; body.classList.add('dark-mode'); document.getElementById('color_mode_button').innerHTML = '<i class="'+light_class+'"></i>'; } if(localStorage.getItem('color_scheme')) { var body = document.body; body.className = localStorage.getItem('color_scheme'); if(localStorage.getItem('color_scheme') == 'light-mode') document.getElementById('color_mode_button').innerHTML = '<i class="'+dark_class+'"></i>'; else document.getElementById('color_mode_button').innerHTML = '<i class="'+light_class+'"></i>'; } function toggle_color_scheme(clicked = false) { var body = document.body; var color_scheme = body.className; body.className = color_scheme == "dark-mode" ? "light-mode" : "dark-mode"; color_scheme = body.className; if(clicked) localStorage.setItem('color_scheme', color_scheme); if(color_scheme == 'light-mode') document.getElementById('color_mode_button').innerHTML = '<i class="'+dark_class+'"></i>'; else document.getElementById('color_mode_button').innerHTML = '<i class="'+light_class+'"></i>'; } </script> </body> </html>