Netlify
tcp/443 tcp/80
Open service 63.176.8.218:443 · compose.diamonds
2026-01-13 01:12
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 2
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 24109
Content-Type: text/html; charset=UTF-8
Date: Tue, 13 Jan 2026 01:12:34 GMT
Etag: "6230b5598f1f1ae678453483acfef8f9-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KETEJTSEM69R2FVGYMYSZDAX
Connection: close
Page title: Compose - Smart Contract Library | Compose
<!doctype html>
<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Compose - Smart Contract Library | Compose</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://compose.diamonds/img/socialcard-compose.png"><meta data-rh="true" name="twitter:image" content="https://compose.diamonds/img/socialcard-compose.png"><meta data-rh="true" property="og:url" content="https://compose.diamonds/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Compose - Smart Contract Library | Compose"><meta data-rh="true" name="description" content="Compose is a smart contract library for ERC-2535 Diamonds. Build readable, composable smart contracts with onchain standard library facets."><meta data-rh="true" property="og:description" content="Compose is a smart contract library for ERC-2535 Diamonds. Build readable, composable smart contracts with onchain standard library facets."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://compose.diamonds/"><link data-rh="true" rel="alternate" href="https://compose.diamonds/" hreflang="en"><link data-rh="true" rel="alternate" href="https://compose.diamonds/" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://3FQESEVPL4-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Compose RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Compose Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Compose" href="/opensearch.xml">
<link rel="preconnect" href="https://compose.diamonds/54Q17895d65">
<script>!function(t,e){var o,s,a,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,p,n){function c(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(a=t.createElement("script")).type="text/javascript",a.async=!0,a.src=p.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(a,r);var u=e;for(void 0!==n?u=e[n]=[]:n="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==n&&(e+="."+n),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="
Open service 35.157.26.135:443 · www.compose.diamonds
2026-01-13 01:12
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Tue, 13 Jan 2026 01:12:34 GMT Location: https://compose.diamonds/ Server: Netlify Strict-Transport-Security: max-age=31536000 X-Nf-Request-Id: 01KETEJTF2E6QS9CSZ2DWBF75S Content-Length: 40 Connection: close Redirecting to https://compose.diamonds/
Open service 35.157.26.135:80 · www.compose.diamonds
2026-01-13 01:12
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Tue, 13 Jan 2026 01:12:43 GMT Location: https://www.compose.diamonds/ Server: Netlify X-Nf-Request-Id: 01KETEK2ZQ0GE6961NDHG2HZZV Content-Length: 44 Connection: close Redirecting to https://www.compose.diamonds/
Open service 35.157.26.135:80 · compose.diamonds
2026-01-13 01:12
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Tue, 13 Jan 2026 01:12:42 GMT Location: https://compose.diamonds/ Server: Netlify X-Nf-Request-Id: 01KETEK295J36E2MZ5AVG8ENRJ Content-Length: 40 Connection: close Redirecting to https://compose.diamonds/
Open service 63.176.8.218:80 · compose.diamonds
2026-01-13 01:12
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Tue, 13 Jan 2026 01:12:42 GMT Location: https://compose.diamonds/ Server: Netlify X-Nf-Request-Id: 01KETEK29G677RZ3T6EA0E6JZM Content-Length: 40 Connection: close Redirecting to https://compose.diamonds/
Open service 2a05:d014:58f:6200::259:443 · www.compose.diamonds
2026-01-13 01:12
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Tue, 13 Jan 2026 01:12:34 GMT Location: https://compose.diamonds/ Server: Netlify Strict-Transport-Security: max-age=31536000 X-Nf-Request-Id: 01KETEJTETJ648WVHCKWQQT0YS Content-Length: 40 Connection: close Redirecting to https://compose.diamonds/
Open service 2a05:d014:58f:6200::259:443 · compose.diamonds
2026-01-13 01:12
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 3
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 24109
Content-Type: text/html; charset=UTF-8
Date: Tue, 13 Jan 2026 01:12:34 GMT
Etag: "6230b5598f1f1ae678453483acfef8f9-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KETEJTBATCJSS3ESKM4Z43JR
Connection: close
Page title: Compose - Smart Contract Library | Compose
<!doctype html>
<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Compose - Smart Contract Library | Compose</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://compose.diamonds/img/socialcard-compose.png"><meta data-rh="true" name="twitter:image" content="https://compose.diamonds/img/socialcard-compose.png"><meta data-rh="true" property="og:url" content="https://compose.diamonds/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Compose - Smart Contract Library | Compose"><meta data-rh="true" name="description" content="Compose is a smart contract library for ERC-2535 Diamonds. Build readable, composable smart contracts with onchain standard library facets."><meta data-rh="true" property="og:description" content="Compose is a smart contract library for ERC-2535 Diamonds. Build readable, composable smart contracts with onchain standard library facets."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://compose.diamonds/"><link data-rh="true" rel="alternate" href="https://compose.diamonds/" hreflang="en"><link data-rh="true" rel="alternate" href="https://compose.diamonds/" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://3FQESEVPL4-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Compose RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Compose Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Compose" href="/opensearch.xml">
<link rel="preconnect" href="https://compose.diamonds/54Q17895d65">
<script>!function(t,e){var o,s,a,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,p,n){function c(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(a=t.createElement("script")).type="text/javascript",a.async=!0,a.src=p.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(a,r);var u=e;for(void 0!==n?u=e[n]=[]:n="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==n&&(e+="."+n),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="
Open service 2a05:d014:58f:6200::258:80 · www.compose.diamonds
2026-01-13 01:12
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Tue, 13 Jan 2026 01:12:42 GMT Location: https://www.compose.diamonds/ Server: Netlify X-Nf-Request-Id: 01KETEK2D53M59YBGNA8BNSCY4 Content-Length: 44 Connection: close Redirecting to https://www.compose.diamonds/
Open service 2a05:d014:58f:6200::259:80 · compose.diamonds
2026-01-13 01:12
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Tue, 13 Jan 2026 01:12:42 GMT Location: https://compose.diamonds/ Server: Netlify X-Nf-Request-Id: 01KETEK28V6SX9NW752ZM77AVH Content-Length: 40 Connection: close Redirecting to https://compose.diamonds/
Open service 63.176.8.218:80 · www.compose.diamonds
2026-01-13 01:12
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Tue, 13 Jan 2026 01:12:42 GMT Location: https://www.compose.diamonds/ Server: Netlify X-Nf-Request-Id: 01KETEK28SHXQ363W06PHG04AZ Content-Length: 44 Connection: close Redirecting to https://www.compose.diamonds/
Open service 2a05:d014:58f:6200::258:443 · www.compose.diamonds
2026-01-13 01:12
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Tue, 13 Jan 2026 01:12:34 GMT Location: https://compose.diamonds/ Server: Netlify Strict-Transport-Security: max-age=31536000 X-Nf-Request-Id: 01KETEJTHA9WPKXF2SCGB7PAYE Content-Length: 40 Connection: close Redirecting to https://compose.diamonds/
Open service 2a05:d014:58f:6200::258:80 · compose.diamonds
2026-01-13 01:12
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Tue, 13 Jan 2026 01:12:43 GMT Location: https://compose.diamonds/ Server: Netlify X-Nf-Request-Id: 01KETEK2WA9YJ0K2PXAWR9JD7F Content-Length: 40 Connection: close Redirecting to https://compose.diamonds/
Open service 63.176.8.218:443 · www.compose.diamonds
2026-01-13 01:12
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Tue, 13 Jan 2026 01:12:33 GMT Location: https://compose.diamonds/ Server: Netlify Strict-Transport-Security: max-age=31536000 X-Nf-Request-Id: 01KETEJSN56DRQHEFHVBNT9EZR Content-Length: 40 Connection: close Redirecting to https://compose.diamonds/
Open service 2a05:d014:58f:6200::258:443 · compose.diamonds
2026-01-13 01:12
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 2
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; fwd=miss
Content-Length: 24109
Content-Type: text/html; charset=UTF-8
Date: Tue, 13 Jan 2026 01:12:34 GMT
Etag: "6230b5598f1f1ae678453483acfef8f9-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KETEJSV4N0C4G0RE0GBQHZ26
Connection: close
Page title: Compose - Smart Contract Library | Compose
<!doctype html>
<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Compose - Smart Contract Library | Compose</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://compose.diamonds/img/socialcard-compose.png"><meta data-rh="true" name="twitter:image" content="https://compose.diamonds/img/socialcard-compose.png"><meta data-rh="true" property="og:url" content="https://compose.diamonds/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Compose - Smart Contract Library | Compose"><meta data-rh="true" name="description" content="Compose is a smart contract library for ERC-2535 Diamonds. Build readable, composable smart contracts with onchain standard library facets."><meta data-rh="true" property="og:description" content="Compose is a smart contract library for ERC-2535 Diamonds. Build readable, composable smart contracts with onchain standard library facets."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://compose.diamonds/"><link data-rh="true" rel="alternate" href="https://compose.diamonds/" hreflang="en"><link data-rh="true" rel="alternate" href="https://compose.diamonds/" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://3FQESEVPL4-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Compose RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Compose Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Compose" href="/opensearch.xml">
<link rel="preconnect" href="https://compose.diamonds/54Q17895d65">
<script>!function(t,e){var o,s,a,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,p,n){function c(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(a=t.createElement("script")).type="text/javascript",a.async=!0,a.src=p.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(a,r);var u=e;for(void 0!==n?u=e[n]=[]:n="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==n&&(e+="."+n),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="
Open service 2a05:d014:58f:6200::259:80 · www.compose.diamonds
2026-01-13 01:12
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Tue, 13 Jan 2026 01:12:41 GMT Location: https://www.compose.diamonds/ Server: Netlify X-Nf-Request-Id: 01KETEK1BGEA7MPRS9ENC2THE3 Content-Length: 44 Connection: close Redirecting to https://www.compose.diamonds/
Open service 2a05:d014:58f:6200::258:80 · compose.diamonds
2025-12-31 21:56
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Wed, 31 Dec 2025 21:56:30 GMT Location: https://compose.diamonds/ Server: Netlify X-Nf-Request-Id: 01KDV6K672ZMD0HDKDA2AFZSN1 Content-Length: 40 Connection: close Redirecting to https://compose.diamonds/
Open service 2a05:d014:58f:6200::258:443 · compose.diamonds
2025-12-31 21:56
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 0
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; fwd=miss
Content-Length: 24109
Content-Type: text/html; charset=UTF-8
Date: Wed, 31 Dec 2025 21:56:30 GMT
Etag: "99785c9889460dc382a77478368b6a82-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KDV6K5SK6A74P6Q9HHBDX4WZ
Connection: close
Page title: Compose - Smart Contract Library | Compose
<!doctype html>
<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Compose - Smart Contract Library | Compose</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://compose.diamonds/img/socialcard-compose.png"><meta data-rh="true" name="twitter:image" content="https://compose.diamonds/img/socialcard-compose.png"><meta data-rh="true" property="og:url" content="https://compose.diamonds/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Compose - Smart Contract Library | Compose"><meta data-rh="true" name="description" content="Compose is a smart contract library for ERC-2535 Diamonds. Build readable, composable smart contracts with onchain standard library facets."><meta data-rh="true" property="og:description" content="Compose is a smart contract library for ERC-2535 Diamonds. Build readable, composable smart contracts with onchain standard library facets."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://compose.diamonds/"><link data-rh="true" rel="alternate" href="https://compose.diamonds/" hreflang="en"><link data-rh="true" rel="alternate" href="https://compose.diamonds/" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://3FQESEVPL4-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Compose RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Compose Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Compose" href="/opensearch.xml">
<link rel="preconnect" href="https://compose.diamonds/54Q17895d65">
<script>!function(t,e){var o,s,a,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,p,n){function c(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(a=t.createElement("script")).type="text/javascript",a.async=!0,a.src=p.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(a,r);var u=e;for(void 0!==n?u=e[n]=[]:n="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==n&&(e+="."+n),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="
Open service 63.176.8.218:80 · compose.diamonds
2025-12-31 21:56
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Wed, 31 Dec 2025 21:56:29 GMT Location: https://compose.diamonds/ Server: Netlify X-Nf-Request-Id: 01KDV6K56D2N4YQ1WPP7HX748R Content-Length: 40 Connection: close Redirecting to https://compose.diamonds/
Open service 2a05:d014:58f:6200::259:443 · compose.diamonds
2025-12-31 21:56
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 0
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; fwd=miss
Content-Length: 24109
Content-Type: text/html; charset=UTF-8
Date: Wed, 31 Dec 2025 21:56:30 GMT
Etag: "99785c9889460dc382a77478368b6a82-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KDV6K5T852WKSATG98Y6T63C
Connection: close
Page title: Compose - Smart Contract Library | Compose
<!doctype html>
<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Compose - Smart Contract Library | Compose</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://compose.diamonds/img/socialcard-compose.png"><meta data-rh="true" name="twitter:image" content="https://compose.diamonds/img/socialcard-compose.png"><meta data-rh="true" property="og:url" content="https://compose.diamonds/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Compose - Smart Contract Library | Compose"><meta data-rh="true" name="description" content="Compose is a smart contract library for ERC-2535 Diamonds. Build readable, composable smart contracts with onchain standard library facets."><meta data-rh="true" property="og:description" content="Compose is a smart contract library for ERC-2535 Diamonds. Build readable, composable smart contracts with onchain standard library facets."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://compose.diamonds/"><link data-rh="true" rel="alternate" href="https://compose.diamonds/" hreflang="en"><link data-rh="true" rel="alternate" href="https://compose.diamonds/" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://3FQESEVPL4-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Compose RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Compose Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Compose" href="/opensearch.xml">
<link rel="preconnect" href="https://compose.diamonds/54Q17895d65">
<script>!function(t,e){var o,s,a,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,p,n){function c(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(a=t.createElement("script")).type="text/javascript",a.async=!0,a.src=p.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(a,r);var u=e;for(void 0!==n?u=e[n]=[]:n="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==n&&(e+="."+n),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="
Open service 2a05:d014:58f:6200::259:80 · compose.diamonds
2025-12-31 21:56
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Wed, 31 Dec 2025 21:56:29 GMT Location: https://compose.diamonds/ Server: Netlify X-Nf-Request-Id: 01KDV6K5JXJDHD9NCFV5W1696B Content-Length: 40 Connection: close Redirecting to https://compose.diamonds/