CINXE.COM
IPLD - The data model of the content-addressable web
<!DOCTYPE html> <html class="no-js" lang="en-US" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="shortcut icon" href="favicon.ico"> <link rel="stylesheet" href="css/splash.css?1733980639063" /> <link rel="stylesheet" href="css/tachyons.min.css" /> <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600,700" rel="stylesheet"/> <title>IPLD - The data model of the content-addressable web</title> <meta name="description" content="The data model of the content-addressable web. It allows us to treat all hash-linked data structures as subsets of a unified information space, unifying all data models that link data with hashes as instances of IPLD." /> <meta name="author" content="Protocol Labs" /> <meta property="og:type" content="website" /> <meta property="og:description" content="The data model of the content-addressable web. It allows us to treat all hash-linked data structures as subsets of a unified information space, unifying all data models that link data with hashes as instances of IPLD." /> <meta property="og:title" content="IPLD - The data model of the content-addressable web" /> <meta property="og:site_name" content="IPLD" /> <meta property="og:url" content="https://ipld.io/" /> <meta property="og:locale" content="en_US"> <meta property="og:image" content="https://ipld.io/img/ipld-logo.png" /> <meta property="og:image:type" content="image/png" /> <meta property="og:image:width" content="146" /> <meta property="og:image:height" content="166" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:site" content="IPLD" /> <meta name="twitter:title" content="IPLD - The data model of the content-addressable web" /> <meta name="twitter:creator" content="Protocol Labs" /> <meta name="twitter:description" content="The data model of the content-addressable web. It allows us to treat all hash-linked data structures as subsets of a unified information space, unifying all data models that link data with hashes as instances of IPLD." /> <meta name="twitter:domain" content="ipld.io" /> <meta name="twitter:image:src" content="https://ipld.io/img/ipld-logo.png" /> </head> <body lang="en" class="open-sans ipld-gray bg-white"> <header class="bg-white"> <div class="db dt-ns mw8 w-100 center"> <div class="db dtc-ns v-mid tc tl-ns pv3"> <a class="dib pl3 pl5-l" href="./" title="Home"> <img style="height:81px; width:135px;" src="./img/ipld.svg" /> </a> </div> <nav class="db dtc-ns v-mid tc tr-ns mt2 mt0-ns pb3 pb0-ns nowrap"> <a href="./docs" class="b--transparent ipld-gray hover-blue db dib-ns bb-ns pv3 pv2-ns mh3 f5 fw6 ttu link">Documentation</a> <a target="_blank" href="https://github.com/ipld/ipld" class="db dib-ns bb b--transparent pv2 mh3 f5 fw6 ttu link ipld-gray hover-blue">Github</a> </nav> </div> </header> <section id="hero" style="background:#031851 url(img/ipld-hero-bg.jpg) no-repeat center; background-size: cover" class="tc pt6 pb5 ph2"> <div class="relative dib hover-trigger" data-mouse > <div style="max-width:664px;"> <svg style="max-width:100%" width="532" viewBox="0 0 532 368" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>ipld-hero</title><defs><path id="a" d="M0 53.068V.262h53.845v52.806z"/></defs><g fill="none" fill-rule="evenodd"><path class="ipld-logo-connector" d="M189.02 141.763l-75.641-44.46m227.625 45.691l79.152-45.996m-78.504 128.48l77.485 46.395m-229.121-45.602l-76.711 44.849" stroke="#1D74F2" stroke-width="4"/><g class="ipld-logo"><path d="M353.101 229.707v-91.575c0-3.118-1.663-6-4.364-7.559l-79.306-45.787a8.73 8.73 0 0 0-8.729 0l-79.306 45.787a8.728 8.728 0 0 0-4.364 7.56v91.574c0 3.119 1.663 6 4.364 7.56l79.306 45.787a8.73 8.73 0 0 0 8.729 0l79.306-45.788a8.729 8.729 0 0 0 4.364-7.559z" fill="#1D74F2" fill-rule="nonzero"/><g transform="translate(186.222 94.965)" fill-rule="nonzero" fill="#FFF"><path d="M78.844 175.25L3.068 130.88V47.492L78.842 2.66l.108.061 75.67 42.983v85.178l-.106.062-75.67 44.308zM3.499 130.634l75.345 44.119 75.345-44.119v-84.68L78.846 3.157 3.5 47.736v82.897z"/><g transform="translate(0 44.959)"><circle cx="3.068" cy="85.922" r="3.027"/><circle cx="3.068" cy="3.37" r="3.027"/></g><g transform="translate(151.268 44.959)"><circle cx="3.352" cy="85.728" r="3.027"/><circle cx="3.352" cy="3.177" r="3.027"/></g><circle cx="78.844" cy="174.434" r="3.027"/><circle cx="78.842" cy="3.475" r="3.027"/></g><g transform="translate(202 117)"><path class="ipld-logo-trunk" d="M63 149.5V9" stroke="#FFF" stroke-width="4" stroke-linecap="square"/><path class="ipld-logo-branch" stroke="#FFF" stroke-width="4" stroke-linecap="square" d="M64.5 112.5L121 77v-9.513M61.5 112.5L6 82v-9.014M61.5 84.5l-40-22V47.492m43 26.008l35-22V43m-72 48.5v-24m34-24l-15-9V22.99M46 73.5v-16m18.5-4l15-9.5V29m12 65.5v-37"/><circle class="ipld-logo-leaf" fill="#FFF" cx="5.5" cy="69.5" r="5.5"/><circle class="ipld-logo-leaf" fill="#FFF" cx="21.5" cy="43.5" r="5.5"/><circle class="ipld-logo-leaf" fill="#FFF" cx="45.5" cy="53.5" r="5.5"/><circle class="ipld-logo-leaf" fill="#FFF" cx="46.5" cy="19.5" r="5.5"/><circle class="ipld-logo-leaf" fill="#FFF" cx="62.5" cy="5.5" r="5.5"/><circle class="ipld-logo-leaf" fill="#FFF" cx="79.5" cy="24.5" r="5.5"/><circle class="ipld-logo-leaf" fill="#FFF" cx="99.5" cy="39.5" r="5.5"/><circle class="ipld-logo-leaf" fill="#FFF" cx="121.5" cy="64.5" r="5.5"/></g></g><path d="M114 94.778V36.622c0-1.98-1.058-3.81-2.776-4.801L60.776 2.743a5.56 5.56 0 0 0-5.552 0L4.776 31.82A5.541 5.541 0 0 0 2 36.621v58.157c0 1.98 1.058 3.81 2.776 4.801l50.448 29.078a5.56 5.56 0 0 0 5.552 0l50.448-29.078a5.542 5.542 0 0 0 2.776-4.8" stroke="#A5BCE7" stroke-width="3.2" fill="#FFF"/><g fill-rule="nonzero"><path fill="#343434" d="M57.975 31.152l-.46 1.564V78.09l.46.459L79.037 66.1z"/><path fill="#8C8C8C" d="M57.975 31.152L36.912 66.1l21.063 12.45V56.526z"/><path fill="#3C3C3B" d="M57.975 82.538l-.26.316v16.164l.26.757 21.075-29.68z"/><path fill="#8C8C8C" d="M57.975 99.775V82.538L36.912 70.094z"/><path fill="#141414" d="M57.975 78.55L79.037 66.1l-21.062-9.573z"/><path fill="#393939" d="M36.912 66.1l21.063 12.45V56.527z"/></g><path d="M530 331.578v-58.156c0-1.98-1.058-3.81-2.776-4.801l-50.448-29.078a5.56 5.56 0 0 0-5.552 0l-50.448 29.077a5.541 5.541 0 0 0-2.776 4.801v58.157c0 1.98 1.058 3.81 2.776 4.801l50.448 29.078a5.56 5.56 0 0 0 5.552 0l50.448-29.078a5.542 5.542 0 0 0 2.776-4.8" stroke="#A5BCE7" stroke-width="3.2" fill="#FFF"/><g fill-rule="nonzero"><path fill="#4A9EA1" d="M448.548 316.577l25.15 14.521 25.152-14.521v-29.042l-25.151-14.52-25.151 14.521z"/><path d="M471.102 276.513l-18.235 10.528c.037.324.037.65 0 .974l18.237 10.529a4.356 4.356 0 0 1 5.172 0l18.237-10.529a4.35 4.35 0 0 1 0-.974l-18.236-10.528a4.356 4.356 0 0 1-5.173 0h-.002zm25.162 14.41l-18.256 10.647a4.356 4.356 0 0 1-2.587 4.48l.02 20.94c.3.13.583.294.845.487l18.236-10.529a4.356 4.356 0 0 1 2.587-4.48v-21.057a4.356 4.356 0 0 1-.844-.487h-.001zm-45.13.118a4.355 4.355 0 0 1-.844.487v21.057a4.356 4.356 0 0 1 2.586 4.48l18.236 10.527c.262-.194.545-.357.844-.487v-21.056a4.356 4.356 0 0 1-2.587-4.48l-18.235-10.529z" fill="#63D3D7"/><g fill="#000"><path fill-opacity=".251" d="M473.698 331.099l25.15-14.522v-29.042l-25.15 14.521z"/><path fill-opacity=".039" d="M473.698 331.099v-29.044l-25.151-14.52v29.042z"/><path fill-opacity=".13" d="M448.547 287.535l25.15 14.521 25.152-14.521-25.151-14.521z"/></g><path d="M456.352 294.114h-3.314v16.018h3.313zm5.772 16.018v-5.876c.817.068 1.633.068 2.314.068 4.72 0 6.08-2.337 6.08-5.219 0-3.494-2.495-4.991-6.352-4.991h-5.355v16.018h3.313zm1.792-8.145c-.612 0-1.52 0-1.792-.023v-5.444h2.064c1.997 0 3.132.953 3.132 2.7v.045c0 1.362-.5 2.723-3.404 2.723zm17.945-7.873H471.81v16.018h3.312v-7.056h6.285v-2.405H475.1v-4.131h6.534zm10.841 3.131l.862-2.224c-1.293-.93-3.04-1.27-5.241-1.27-3.2 0-5.831 1.497-5.831 4.56 0 2.746 2.02 3.835 4.038 4.493l2.02.68c1.384.477 2.518.93 2.518 2.428 0 1.361-1.18 1.906-2.972 1.906-1.815 0-3.766-.545-4.878-1.248l-.862 2.405c1.452.93 3.29 1.384 5.763 1.384 3.516 0 6.24-1.543 6.24-4.833 0-3.063-2.338-4.038-4.697-4.832l-2.201-.726c-.953-.318-1.68-.75-1.68-1.974 0-1.248 1.022-1.747 2.542-1.747 1.86 0 3.312.34 4.379.998z" fill="#FFF"/></g><path d="M114 331.578v-58.156c0-1.98-1.058-3.81-2.776-4.801l-50.448-29.078a5.56 5.56 0 0 0-5.552 0L4.776 268.62A5.541 5.541 0 0 0 2 273.421v58.157c0 1.98 1.058 3.81 2.776 4.801l50.448 29.078a5.56 5.56 0 0 0 5.552 0l50.448-29.078a5.542 5.542 0 0 0 2.776-4.8" stroke="#A5BCE7" stroke-width="3.2" fill="#FFF"/><g transform="translate(30.8 275.3)"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><path d="M53.04 33.053c-3.597 14.145-18.207 22.752-32.632 19.225C5.987 48.75-2.792 34.425.807 20.28 4.4 6.135 19.01-2.474 33.432 1.051 47.858 4.58 56.635 18.908 53.04 33.054" fill="#F8931A" mask="url(#b)"/></g><path d="M63.754 298.152c-.833 3.274-5.975 1.61-7.642 1.203l1.471-5.784c1.667.407 7.038 1.168 6.171 4.581m-.914 9.335c-.913 3.597-7.09 1.652-9.093 1.165l1.623-6.378c2.003.49 8.424 1.461 7.47 5.213m6.75-9.283c.535-3.512-2.192-5.4-5.923-6.661l1.211-4.759-2.955-.721-1.177 4.633c-.777-.19-1.574-.369-2.368-.546l1.187-4.665-2.952-.722-1.213 4.757a95.73 95.73 0 0 1-1.885-.434l.003-.015-4.074-.998-.787 3.094s2.193.494 2.146.523c1.196.293 1.413 1.07 1.377 1.685l-1.379 5.422c.083.021.19.051.308.096l-.312-.075-1.932 7.595c-.147.357-.518.891-1.355.688.03.042-2.146-.525-2.146-.525l-1.468 3.316 3.846.94c.714.175 1.415.36 2.106.533l-1.224 4.813 2.951.722 1.212-4.762c.806.213 1.588.412 2.354.599l-1.207 4.739 2.955.722 1.222-4.804c5.037.935 8.825.558 10.42-3.91 1.285-3.597-.064-5.672-2.714-7.025 1.93-.438 3.384-1.682 3.772-4.255" fill="#FFF"/><path d="M530 94.778V36.622c0-1.98-1.058-3.81-2.776-4.801L476.776 2.743a5.56 5.56 0 0 0-5.552 0L420.776 31.82A5.541 5.541 0 0 0 418 36.621v58.157c0 1.98 1.058 3.81 2.776 4.801l50.448 29.078a5.56 5.56 0 0 0 5.552 0l50.448-29.078a5.542 5.542 0 0 0 2.776-4.8" stroke="#A5BCE7" stroke-width="3.2" fill="#FFF"/><path d="M500.575 63.24l-24.116-24.115a3.557 3.557 0 0 0-5.03 0l-5.007 5.009 6.351 6.352a4.223 4.223 0 0 1 5.35 5.385l6.122 6.123a4.224 4.224 0 0 1 4.373 1.004 4.232 4.232 0 0 1 0 5.985 4.232 4.232 0 0 1-6.908-4.603L476 58.67v15.026c.403.2.783.465 1.12.8a4.234 4.234 0 1 1-4.6-.923V58.407a4.232 4.232 0 0 1-2.297-5.55l-6.263-6.263-16.536 16.534a3.56 3.56 0 0 0 0 5.032l24.117 24.115a3.558 3.558 0 0 0 5.03 0l24.004-24.003a3.558 3.558 0 0 0 0-5.032" fill="#F05033"/></g></svg> </div> <div class="dn db-l"> <div class="absolute" style="left:-182px; top:-8px;"> <svg width="185" height="124" viewBox="0 0 185 124" xmlns="http://www.w3.org/2000/svg"><g stroke="#0073F9" stroke-width="3" fill="none" fill-rule="evenodd"><path class="draw-hex" d="M166.047 13.481L146.28 2.07a2.174 2.174 0 0 0-2.177.002L124.311 13.53a2.186 2.186 0 0 0-1.09 1.889l-.027 22.87c0 .778.413 1.497 1.086 1.886l19.767 11.412a2.174 2.174 0 0 0 2.177-.002l19.793-11.458a2.186 2.186 0 0 0 1.09-1.889l.026-22.87a2.175 2.175 0 0 0-1.086-1.886M83.203 37.16L63.437 48.574a2.174 2.174 0 0 0-1.087 1.886l.026 22.87a2.19 2.19 0 0 0 1.091 1.89L83.26 86.674c.674.39 1.503.392 2.177.003l19.766-11.412a2.174 2.174 0 0 0 1.087-1.887l-.027-22.87c0-.778-.416-1.498-1.09-1.889L85.38 37.163a2.175 2.175 0 0 0-2.177-.002m40.856 72.785l19.766 11.412a2.174 2.174 0 0 0 2.177-.003l19.793-11.457a2.186 2.186 0 0 0 1.09-1.889l.027-22.87c0-.778-.413-1.498-1.087-1.886L146.06 71.84a2.174 2.174 0 0 0-2.177.002L124.089 83.3a2.186 2.186 0 0 0-1.09 1.89l-.026 22.87a2.175 2.175 0 0 0 1.086 1.886M45.046 13.481L25.28 2.07a2.174 2.174 0 0 0-2.177.002L3.31 13.53a2.186 2.186 0 0 0-1.09 1.889l-.027 22.87c0 .778.414 1.497 1.087 1.886l19.766 11.412a2.174 2.174 0 0 0 2.177-.002l19.793-11.458a2.186 2.186 0 0 0 1.09-1.889l.027-22.87c0-.778-.414-1.497-1.087-1.886"/><path class="draw-line" d="M166.959 39.411l16.802 9.7m-77.646.225l16.802-9.7m.23 44.38l-16.802-9.7M45.958 39.411l16.802 9.7"/></g></svg> </div> <div class="absolute" style="right:-121px; top:-8px;"> <svg width="123" height="88" viewBox="0 0 123 88" xmlns="http://www.w3.org/2000/svg"><g stroke="#0073F9" stroke-width="3" fill="none" fill-rule="evenodd"><path class="draw-hex" d="M18.834 40.498L38.6 51.91a2.174 2.174 0 0 0 2.176-.003L60.57 40.45a2.186 2.186 0 0 0 1.09-1.889l.027-22.87c0-.778-.413-1.498-1.086-1.886L40.834 2.393a2.174 2.174 0 0 0-2.177.002L18.864 13.852a2.186 2.186 0 0 0-1.09 1.89l-.026 22.87a2.175 2.175 0 0 0 1.086 1.886m59.76 33.85L98.36 85.76a2.174 2.174 0 0 0 2.177-.002L120.33 74.3a2.186 2.186 0 0 0 1.09-1.889l.027-22.87c0-.778-.414-1.497-1.087-1.886l-19.766-11.412a2.174 2.174 0 0 0-2.177.002L78.624 47.703a2.186 2.186 0 0 0-1.09 1.889l-.027 22.87c0 .778.414 1.497 1.087 1.886"/><path class="draw-line" d="M1.12 49.435l16.802-9.7M77.769 49l-16.802-9.701"/></g></svg> </div> <div class="absolute" style="left:-122px; bottom:-76px;"> <svg width="125" height="159" viewBox="0 0 125 159" xmlns="http://www.w3.org/2000/svg"><g stroke="#0073F9" stroke-width="3" fill="none" fill-rule="evenodd"><path class="draw-hex" d="M44.764 13.812L24.997 2.399a2.174 2.174 0 0 0-2.177.003L3.028 13.859a2.186 2.186 0 0 0-1.091 1.89L1.91 38.617a2.175 2.175 0 0 0 1.086 1.887l19.767 11.412a2.174 2.174 0 0 0 2.177-.003l19.792-11.457a2.186 2.186 0 0 0 1.091-1.89l.026-22.869a2.172 2.172 0 0 0-1.086-1.886m18.295 106.425v22.824c0 .778.415 1.496 1.09 1.884l19.819 11.413a2.186 2.186 0 0 0 2.181 0l19.819-11.413a2.174 2.174 0 0 0 1.09-1.884v-22.824c0-.778-.415-1.496-1.09-1.884l-19.819-11.413a2.186 2.186 0 0 0-2.181 0l-19.819 11.413a2.175 2.175 0 0 0-1.09 1.884m21.069-83.007L64.36 48.64a2.174 2.174 0 0 0-1.086 1.887l.026 22.87a2.187 2.187 0 0 0 1.09 1.888l19.793 11.458c.674.39 1.504.39 2.177.002l19.767-11.412a2.174 2.174 0 0 0 1.086-1.887l-.026-22.87c0-.778-.416-1.498-1.09-1.888L86.304 37.23a2.175 2.175 0 0 0-2.177-.002"/><path class="draw-line" d="M45.676 39.741l16.802 9.701m44.561-.038l16.802-9.7m-38.783 66.777V87.08"/></g></svg> </div> <div class="absolute" style="right:-180px; bottom:-8px;"> <svg width="183" height="156" viewBox="0 0 183 156" xmlns="http://www.w3.org/2000/svg"><g stroke="#0073F9" stroke-width="3" fill="none" fill-rule="evenodd"><path class="draw-hex" d="M18.89 142.297l19.767 11.413a2.174 2.174 0 0 0 2.177-.003l19.793-11.457a2.186 2.186 0 0 0 1.09-1.89l.026-22.869a2.175 2.175 0 0 0-1.086-1.887l-19.766-11.412a2.174 2.174 0 0 0-2.177.003L18.92 115.652a2.186 2.186 0 0 0-1.09 1.89l-.027 22.869c0 .778.413 1.498 1.087 1.886m81.24-22.437l19.767-11.413a2.174 2.174 0 0 0 1.087-1.887l-.026-22.87a2.186 2.186 0 0 0-1.091-1.888l-19.793-11.458a2.174 2.174 0 0 0-2.177-.002L78.131 81.754a2.174 2.174 0 0 0-1.087 1.887l.027 22.87c0 .778.416 1.498 1.09 1.888l19.793 11.458c.674.39 1.504.39 2.177.002m20.473-81.479V15.554c0-.777-.416-1.495-1.091-1.884L99.694 2.259a2.186 2.186 0 0 0-2.181 0L77.694 13.67a2.174 2.174 0 0 0-1.09 1.884v22.824c0 .778.415 1.496 1.09 1.885l19.819 11.412a2.186 2.186 0 0 0 2.181 0l19.819-11.412a2.175 2.175 0 0 0 1.09-1.885m17.287 103.919l19.767 11.413a2.174 2.174 0 0 0 2.177-.003l19.793-11.457a2.186 2.186 0 0 0 1.09-1.89l.026-22.869a2.175 2.175 0 0 0-1.086-1.887l-19.766-11.412a2.174 2.174 0 0 0-2.177.003l-19.793 11.457a2.186 2.186 0 0 0-1.09 1.89l-.027 22.869c0 .778.413 1.498 1.087 1.886"/><path class="draw-line" d="M17.979 116.367l-16.802-9.7m76.042 1.017l-16.802 9.7m38.187-65.25v19.402m38.375 44.831l-16.802-9.7"/></g></svg> </div> </div> </div> <p style="max-width:920px;" class="ma0 pt6 center f3 lh-copy fw6 white"> IPLD is the data model of the content-addressable web. It allows us to treat all hash-linked data structures as subsets of a unified information space, unifying all data models that link data with hashes as instances of IPLD. </p> </section> <section id="why" class="pt5 pb6 ph3 bg-white"> <div class="mw8 center"> <h2 class="tc b ttu ma0 pb4 f-30"> Why IPLD? </h2> <div class="dt w-100"> <div class="dtc-ns w-40-ns v-mid"> <img src="img/ipld-illustration.svg" style="width:407px; height:353px;" /> </div> <div class="dtc-ns w-60-ns pl4-ns"> <p class="f4 b m0 pb3"> A data model for interoperable protocols. </p> <p class="f-18 lh-copy ipld-light-gray" style="max-width: 560px;"> Content addressing through hashes has become a widely-used means of connecting data in distributed systems, from the blockchains that run your favorite cryptocurrencies, to the commits that back your code, to the web鈥檚 content at large. Yet, whilst all of these tools rely on some common primitives, their specific underlying data structures are not interoperable. </p> <p class="f-18 lh-copy ipld-light-gray" style="max-width: 560px;"> Enter IPLD: IPLD is a single namespace for all hash-inspired protocols. Through IPLD, links can be traversed across protocols, allowing you to explore data regardless of the underlying protocol. </p> </div> </div> </div> </section> <section id="use-cases" class="pt5 pb4 ph3 bg-ipld-blue ipld-gray-dark"> <h2 class="tc b ttu ma0 pb4 f-30"> Use cases </h2> <p class="mw7 center lh-copy tc f-18 fw6 ma0 pb5"> The sky鈥檚 the limit as IPLD allows you to work across protocol boundaries. The point is that IPLD provides libraries that make the underlying data interoperable across tools and across protocols by default. </p> <div class="cf mw7 center w-100 pv4"> <div class="fl-ns w-60-m w-70-l pb2"> <h3 class="f3 b ma0 pv3">Bitcoin to Git</h3> <p class="lh-copy f-18"> Reference your latest commits in a git branch to a bitcoin transaction to timestamp your work. By linking your git commit, you can view the commit from your blockchain explorer. </p> </div> <div class="fr-ns w-40-m w-30-l pa2 tc tl-ns"> <img src="./img/bitcoin-to-git.svg" class="w-100" style="max-width:180px" /> </div> </div> <div class="cf mw7 center w-100 pv4"> <div class="fr-ns w-60-m w-70-l pb2"> <h3 class="f3 b ma0 pv3">Ethereum to IPFS</h3> <p class="lh-copy f-18"> Have your next contract refer to media on IPFS, perhaps modifying it and tracking its changes on each function execution. Seamlessly jump from function to object through IPLD addressing. </p> </div> <div class="fr-ns w-40-m w-30-l pa2 tc tl-ns"> <img src="./img/ethereum-to-ipfs.svg" class="w-100" style="max-width:180px" /> </div> </div> </section> <section id="features" class="pv5 bg-white"> <div class="mw8 center"> <h2 class="tc b ttu ma0 pb3 f-30"> Features </h2> <div class="cf w-100"> <div class="fl w-100 w-50-m w-third-l tc ph2 ph4-l pt4" style="height:475px"> <img src="img/ipld-feature-1.svg" style="height:188px;"> <h3 class="lh-title f3 b ipld-gray ma0 pt4 pb2"> A canonical data model </h3> <p class="lh-copy f-18 ipld-light-gray"> A self-contained descriptive model that uniquely identifies any hash-based data structure and ensures the same logical object always maps to the exact same sequence of bits. </p> </div> <div class="fl w-100 w-50-m w-third-l tc ph2 ph4-l pt4" style="height:475px"> <img src="img/ipld-feature-2.svg" style="height:188px;"> <h3 class="lh-title f3 b ipld-gray ma0 pt4 pb2"> Protocol independent resolution </h3> <p class="lh-copy f-18 ipld-light-gray"> IPLD brings isolated systems together, making integration with existing protocols simple. </p> </div> <div class="fl w-100 w-50-m w-third-l tc ph2 ph4-l pt4" style="height:500px"> <img src="img/ipld-feature-3.svg" style="height:188px;"> <h3 class="lh-title f3 b ipld-gray ma0 pt4 pb2"> Upgradeable </h3> <p class="lh-copy f-18 ipld-light-gray"> With Multiformats support, IPLD is easily upgradeable and will grow with your favorite protocols. </p> </div> <div class="fl w-100 w-50-m w-third-l tc ph2 ph4-l pt4" style="height:500px"> <img src="img/ipld-feature-4.svg" style="height:188px;"> <h3 class="lh-title f3 b ipld-gray ma0 pt4 pb2"> Operates across formats </h3> <p class="lh-copy f-18 ipld-light-gray"> Express your IPLD objects in various serializable formats like JSON, CBOR, YAML, XML and many more, making IPLD a cinch to use with any framework. </p> </div> <div class="fl w-100 w-50-m w-third-l tc ph2 ph4-l pt4" style="height:500px"> <img src="img/ipld-feature-5.svg" style="height:188px;"> <h3 class="lh-title f3 b ipld-gray ma0 pt4 pb2"> Backwards compatible </h3> <p class="lh-copy f-18 ipld-light-gray"> Non-intrusive resolvers make IPLD easy to integrate within your existing work. </p> </div> <div class="fl w-100 w-50-m w-third-l tc ph2 ph4-l pt4" style="height:500px"> <img src="img/ipld-feature-6.svg" style="height:188px;"> <h3 class="lh-title f3 b ipld-gray ma0 pt4 pb2"> A namespace for all protocols </h3> <p class="lh-copy f-18 ipld-light-gray"> IPLD allows you to explore data across protocols seamlessly, binding hash-based data structures together through a common namespace. </p> </div> </div> </div> </section> <section id="media" class="pt5 pb6 bg-ipld-blue ipld-dark-gray"> <div class="mw8 center"> <h2 class="tc b ttu ma0 pb3 f-30">Media</h2> <p class="center lh-copy tc f-18 ma0 pb5 ph2" style="max-width: 530px;"> IPLD is an open source project from the IPFS community. There are many ways you can contribute by getting involved. Learn more about IPLD from the community. </p> <div class="cf ph2-ns"> <div class="fl w-100 w-60-l ph2 pr4-l pv3"> <figure class="w-100 pa0 ma0" id="active-video" data-youtube-id="totVQXYS1N8"> <div class="embed-responsive embed-responsive-16by9"> <iframe class="dib embed-responsive-item bg-dark-gray" src="https://www.youtube.com/embed/totVQXYS1N8" frameborder="0" allowfullscreen></iframe> </div> <figcaption class="db f5 pt3 ma0 lh-copy" style="font-size:12px; height:59px;"> GPN19 - Foundations for Decentralization: Data with IPLD </figcaption> </figure> </div> <div class="fl w-50 w-25-m w-20-l ph2 pv3"> <a class="no-underline ipld-gray" target="_blank" href="https://www.youtube.com/watch?v=Bqs_LzBjQyk" data-youtube-switcher data-youtube-id=Bqs_LzBjQyk> <figure class="pa0 ma0"> <img class="w-100" src="https://img.youtube.com/vi/Bqs_LzBjQyk/mqdefault.jpg"> <figcaption class="db f5 pt3 ma0 lh-copy" style="font-size:12px; height:59px;"> Juan Benet: Enter the Merkle Forest </figcaption> </figure> </a> </div> <div class="fl w-50 w-25-m w-20-l ph2 pv3"> <a class="no-underline ipld-gray" target="_blank" href="https://www.youtube.com/watch?v=Sgf6j_mCdjI" data-youtube-switcher data-youtube-id=Sgf6j_mCdjI> <figure class="pa0 ma0"> <img class="w-100" src="https://img.youtube.com/vi/Sgf6j_mCdjI/mqdefault.jpg"> <figcaption class="db f5 pt3 ma0 lh-copy" style="font-size:12px; height:59px;"> ResNetLab: Intro to InterPlanetary Linked Data </figcaption> </figure> </a> </div> <div class="fl w-50 w-25-m w-20-l ph2 pv3"> <a class="no-underline ipld-gray" target="_blank" href="https://www.youtube.com/watch?v=skMTdSEaCtA" data-youtube-switcher data-youtube-id=skMTdSEaCtA> <figure class="pa0 ma0"> <img class="w-100" src="https://img.youtube.com/vi/skMTdSEaCtA/mqdefault.jpg"> <figcaption class="db f5 pt3 ma0 lh-copy" style="font-size:12px; height:59px;"> Why We Must Distribute The Web </figcaption> </figure> </a> </div> <div class="fl w-50 w-25-m w-20-l ph2 pv3"> <a class="no-underline ipld-gray" target="_blank" href="https://www.youtube.com/watch?v=Y_-TWTmF_1I" data-youtube-switcher data-youtube-id=Y_-TWTmF_1I> <figure class="pa0 ma0"> <img class="w-100" src="https://img.youtube.com/vi/Y_-TWTmF_1I/mqdefault.jpg"> <figcaption class="db f5 pt3 ma0 lh-copy" style="font-size:12px; height:59px;"> How IPFS Deals With Files - IPFS Camp Workshop </figcaption> </figure> </a> </div> </div> </div> </section> <footer class="white pa3" style="background:#031851 url(img/ipld-hero-bg.jpg) no-repeat center; background-size: cover"> <div class="db dt-l mw8 w-100 center"> <div class="db dtc-l v-mid tl w-100 w-40-l pv3 ph2"> <p class="f6">IPLD was started and is sponsored by</p> <a class="dib pt2 no-underline" href="https://protocol.ai/"> <img src="./img/protocollabs.svg" style="height:48px; vertical-align:middle" class="grow"> <span class="ml2 f4 b white ">Protocol Labs</span> </a> </div> <div class="db dtc-l v-mid w-100 tl tr-l mt2 mt0-l ph2"> <nav> <a href="./docs" class="b--transparent white hover-blue bb-ns db dib-ns pv2 mr3-ns f5 fw6 ttu link">Documentation</a> <a href="https://github.com/ipld/ipld" class="db dib-ns pv2 mr3-ns f5 fw6 ttu link white hover-blue">Github</a> </nav> <small class="db f6 pt4">漏 <a class="link white hover-blue" href="https://protocol.ai/" target="_blank">Protocol Labs</a> | Except as <a class="link white hover-blue" href="https://protocol.ai/legal/">noted</a>, content licensed <a class="link white hover-blue" href="" target="_blank">CC-BY 3.0</a></small> </div> </div> </footer> <script type="text/javascript"> var el = document.querySelector('[data-mouse]') el.addEventListener('mouseleave', function (evt) { evt.currentTarget.classList.add('out') }) el.addEventListener('mouseenter', function (evt) { evt.currentTarget.classList.remove('out') }) </script> <script src="/js/youtube-switcher.js"></script> </body> </html>