laconic-webflow-website/blog/intro-to-the-laconic-stack.html

710 lines
68 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html data-wf-page="669ac798eea89addcd56e444" data-wf-site="669696d6af77a83985da8ffd" lang="en" data-wf-collection="669ac798eea89addcd56e416" data-wf-item-slug="intro-to-the-laconic-stack"><head><meta charset="utf-8"/><title>Intro to the Laconic Stack | Laconic Network</title><meta content="Laconic Network Blog" name="description"/><meta content="Intro to the Laconic Stack | Laconic Network" property="og:title"/><meta content="Laconic Network Blog" property="og:description"/><meta content="../images/stack-diagram2.png" property="og:image"/><meta content="Intro to the Laconic Stack | Laconic Network" property="twitter:title"/><meta content="Laconic Network Blog" property="twitter:description"/><meta content="../images/stack-diagram2.png" property="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="Webflow" name="generator"/><link href="../css/laconic-staging.webflow.ac960b332.min.css" rel="stylesheet" type="text/css"/><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="../images/favicon.png" rel="shortcut icon" type="image/x-icon"/><link href="../images/app-icon.png" rel="apple-touch-icon"/><script>
(function() {
const storedTheme = localStorage.getItem('theme');
const root = document.documentElement;
if (storedTheme) {
root.setAttribute('data-theme', storedTheme);
} else {
root.setAttribute('data-theme', 'dark');
}
})();
</script></head><body><div aria-hidden="true" class="page-wrapper"><div class="global-styles w-embed"><style>
:root {
color-scheme: dark;
--duration-normal: 0.525s;
--duration-fast: 0.262s;
--ease: cubic-bezier(0.165, 0.84, 0.44, 1);
--ease-button: cubic-bezier(0.3, 1, 0.8, 1);
--normal-transition: var(--duration-fast) var(--ease);
--main-padding-top: max(13px, 0.6770833333vw);
--main-padding-side: max(16px, 2.96875vw);
--header-height: max(70px, 3.6979166667vw);
--header-height-mobile: 79px;
--logo: url("path-to-dark-theme-image.jpg");
}
:root[data-theme="light"] {
color-scheme: light;
--theme--color-accent: #0000f4;
--theme--color-accent-boke: #0000f4;
--theme--color-black: #fbfbfb;
--theme--color-white: #040404;
--theme--color-grey: #565656;
--theme--color-grey-light: #8e8e8e;
--theme--color-grey-lightness: #dedede;
--logo: url("path-to-dark-theme-image.jpg");
}
::selection {
background-color: #0000f4;
color: #040404;
}
body {
transition: all var(--normal-transition);
}
/**
*** Light Mode Styles
**/
html[data-theme="light"] .button.benefits,
html[data-theme="light"] .button.primary,
html[data-theme="light"] .button.community{
color: var(--theme--color-black);
}
html[data-theme="light"] .noise-component {
opacity: 0.35;
}
html[data-theme="light"] .benefits_ball {
mix-blend-mode: darken;
background-color: var(--theme--color-black);
box-shadow: 0 4px 115px 15px #0000f4, 0 0 70px 20px var(--theme--color-black),
inset -39px -20px 100px rgba(0, 0, 244, 0.73);
}
html[data-theme="light"] .hero_gradient,
html[data-theme="light"] .section_blog-hero,
html[data-theme="light"] .section_blog-post-hero {
background-image: linear-gradient( 180deg, var(--theme--color-black) 1%, var(--theme--color-black) 65%);
}
html[data-theme="light"] ._404_background-gradient,
html[data-theme="light"] .product-hero_gradient,
html[data-theme="light"] .partner-hero_gradient {
visibility: hidden;
}
html[data-theme="light"] .footer_toggle {
justify-content: flex-end;
}
html[data-theme="light"] .network_feature-image {
-webkit-filter: invert(100%);
filter: invert(100%);
}
html[data-theme="light"] {
.network_desktop-image,
.network_mobile-image,
.community-hero_mobile-image,
.app_desktop-image,
.app_mobile-image,
.product-hero_video-container,
.partner-hero_video-container,
.partner-hero_mobile-image-container,
.opportunities_image,
.opportunities_mobile-image {
mix-blend-mode: darken;
}
}
html[data-theme="light"] .product-hero_mobile-image-container {
mix-blend-mode: darken;
-webkit-filter: brightness(110%);
filter: brightness(110%);
}
.product-hero_gradient,
.partner-hero_gradient {
background: linear-gradient(
180deg,
rgba(0, 0, 244, 0.9) 1.63%,
rgba(0, 0, 244, 0) 99.89%
);
}
.community-hero_gradient{
background: linear-gradient(180deg, rgba(0, 0, 244, .9) 1.63%, rgba(0, 0, 244, 0) 99.89%);
}
.events_gradient{
background: linear-gradient(180deg, hsla(0, 0%, 90%, 0), hsla(0, 0%, 100%, .39) 51%, hsla(0, 0%, 95%, 0) 89.23%);
}
.stack_gradient {
position: absolute;
right: 0;
bottom: max(300px, 30.7291666667vw);
left: 0;
opacity: 0.4;
z-index: -1;
margin-left: 0;
background: linear-gradient(
180deg,
hsla(0, 0%, 90%, 0),
hsla(0, 0%, 95%, 0.5) 48.91%,
hsla(0, 0%, 95%, 0) 89.23%
);
width: 100%;
height: max(180px, 18.2291666667vw);
content: "";
pointer-events: none;
-webkit-user-select: none;
user-select: none;
}
.partner-hero_video {
-webkit-mask-size: 250% 100%;
mask-size: 250% 100%;
-webkit-mask-position: center center;
mask-position: center center;
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
-webkit-mask-image: radial-gradient(
ellipse,
#030303 40%,
rgba(3, 3, 3, 0) 85%,
rgba(3, 3, 3, 0) 100%
);
mask-image: radial-gradient(
ellipse,
#030303 40%,
rgba(3, 3, 3, 0) 85%,
rgba(3, 3, 3, 0) 100%
);
}
@keyframes noise_grain {
0% {
-webkit-transform: translate(20%, -15%);
transform: translate(20%, -15%);
}
10% {
-webkit-transform: translate(-20%, -15%);
transform: translate(-20%, -15%);
}
20% {
-webkit-transform: translate(20%, -5%);
transform: translate(20%, -5%);
}
30% {
-webkit-transform: translate(-20%, -5%);
transform: translate(-20%, -5%);
}
40% {
-webkit-transform: translate(20%, 5%);
transform: translate(20%, 5%);
}
50% {
-webkit-transform: translate(-20%, 5%);
transform: translate(-20%, 5%);
}
60% {
-webkit-transform: translate(20%, 15%);
transform: translate(20%, 15%);
}
70% {
-webkit-transform: translate(-20%, 15%);
transform: translate(-20%, 15%);
}
80% {
-webkit-transform: translate(20%, 5%);
transform: translate(20%, 5%);
}
90% {
-webkit-transform: translate(-20%, 5%);
transform: translate(-20%, 5%);
}
100% {
-webkit-transform: translate(20%, -5%);
transform: translate(20%, -5%);
}
}
.social_subheader:before{
display: block;
position: absolute;
-webkit-transform: translate(-220%, -50%);
transform: translate(-220%, -50%);
border-bottom: max(2px, .1041666667vw) solid blue;
width: max(15px, 1.25vw);
height: max(15px, .9375vw);
content: "";
}
.opportunities_block:nth-child(2n) {
grid-template-columns: auto max(50px, 15.625vw);
}
.opportunities_block:nth-child(2n) .opportunities_image {
grid-area: 1 / 2 / 2 / 3;
}
.opportunities_block:last-child {
padding-bottom: max(60px, 6.25vw);
border-bottom: max(1px, 0.0520833333vw) solid var(--theme--color-grey-light);
}
.opportunities_block:not(:first-child) {
margin-top: max(30px, 4.4791666667vw);
}
.stack_item:before {
padding-top: 0.4166666667vw;
font-size: max(10px, 0.625vw);
content: "0" counter(custom) " ";
}
.section_app div:first-child {
position: relative;
width: 67.7083333333vw;
}
.section_app .app_container {
display: flex;
z-index: 2;
}
.legal_rich-text li::marker {
color: var(--theme--color-accent);
}
.benefits_benefit-icon:before {
position: absolute;
top: 0;
left: 0;
opacity: 0.5;
background: linear-gradient(
134.38deg,
var(--theme--color-white) 4.91%,
var(--theme--color-black) 108.92%
);
content: "";
z-index: -1;
width: max(38px, 1.9791666667vw);
height: max(27px, 1.40625vw);
}
.blog-post_rich-text li::before {
content: "";
position: absolute;
border-radius: 50%;
height: 8px !important;
width: 8px !important;
margin-top: max(8px, 0.78125vw) !important;
background: var(--theme--color-accent) !important;
left: 0 !important;
}
.blog-post_rich-text li::marker {
content: "";
}
.section_hero:before {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
z-index: -1;
background: linear-gradient(
0deg,
var(--theme--color-black) 15%,
rgba(9, 9, 121, 0) 50%,
var(--theme--color-black) 100%
),
linear-gradient(
90deg,
var(--theme--color-black) 0,
hsla(0, 0%, 100%, 0) 10%,
hsla(0, 0%, 100%, 0) 50%,
hsla(0, 0%, 100%, 0) 90%,
var(--theme--color-black) 100%
);
width: 101%;
height: 101%;
aspect-ratio: 16/9;
content: "";
pointer-events: none;
}
.section_hero:after {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
z-index: -1;
background: linear-gradient(
0deg,
var(--theme--color-black) 15%,
rgba(9, 9, 121, 0) 50%,
var(--theme--color-black) 100%
),
linear-gradient(
90deg,
var(--theme--color-black) 0,
hsla(0, 0%, 100%, 0) 10%,
hsla(0, 0%, 100%, 0) 50%,
hsla(0, 0%, 100%, 0) 90%,
var(--theme--color-black) 100%
);
width: 101%;
height: 101%;
content: "";
pointer-events: none;
}
.section_404:before {
background: radial-gradient(
ellipse farthest-corner at center center,
rgba(4, 4, 4, 0.25) 55%,
var(--theme--color-black) 0
);
width: 120%;
height: 115%;
filter: blur(max(40px, 4.1666666667vw));
will-change: filter, transform;
aspect-ratio: 16 / 9;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: -1;
content: "";
pointer-events: none;
}
html[data-theme="light"] .section_404:before {
width: 120%;
height: 115%;
background: linear-gradient(
0deg,
var(--theme--color-black) 15%,
rgba(9, 9, 121, 0) 50%,
var(--theme--color-black) 100%
);
}
/* Get rid of top margin on first element in any rich text element */
.w-richtext > :not(div):first-child,
.w-richtext > div:first-child > :first-child {
margin-top: 0 !important;
}
/* Get rid of bottom margin on last element in any rich text element */
.w-richtext > :last-child,
.w-richtext ol li:last-child,
.w-richtext ul li:last-child {
margin-bottom: 0 !important;
}
.blog_card-title {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
}
.blog_preview,
.blog_summary,
.latest-news_summary {
display: -webkit-box;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
}
.blog_link-text:before,
.nav_link:before,
.footer_link:before {
position: absolute;
top: 100%;
left: 0;
right: 0;
opacity: 0;
width: 0;
background-image: repeating-linear-gradient(
0deg,
currentcolor,
currentcolor 100%,
transparent 0,
transparent 0,
currentcolor 0
),
repeating-linear-gradient(
90deg,
currentcolor,
currentcolor 100%,
transparent 0,
transparent 0,
currentcolor 0
),
repeating-linear-gradient(
currentcolor,
currentcolor 100%,
transparent 0,
transparent 0,
currentcolor 0
),
repeating-linear-gradient(
270deg,
currentcolor,
currentcolor 100%,
transparent 0,
transparent 0,
currentcolor 0
);
background-position: 0 0, 0 0, 100% 0, 0 100%;
background-repeat: no-repeat;
background-size: 0 100%, 100% 0, 0 100%, 100% 2px;
height: max(1px, 0.0520833333vw);
-webkit-animation: link_border__mvlME var(--duration-normal) linear infinite;
animation: link_border__mvlME var(--duration-normal) linear infinite;
content: "";
pointer-events: none;
transition: all var(--duration-normal) var(--ease);
}
.nav_link:hover::before,
.blog_link-text:hover::before,
.footer_link:hover::before {
width: 100%;
opacity: 1;
transition: all var(--duration-normal) var(--ease);
}
.blog-hero_card:hover .blog_hero-card-image-container {
-webkit-filter: brightness(125%);
filter: brightness(125%);
transition: -webkit-filter var(--duration-normal);
transition: filter var(--duration-normal);
transition: filter var(--duration-normal),
-webkit-filter var(--duration-normal);
}
.blog_card:hover .blog_card-image-container {
-webkit-filter: brightness(125%);
filter: brightness(125%);
transition: -webkit-filter var(--duration-normal);
transition: filter var(--duration-normal);
transition: filter var(--duration-normal),
-webkit-filter var(--duration-normal);
}
.blog_link:hover .blog_link-icon {
-webkit-transform: rotate(45deg) scale(1.15);
transform: rotate(45deg) scale(1.15);
}
.blog_link-icon {
transition: transform var(--normal-transition),
-webkit-transform var(--normal-transition);
}
@media (min-width: 1600px) {
.blog_grid {
grid-template-columns: repeat(3, 1fr);
}
}
@media (max-width: 990px) {
.social_subheader:before{
visibility:hidden;
}
.opportunities_block:last-child {
border-bottom: unset;
padding-bottom: 5.3333333333vw;
}
.opportunities_block:not(:first-child) {
margin-top: max(60px, 5.859375vw);
}
.blog_link-text:before,
.nav_link:before {
top: 105%;
}
html[data-theme="light"] .nav_menu {
background-image: linear-gradient(
180deg,
var(--theme--color-black) 1%,
var(--theme--color-black) 65%
); /* Use decimal value for opacity with higher specificity */
}
.section_hero:before,
.section_hero:after {
display: none;
}
.section_app div:first-child {
width: 100%;
min-height: max(340px, 50.6666666667vw);
order: 2;
}
}
</style></div><div class="noise-component"></div><header class="nav_component"><nav class="nav_container"><a aria-label="Go to Homepage" href="/" class="nav_logo-wrapper w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" width="601" height="106" viewBox="0 0 601 106" fill="none" class="nav_logo"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.2894 55.7848C30.5189 43.5558 38.0888 26.6671 38.0854 8.02048C38.09 5.48949 37.9502 2.98667 37.6724 0.514839L0.560059 0.518218L0.561185 71.8255C0.557804 80.4687 3.85339 89.1148 10.4451 95.7065C17.0374 102.298 25.6897 105.598 34.3346 105.593L34.3323 105.596L105.642 105.597L105.64 68.4797C103.173 68.2076 100.671 68.0673 98.134 68.0667C79.4918 68.069 62.6026 75.6383 50.373 87.8673C41.474 96.5432 27.2059 96.5449 18.4167 87.7557C9.6332 78.9722 9.62925 64.6996 18.2894 55.7848ZM97.9446 8.23121C87.6956 -2.01727 71.0447 -2.02122 60.7923 8.23121C50.5398 18.4831 50.5438 35.134 60.7923 45.3819C71.0464 55.636 87.6922 55.6343 97.9446 45.3819C108.197 35.13 108.199 18.4848 97.9446 8.23121Z" fill="var(--theme--color-white)"></path><path d="M165.931 98.1547H206.814V86.3139H179.596V7.9399H165.931V98.1547Z" fill="var(--theme--color-white)"></path><path d="M262.275 7.9399H239.613L215.925 98.1547H230.046L235.968 75.6011H265.236L271.158 98.1547H285.962L262.275 7.9399ZM238.815 64.3243L250.659 17.6379H251.114L262.502 64.3243H238.815Z" fill="var(--theme--color-white)"></path><path d="M331.202 42.9061H347.145C347.145 17.195 338.832 6.14364 319.472 6.14364C299.087 6.14364 290.319 20.1272 290.319 52.9428C290.319 85.871 299.087 99.9673 319.472 99.9673C338.832 99.9673 347.145 89.2539 347.259 64.3322H331.316C331.202 83.8415 328.81 88.6905 319.472 88.6905C308.767 88.6905 306.148 81.586 306.262 52.9428C306.262 24.4122 308.881 17.3077 319.472 17.4204C328.81 17.4204 331.202 22.4954 331.202 42.9061Z" fill="var(--theme--color-white)"></path><path d="M388.201 6.14421C408.927 6.25746 417.81 20.3532 417.81 53.056C417.81 85.7589 408.927 99.8551 388.201 99.9678C367.361 100.081 358.478 85.9843 358.478 53.056C358.478 20.1278 367.361 6.03152 388.201 6.14421ZM374.421 53.056C374.421 81.5866 377.154 88.6911 388.201 88.6911C399.133 88.6911 401.867 81.5866 401.867 53.056C401.867 24.4128 399.133 17.3083 388.201 17.4215C377.154 17.5342 374.421 24.6387 374.421 53.056Z" fill="var(--theme--color-white)"></path><path d="M447.595 98.042L433.929 98.1547V7.9399H457.958L480.393 81.4649H480.62V7.9399H494.283V98.1547H471.738L447.823 18.9913H447.595V98.042Z" fill="var(--theme--color-white)"></path><path d="M528.434 7.9399H514.77V98.1547H528.434V7.9399Z" fill="var(--theme--color-white)"></path><path d="M584.502 42.9061H600.447C600.447 17.195 592.131 6.14364 572.771 6.14364C552.391 6.14364 543.618 20.1272 543.618 52.9428C543.618 85.871 552.391 99.9673 572.771 99.9673C592.131 99.9673 600.447 89.2539 600.56 64.3322H584.615C584.502 83.8415 582.113 88.6905 572.771 88.6905C562.066 88.6905 559.451 81.586 559.564 52.9428C559.564 24.4122 562.184 17.3077 572.771 17.4204C582.113 17.4204 584.502 22.4954 584.502 42.9061Z" fill="var(--theme--color-white)"></path></svg></a><div class="nav_menu"><div class="nav_links"><a data-w-id="fbd3c3c8-569b-7ba4-52f1-12d65e5c9f1e" href="/products" class="nav_link">Products</a><a data-w-id="fbd3c3c8-569b-7ba4-52f1-12d65e5c9f20" href="/partners" class="nav_link">Partners</a><a data-w-id="fbd3c3c8-569b-7ba4-52f1-12d65e5c9f22" href="/community" class="nav_link">Community</a><a data-w-id="fbd3c3c8-569b-7ba4-52f1-12d65e5c9f24" href="/blog" class="nav_link">Blog</a></div><a href="https://github.com/cerc-io/stack-orchestrator" target="_blank" class="button mobile-nav w-button">GET STARTED</a><div class="hide-on-desktop"><div class="nav_secondary-menu"><div class="theme-toggle_wrapper"><div id="toggle-label" class="footer_toggle-label">Dark Mode</div><a id="theme-toggle" href="#" class="footer_toggle w-inline-block"><div class="footer_toggle-circle"></div></a></div><div class="nav_social"><a aria-label="Visit our Twitter" href="https://twitter.com/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M7.55016 21.3548c9.05434 0 14.00814-7.4471 14.00814-13.9033 0-.20936-.0047-.42337-.0141-.63273.9637-.69168 1.7953-1.54843 2.4558-2.52999-.8975.39631-1.8504.65515-2.8261.76765 1.0274-.61122 1.7966-1.57142 2.1652-2.7026-.9665.56851-2.0235.96954-3.1257 1.18591-.7426-.78315-1.7244-1.30169-2.7937-1.47544-1.0693-.17376-2.1665.00695-3.122.51417-.9554.50722-1.7159 1.31271-2.1639 2.29194-.4479.97922-.5584 2.07764-.3143 3.12543-1.95701-.09747-3.87156-.60206-5.61952-1.48104-1.74795-.87898-3.29029-2.11274-4.52701-3.62129-.62857 1.07562-.820913 2.34843-.53794 3.55975C1.418 7.66457 2.15506 8.7235 3.19641 9.41483c-.78178-.02463-1.54643-.23354-2.230785-.60947v.06048c-.0007 1.12879.392475 2.22296 1.112685 3.09656.72021.8736 1.72301 1.4727 2.83794 1.6955-.72419.1966-1.48427.2253-2.22141.0837.31461.9708.92673 1.8198 1.75093 2.4287.8242.6088 1.81935.9471 2.84657.9676-1.74392 1.3596-3.89817 2.0971-6.11578 2.0936C.783287 19.2309.390399 19.2069 0 19.1598c2.25286 1.4345 4.87353 2.1964 7.55016 2.195Z" fill="url(#:r34:)"></path><defs><linearGradient id=":r34:" x1="12" y1="2" x2="12" y2="21.3548" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a><a aria-label="Join us on Discord" href="https://discord.com/invite/ukhbBemyxY" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33 26" class="footer_social-icon"><path d="M27.936 2.155A26.571 26.571 0 0 0 21.219.002a.1.1 0 0 0-.108.053c-.29.533-.611 1.229-.837 1.775a24.314 24.314 0 0 0-7.544 0 18.232 18.232 0 0 0-.85-1.775.105.105 0 0 0-.107-.053 26.497 26.497 0 0 0-6.717 2.153.097.097 0 0 0-.044.04C.733 8.8-.438 15.245.136 21.61c.003.03.02.06.043.08 2.823 2.142 5.557 3.443 8.24 4.305a.105.105 0 0 0 .116-.039c.635-.896 1.2-1.84 1.686-2.834a.11.11 0 0 0-.057-.15 17.773 17.773 0 0 1-2.574-1.269.111.111 0 0 1-.01-.181c.172-.134.345-.274.51-.414a.1.1 0 0 1 .107-.015c5.4 2.549 11.248 2.549 16.585 0a.099.099 0 0 1 .108.013c.165.141.338.282.512.416a.111.111 0 0 1-.01.181c-.821.497-1.676.916-2.575 1.267a.11.11 0 0 0-.055.152 22.854 22.854 0 0 0 1.684 2.833.103.103 0 0 0 .116.04c2.696-.862 5.43-2.163 8.253-4.305a.11.11 0 0 0 .043-.079c.688-7.358-1.153-13.75-4.88-19.415a.085.085 0 0 0-.042-.04Zm-16.909 15.58c-1.625 0-2.965-1.543-2.965-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.991 1.556 2.965 3.438 0 1.895-1.314 3.438-2.966 3.438Zm10.966 0c-1.626 0-2.966-1.543-2.966-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.992 1.556 2.966 3.438 0 1.895-1.301 3.438-2.966 3.438Z" fill="currentColor"></path></svg></a><a aria-label="Visit our Youtube Channel" href="https://www.youtube.com/@Laconic-Network" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" class="footer_social-icon"><path d="M 15 4 C 10.814 4 5.3808594 5.0488281 5.3808594 5.0488281 L 5.3671875 5.0644531 C 3.4606632 5.3693645 2 7.0076245 2 9 L 2 15 L 2 15.001953 L 2 21 L 2 21.001953 A 4 4 0 0 0 5.3769531 24.945312 L 5.3808594 24.951172 C 5.3808594 24.951172 10.814 26.001953 15 26.001953 C 19.186 26.001953 24.619141 24.951172 24.619141 24.951172 L 24.621094 24.949219 A 4 4 0 0 0 28 21.001953 L 28 21 L 28 15.001953 L 28 15 L 28 9 A 4 4 0 0 0 24.623047 5.0546875 L 24.619141 5.0488281 C 24.619141 5.0488281 19.186 4 15 4 z M 12 10.398438 L 20 15 L 12 19.601562 L 12 10.398438 z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></a><a aria-label="Find us on Reddit" href="https://www.reddit.com/r/LaconicNetwork/" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12Zm-5.7544-1.7544C19.214 10.2456 20 11.0316 20 12c0 .7158-.4351 1.3333-1.0105 1.614.0281.1684.0421.3369.0421.5193 0 2.6947-3.1298 4.8702-7.0035 4.8702-3.87371 0-7.00353-2.1755-7.00353-4.8702 0-.1824.01403-.3649.0421-.5333-.61754-.2807-1.03859-.8842-1.03859-1.6 0-.9684.78596-1.7544 1.75438-1.7544.46316 0 .89825.1965 1.20702.4912 1.20702-.88419 2.87719-1.43156 4.74382-1.4877l.8843-4.18246c.028-.08421.0701-.15438.1403-.19649.0702-.0421.1544-.05614.2386-.0421l2.9053.61754c.1965-.42105.6175-.70175 1.1087-.70175.6878 0 1.2492.5614 1.2492 1.24912s-.5614 1.24912-1.2492 1.24912c-.6736 0-1.221-.53333-1.2491-1.19298l-2.5965-.54737-.8 3.74737c1.8246.07018 3.4807.63158 4.6737 1.4877.3088-.3088.7298-.4912 1.207-.4912ZM9.24913 12c-.68772 0-1.24912.5614-1.24912 1.2491 0 .6877.5614 1.2491 1.24912 1.2491s1.24917-.5614 1.24917-1.2491c0-.6877-.56145-1.2491-1.24917-1.2491Zm2.76487 5.4596c.4772 0 2.1053-.0561 2.9614-.9123.1264-.1263.1264-.3228.0281-.4631-.1263-.1263-.3368-.1263-.4631 0-.5474.5333-1.6843.7298-2.5123.7298-.8281 0-1.979-.1965-2.5123-.7298-.12632-.1263-.33685-.1263-.46316 0-.12632.1263-.12632.3368 0 .4631.8421.8422 2.48416.9123 2.96136.9123Zm1.4878-4.2105c0 .6877.5614 1.2491 1.2491 1.2491.6877 0 1.2491-.5614 1.2491-1.2491C16 12.5614 15.4386 12 14.7509 12c-.6877 0-1.2491.5614-1.2491 1.2491Z" fill="url(#:r35:)" clip-rule="evenodd" fill-rule="evenodd"></path><defs><linearGradient id=":r35:" x1="12" y1="2" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a><a aria-label="Chat with us on Telegram" href="https://t.me/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12ZM12.43 8.85893c-1.1672.48547-3.49986 1.49027-6.99811 3.01437-.56806.2259-.86563.4469-.89272.663-.04578.3652.41154.509 1.0343.7048.08471.0267.17248.0543.26247.0835.6127.1992 1.43689.4322 1.86535.4414.38865.0084.82244-.1518 1.30135-.4807 3.26856-2.2063 4.95576-3.32149 5.06166-3.34553.0747-.01696.1783-.03829.2485.02408.0701.06235.0632.18045.0558.21215-.0453.1931-1.8405 1.8621-2.7695 2.7258-.2896.2692-.495.4602-.537.5038-.0941.0977-.19.1902-.2821.279-.5692.5487-.99609.9602.0236 1.6322.49.3229.8822.5899 1.2733.8563.4273.291.8534.5812 1.4047.9426.1405.092.2746.1877.4053.2808.4972.3545.9438.6729 1.4957.6221.3206-.0295.6519-.331.8201-1.2302.3975-2.1253 1.1789-6.7299 1.3595-8.62743.0158-.16624-.0041-.379-.02-.4724-.016-.09339-.0494-.22646-.1708-.32497-.1438-.11666-.3658-.14126-.465-.13952-.4514.00795-1.1438.24874-4.4764 1.63485Z" fill="url(#:r36:)" clip-rule="evenodd" fill-rule="evenodd"></path><defs><linearGradient id=":r36:" x1="12" y1="2" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a><a aria-label="Find us on LinkedIn" href="https://www.linkedin.com/company/laconic-network/" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M3e-7 2.00509C3e-7 1.47331.21125.963308.587278.58728.963305.211253 1.47331.00000267 2.00509.00000267H21.9927c.2636-.00043042.5246.05112313.7682.15170933.2436.100586.4649.248229.6514.434476.1864.186247.3343.40744.4352.650912.1008.24348.1526.50446.1525.76799V21.9927c.0003.2636-.0514.5247-.1521.7683-.1007.2436-.2485.4649-.4348.6513-.1863.1865-.4076.3343-.6511.4352-.2436.1008-.5046.1526-.7682.1525H2.00509c-.2634 0-.52423-.0519-.76757-.1527-.243336-.1009-.464424-.2487-.650628-.435-.186204-.1863-.333875-.4074-.434576-.6508-.1007015-.2434-.15245901-.5043-.1523157-.7677V2.00509ZM9.49964 9.15055h3.24986v1.63195C13.2185 9.84437 14.4185 9 16.2218 9c3.4571 0 4.2764 1.8687 4.2764 5.2975v6.3512h-3.4986v-5.5702c0-1.9527-.4691-3.0545-1.6603-3.0545-1.6528 0-2.34 1.188-2.34 3.0545v5.5702H9.49964V9.15055Zm-6 11.34875h3.49963V9H3.49964v11.4993ZM7.5 5.24946c.0066.29964-.04672.59758-.15683.87634s-.27479.53271-.48437.74696c-.20959.21426-.45986.38449-.73612.5007-.27627.11622-.57296.17609-.87268.17609s-.59641-.05987-.87268-.17609c-.27626-.11621-.52653-.28644-.73612-.5007-.20958-.21425-.37426-.4682-.48437-.74696C3.04672 5.84704 2.9934 5.5491 3 5.24946c.01295-.58816.25569-1.14787.67624-1.55925.42054-.41139.98546-.64175 1.57376-.64175s1.15322.23036 1.57376.64175c.42055.41138.66329.97109.67624 1.55925Z" fill="currentColor" clip-rule="evenodd" fill-rule="evenodd"></path></svg></a><a aria-label="Visit our Facebook page" href="https://www.facebook.com/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M24 12c0-6.62742-5.3726-12-12-12C5.37258 0 0 5.37258 0 12c0 5.9895 4.3882 10.954 10.125 11.8542v-8.3855H7.07812V12H10.125V9.35625c0-3.0075 1.7916-4.66875 4.5326-4.66875 1.3125 0 2.6862.23437 2.6862.23437V7.875h-1.5132c-1.4906 0-1.9556.92508-1.9556 1.875V12h3.3281l-.532 3.4687H13.875v8.3855C19.6118 22.954 24 17.9895 24 12Z" fill="url(#:r37:)" clip-rule="evenodd" fill-rule="evenodd"></path><defs><linearGradient id=":r37:" x1="12" y1="2" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a><a aria-label="Follow us on Instagram" href="https://instagram.com/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M12 2.16094c3.2063 0 3.5859.01406 4.8469.07031 1.1719.05156 1.8047.24844 2.2265.4125.5579.21563.961.47813 1.3782.89531.4218.42188.6797.82032.8953 1.37813.164.42187.3609 1.05937.4125 2.22656.0562 1.26562.0703 1.64531.0703 4.84685 0 3.2063-.0141 3.586-.0703 4.8469-.0516 1.1719-.2485 1.8047-.4125 2.2266-.2156.5578-.4782.9609-.8953 1.3781-.4219.4219-.8203.6797-1.3782.8953-.4218.1641-1.0593.3609-2.2265.4125-1.2656.0562-1.6453.0703-4.8469.0703-3.20625 0-3.58594-.0141-4.84687-.0703-1.17188-.0516-1.80469-.2484-2.22657-.4125-.55781-.2156-.96093-.4781-1.37812-.8953-.42188-.4219-.67969-.8203-.89531-1.3781-.16407-.4219-.36094-1.0594-.4125-2.2266-.05625-1.2656-.07032-1.6453-.07032-4.8469 0-3.20622.01407-3.58591.07032-4.84685.05156-1.17188.24843-1.80469.4125-2.22656.21562-.55781.47812-.96094.89531-1.37813.42187-.42187.82031-.67968 1.37812-.89531.42188-.16406 1.05938-.36094 2.22657-.4125C8.41406 2.175 8.79375 2.16094 12 2.16094ZM12 0C8.74219 0 8.33438.0140625 7.05469.0703125 5.77969.126563 4.90313.332812 4.14375.628125 3.35156.9375 2.68125 1.34531 2.01563 2.01562 1.34531 2.68125.9375 3.35156.628125 4.13906.332812 4.90313.126563 5.775.0703125 7.05.0140625 8.33437 0 8.74219 0 12c0 3.2578.0140625 3.6656.0703125 4.9453.0562505 1.275.2624995 2.1516.5578125 2.911.309375.7921.717185 1.4625 1.387505 2.1281.66562.6656 1.33593 1.0781 2.12343 1.3828.76407.2953 1.63594.5015 2.91094.5578 1.27969.0562 1.6875.0703 4.9453.0703 3.2578 0 3.6656-.0141 4.9453-.0703 1.275-.0563 2.1516-.2625 2.911-.5578.7875-.3047 1.4578-.7172 2.1234-1.3828.6656-.6656 1.0781-1.336 1.3828-2.1235.2953-.764.5016-1.6359.5578-2.9109.0563-1.2797.0703-1.6875.0703-4.9453 0-3.25782-.014-3.66564-.0703-4.94532-.0562-1.275-.2625-2.15157-.5578-2.91094-.2953-.79688-.7031-1.46719-1.3734-2.13282C21.3188 1.35 20.6484.9375 19.8609.632812 19.0969.3375 18.225.13125 16.95.075 15.6656.0140625 15.2578 0 12 0Z" fill="url(#:r38:)"></path><path d="M12 5.83594c-3.40312 0-6.16406 2.76094-6.16406 6.16406 0 3.4031 2.76094 6.1641 6.16406 6.1641 3.4031 0 6.1641-2.761 6.1641-6.1641 0-3.40312-2.761-6.16406-6.1641-6.16406Zm0 10.16246c-2.20781 0-3.99844-1.7906-3.99844-3.9984 0-2.20781 1.79063-3.99844 3.99844-3.99844 2.2078 0 3.9984 1.79063 3.9984 3.99844 0 2.2078-1.7906 3.9984-3.9984 3.9984Z" fill="url(#:r38:)"></path><path d="M19.8469 5.59238c0 .79688-.6469 1.43907-1.4391 1.43907-.7969 0-1.439-.64688-1.439-1.43907 0-.79687.6468-1.43906 1.439-1.43906s1.4391.64688 1.4391 1.43906Z" fill="url(#:r38:)"></path><defs><linearGradient id=":r38:" x1="12" y1="2" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a></div><div>Laconic: Offshore Hosting Made Easy</div></div></div></div><a id="nav-button" aria-label="Toggle mobile menu" href="#" class="nav_mobile-button w-inline-block"><div data-is-ix2-target="1" class="nav_burger" data-w-id="fbd3c3c8-569b-7ba4-52f1-12d65e5c9f29" data-animation-type="lottie" data-src="../images/laconic-20menu.json" data-loop="0" data-direction="1" data-autoplay="0" data-renderer="svg" data-duration="0" data-ix2-initial-state="0"></div></a><a href="https://github.com/cerc-io/stack-orchestrator" target="_blank" class="button nav w-button">GET STARTED</a></nav></header><main class="main"><section class="section_blog-post-hero"><div class="padding-global"><div class="container-large"><div class="blog-hero_component"><h1 class="heading-style-h2">Intro to the Laconic Stack</h1><div class="blog_byline"><div>1.18.2023</div><div>-</div><div class="blog_author"><div>BY — </div><div>Zach Ramsay</div></div></div><div class="blog_categories hero"><div class="blog_category-chip"><div>Developers</div></div><div class="blog_category-chip w-condition-invisible"><div>Insights</div></div><div class="blog_category-chip w-condition-invisible"><div>Product</div></div><div class="blog_category-chip w-condition-invisible"><div>News</div></div><div class="blog_category-chip w-condition-invisible"><div>Partners</div></div></div></div></div></div></section><section class="section_blog-post"><div class="padding-global"><div class="container-large"><div class="blog-post_image-container"><img src="../images/stack-diagram2.png" loading="lazy" alt="" sizes="(max-width: 479px) 93vw, (max-width: 991px) 94vw, 68vw" srcset="../images/stack-diagram2-p-500.png 500w, ../images/stack-diagram2-p-800.png 800w, ../images/stack-diagram2-p-1080.png 1080w, ../images/stack-diagram2.png 1356w" class="blog-post_image"/></div></div><div class="container-medium"><div class="blog-post_component"><div class="blog-post_container"><div class="blog-post_rich-text w-richtext"><p>Heres the main problem: reading data from the Ethereum blockchains is either cheap and sloppy or expensive and correct. As a result, Dapp developers have come to rely on inexpensive centralized services that do not provide evidence to verify the correctness of the data they are serving to Dapps.</p><p>Not only is it expensive to get verifiable data but it can also be challenging to parse out the subset of data you really need. In the early days of SQL, you had to be proficient at the command line in order to use the product, and so use was limited to those that had that specialized capability.</p><p>Eventually, GUIs were built such that anyone with basic computer skills could use drop-down menus and create database schemas without writing a single line of code. Web3 is still in the early days of SQL, it is not easy onboarding new users and developers who are otherwise quite capable with the latest Web2 technologies.<br/><br/>Right now, theres all this data on Ethereum and as a Dapp developer, you only want a tiny fraction of it. But, to verify that fraction, you have to (among several other things) maintain an archive node - this is prohibitively expensive for the majority of developers. To solve this problem, centralized services such as (Infura, The Graph, and Alchemy) have popped up and currently account for the majority (if not most) of Dapp queries to Ethereum.</p><p>Laconic was created to address these and several other problems in the blockchain ecosystem. Not only does Laconic make it easy to get verifiable data - quickly and cheaply - it also provides a framework for data transformation and aggregation that are difficult or impossible to do in other systems.<br/><br/>Architecting a solution to this requires many moving pieces; these have been developed by core Ethereum &amp; Cosmos contributors over the past 5 years. In this post, we will walk you through the various components of the Laconic Stack.</p><p>There are three different ways to participate in the Laconic Network: Member Validators, Service Providers, and Dapp Developers. To describe the responsibilities and benefits of each role, we must first start grounded in the technicalities of the Laconic Stack.</p><p>Refer back to the diagram at the top of this page. It intentionally leaves out several repositories (e.g., codecs, utilities, rpc shims). This is done for simplicity reasons and anyone diving deep into the stack will discover them.<br/><br/>The two repositories at the top are also the main entry points for most developers. `<a target="_blank" href="https://github.com/cerc-io/stack-orchestrator">stack-orchestrator</a>` is a command-line tool for, well, orchestrating the stack. It uses docker-compose to deploy a specified collection of networked docker containers, thereby eliminating the need to set up a variety of services independently. Every user of the Laconic Stack will at some point - if not regularly - use the stack orchestrator.</p><p>The `<a target="_blank" href="https://github.com/cerc-io/watcher-ts">watchers-ts</a>` repo contains the core watcher generator codebase. Watchers are TypeScript that is generated from one or more Solidity smart contracts. Dapp Developers can participate in the Laconic Network by either 1) writing a custom watcher for their Dapp or 2) writing a generally useful watcher and publishing it to the Laconic Registry, thus earning a fee every time it is used. Well come back to Watchers later.</p><p>Down at the bottom left is the `<a target="_blank" href="https://github.com/cerc-io/laconicd">laconicd</a>` repository and it is indeed the “bottom” of the stack. It is built from the Cosmos SDK and has custom modules specific to operating the Laconic Network (e.g., fork of Ethermint/Evmos, auction, nameservice). It is likely that in the future there will be a public testnet, however, because the Laconic Network is a permissioned validator set, only Member Validators that have officially joined the Laconic Network will be included in the mainnet. Just because the validator set is permissioned does not prohibit anyone from running a full node and Service Providers or others may choose to do so for a variety of reasons.</p><p>The `<a target="_blank" href="https://github.com/cerc-io/laconic-sdk">laconic-sdk</a>` is a library for facilitating talking to `laconicd`. Both the `<a target="_blank" href="https://github.com/cerc-io/laconic-registry-cli">laconic-registry-cli</a>` and the `<a target="_blank" href="https://github.com/cerc-io/laconic-console">laconic-console</a>` use it. While `laconic-registry-cli` is a command-line tool for doing so, the `laconic-console` is a user interface for writing and reading records on the Laconic Network. These general-purpose tools are useful for a wide variety of use cases across the stack.</p><p>A key goal of the Laconic Network is to provide accurate, verifiable data from the Ethereum blockchain. Comparisons to currently available solutions are for another post, however, no service currently exists to provide inexpensive evidence that the data being served is correct. The Laconic solution (one of) to this is in something called “statediffing”, a part of the stack run by Member Validators and, likely by Service Providers.</p><p>It starts with a maintained fork of `<a target="_blank" href="https://github.com/cerc-io/go-ethereum">go-ethereum (geth)</a>` that has an added real-time state-diffing service. Statediffing gives a clear picture of the state between any given blockheights. This allows Laconic to minimize the amount of computation required for providing proofs. Three additional “helper” services perform different tasks required to get a full picture of the state as required by an application. Together, these comprise the Full Index Node (FIN).</p><p>The `<a target="_blank" href="https://github.com/cerc-io/eth-statediff-service">eth-statediff-service</a>` provides historical state data, while the `<a target="_blank" href="https://github.com/cerc-io/eth-statediff-fill-service">eth-statediff-fill-service</a>` uses the historical state data to fill statediff gaps as required. Finally, the `<a target="_blank" href="https://github.com/cerc-io/ipld-eth-state-snapshot">ipld-eth-state-snapshot</a>` loads a complete state at a certain blockheight, which helps to bootstrap the system. </p><p><br/>There is more to be written about statediffing, however, whats important to note here is that each service is writing independently to `<a target="_blank" href="https://github.com/cerc-io/ipld-eth-db">ipld-eth-db</a>`. The latter serves as a bucket for state data that has been indexed in IPLD. Rather than querying this database directly, the `<a target="_blank" href="https://github.com/cerc-io/ipld-eth-server">ipld-eth-server</a>` provides an API layer for Watchers to easily query relevant pieces of data from the Ethereum state. Additionally, `ipld-eth-server` recapitulates the native Ethereum JSON RPC interfaces on top of the `ipld-eth-db` database.</p><p>And so weve come full circle back to the Watchers. As previously mentioned, they are generated from one or more Solidity smart contracts and configured to query specific pieces of data relevant to a Dapp. Watchers make it easy to query the data you need from Ethereum <em>and</em> - along the way - get evidence in order to generate proofs that your data is correct. This is in contrast to currently available solutions for Dapp developers, who must currently rely on centralized providers that dont provide evidence to generate proofs.</p><p>Web3 is (still!) in its early days, and like the early days of SQL, Dapp developers need advanced knowledge of complex data structures to build their Dapp. Watchers simplify this by exposing a GraphQL endpoint, a solution familiar to an order of magnitude more developers than querying the Ethereum blockchain directly.</p><p>Laconic is building a suite of tools to address core problems in Web3. Today, weve provided an overview of the main components of the Laconic Stack. Developers interested in Laconic should start with `<a target="_blank" href="https://github.com/cerc-io/stack-orchestrator">stack-orchestrator</a>` to get a sense of running different parts of the stack, then check out `<a target="_blank" href="https://github.com/cerc-io/watcher-ts">watcher-ts</a>` to experiment with different watchers and progress to making their own.</p></div></div></div></div></div></section><section class="section_share"><div class="padding-global"><div class="container-medium"><div class="share_component"><p class="share_header">Share This Article</p><div class="share_button-container"><div class="w-embed"><a class="share_button" target="_blank" href="https://twitter.com/intent/tweet?url=https://www.laconic.com/blog/intro-to-the-laconic-stack">
<svg class="share_button-icon" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M7.55016 21.3548c9.05434 0 14.00814-7.4471 14.00814-13.9033 0-.20936-.0047-.42337-.0141-.63273.9637-.69168 1.7953-1.54843 2.4558-2.52999-.8975.39631-1.8504.65515-2.8261.76765 1.0274-.61122 1.7966-1.57142 2.1652-2.7026-.9665.56851-2.0235.96954-3.1257 1.18591-.7426-.78315-1.7244-1.30169-2.7937-1.47544-1.0693-.17376-2.1665.00695-3.122.51417-.9554.50722-1.7159 1.31271-2.1639 2.29194-.4479.97922-.5584 2.07764-.3143 3.12543-1.95701-.09747-3.87156-.60206-5.61952-1.48104-1.74795-.87898-3.29029-2.11274-4.52701-3.62129-.62857 1.07562-.820913 2.34843-.53794 3.55975C1.418 7.66457 2.15506 8.7235 3.19641 9.41483c-.78178-.02463-1.54643-.23354-2.230785-.60947v.06048c-.0007 1.12879.392475 2.22296 1.112685 3.09656.72021.8736 1.72301 1.4727 2.83794 1.6955-.72419.1966-1.48427.2253-2.22141.0837.31461.9708.92673 1.8198 1.75093 2.4287.8242.6088 1.81935.9471 2.84657.9676-1.74392 1.3596-3.89817 2.0971-6.11578 2.0936C.783287 19.2309.390399 19.2069 0 19.1598c2.25286 1.4345 4.87353 2.1964 7.55016 2.195Z" fill="url(#:r2c:)"></path><defs><linearGradient id=":r2c:" x1="12" y1="2" x2="12" y2="21.3548" gradientUnits="userSpaceOnUse"><stop stop-color="var(--theme--color-white)"></stop><stop offset="1" stop-color="var(--theme--color-white)"></stop></linearGradient></defs></svg>
</a></div><div class="w-embed"><a class="share_button" target="_blank" href="https://reddit.com/submit?url=https://www.laconic.com/intro-to-the-laconic-stack">
<svg class="share_button-icon" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12Zm-5.7544-1.7544C19.214 10.2456 20 11.0316 20 12c0 .7158-.4351 1.3333-1.0105 1.614.0281.1684.0421.3369.0421.5193 0 2.6947-3.1298 4.8702-7.0035 4.8702-3.87371 0-7.00353-2.1755-7.00353-4.8702 0-.1824.01403-.3649.0421-.5333-.61754-.2807-1.03859-.8842-1.03859-1.6 0-.9684.78596-1.7544 1.75438-1.7544.46316 0 .89825.1965 1.20702.4912 1.20702-.88419 2.87719-1.43156 4.74382-1.4877l.8843-4.18246c.028-.08421.0701-.15438.1403-.19649.0702-.0421.1544-.05614.2386-.0421l2.9053.61754c.1965-.42105.6175-.70175 1.1087-.70175.6878 0 1.2492.5614 1.2492 1.24912s-.5614 1.24912-1.2492 1.24912c-.6736 0-1.221-.53333-1.2491-1.19298l-2.5965-.54737-.8 3.74737c1.8246.07018 3.4807.63158 4.6737 1.4877.3088-.3088.7298-.4912 1.207-.4912ZM9.24913 12c-.68772 0-1.24912.5614-1.24912 1.2491 0 .6877.5614 1.2491 1.24912 1.2491s1.24917-.5614 1.24917-1.2491c0-.6877-.56145-1.2491-1.24917-1.2491Zm2.76487 5.4596c.4772 0 2.1053-.0561 2.9614-.9123.1264-.1263.1264-.3228.0281-.4631-.1263-.1263-.3368-.1263-.4631 0-.5474.5333-1.6843.7298-2.5123.7298-.8281 0-1.979-.1965-2.5123-.7298-.12632-.1263-.33685-.1263-.46316 0-.12632.1263-.12632.3368 0 .4631.8421.8422 2.48416.9123 2.96136.9123Zm1.4878-4.2105c0 .6877.5614 1.2491 1.2491 1.2491.6877 0 1.2491-.5614 1.2491-1.2491C16 12.5614 15.4386 12 14.7509 12c-.6877 0-1.2491.5614-1.2491 1.2491Z" fill="url(#:r2d:)"></path><defs><linearGradient id=":r2d:" x1="12" y1="0" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="var(--theme--color-white)"></stop><stop offset="1" stop-color="var(--theme--color-white)"></stop></linearGradient></defs></svg>
</a></div><div class="w-embed"><a class="share_button" target="_blank" href="https://discord.com/invite/ukhbBemyxY">
<svg class="share_button-icon" viewBox="0 0 33 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M27.936 2.155A26.571 26.571 0 0 0 21.219.002a.1.1 0 0 0-.108.053c-.29.533-.611 1.229-.837 1.775a24.314 24.314 0 0 0-7.544 0 18.232 18.232 0 0 0-.85-1.775.105.105 0 0 0-.107-.053 26.497 26.497 0 0 0-6.717 2.153.097.097 0 0 0-.044.04C.733 8.8-.438 15.245.136 21.61c.003.03.02.06.043.08 2.823 2.142 5.557 3.443 8.24 4.305a.105.105 0 0 0 .116-.039c.635-.896 1.2-1.84 1.686-2.834a.11.11 0 0 0-.057-.15 17.773 17.773 0 0 1-2.574-1.269.111.111 0 0 1-.01-.181c.172-.134.345-.274.51-.414a.1.1 0 0 1 .107-.015c5.4 2.549 11.248 2.549 16.585 0a.099.099 0 0 1 .108.013c.165.141.338.282.512.416a.111.111 0 0 1-.01.181c-.821.497-1.676.916-2.575 1.267a.11.11 0 0 0-.055.152 22.854 22.854 0 0 0 1.684 2.833.103.103 0 0 0 .116.04c2.696-.862 5.43-2.163 8.253-4.305a.11.11 0 0 0 .043-.079c.688-7.358-1.153-13.75-4.88-19.415a.085.085 0 0 0-.042-.04Zm-16.909 15.58c-1.625 0-2.965-1.543-2.965-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.991 1.556 2.965 3.438 0 1.895-1.314 3.438-2.966 3.438Zm10.966 0c-1.626 0-2.966-1.543-2.966-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.992 1.556 2.966 3.438 0 1.895-1.301 3.438-2.966 3.438Z" fill="var(--theme--color-white)"></path></svg>
</a></div><div class="w-embed"><a class="share_button" target="_blank" href="https://t.me/share/url?url=https://www.laconic.com/blog/intro-to-the-laconic-stack">
<svg class="share_button-icon" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12ZM12.43 8.85893c-1.1672.48547-3.49986 1.49027-6.99811 3.01437-.56806.2259-.86563.4469-.89272.663-.04578.3652.41154.509 1.0343.7048.08471.0267.17248.0543.26247.0835.6127.1992 1.43689.4322 1.86535.4414.38865.0084.82244-.1518 1.30135-.4807 3.26856-2.2063 4.95576-3.32149 5.06166-3.34553.0747-.01696.1783-.03829.2485.02408.0701.06235.0632.18045.0558.21215-.0453.1931-1.8405 1.8621-2.7695 2.7258-.2896.2692-.495.4602-.537.5038-.0941.0977-.19.1902-.2821.279-.5692.5487-.99609.9602.0236 1.6322.49.3229.8822.5899 1.2733.8563.4273.291.8534.5812 1.4047.9426.1405.092.2746.1877.4053.2808.4972.3545.9438.6729 1.4957.6221.3206-.0295.6519-.331.8201-1.2302.3975-2.1253 1.1789-6.7299 1.3595-8.62743.0158-.16624-.0041-.379-.02-.4724-.016-.09339-.0494-.22646-.1708-.32497-.1438-.11666-.3658-.14126-.465-.13952-.4514.00795-1.1438.24874-4.4764 1.63485Z" fill="url(#:r2e:)" fill-rule="evenodd"></path><defs><linearGradient id=":r2e:" x1="12" y1="0" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="var(--theme--color-white)"></stop><stop offset="1" stop-color="var(--theme--color-white)"></stop></linearGradient></defs></svg>
</a></div><div class="w-embed"><a class="share_button" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://www.laconic.com/blog/intro-to-the-laconic-stack">
<svg class="share_button-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 12c0-6.62742-5.3726-12-12-12C5.37258 0 0 5.37258 0 12c0 5.9895 4.3882 10.954 10.125 11.8542v-8.3855H7.07812V12H10.125V9.35625c0-3.0075 1.7916-4.66875 4.5326-4.66875 1.3125 0 2.6862.23437 2.6862.23437V7.875h-1.5132c-1.4906 0-1.9556.92508-1.9556 1.875V12h3.3281l-.532 3.4687H13.875v8.3855C19.6118 22.954 24 17.9895 24 12Z" fill="url(#:r2f:)"></path><defs><linearGradient id=":r2f:" x1="12" y1="0" x2="12" y2="23.8542" gradientUnits="userSpaceOnUse"><stop stop-color="var(--theme--color-white)"></stop><stop offset="1" stop-color="var(--theme--color-white)"></stop></linearGradient></defs></svg>
</a></div></div><div class="share_button-icon"></div></div></div></div></section><section class="section_related-posts"><div class="padding-global"><div class="container-large"><div class="related-posts_component"><h2 class="hazy">Recent Articles</h2><div class="blog_collection-list-wrapper w-dyn-list"><div role="list" class="blog_grid w-dyn-items"><div role="listitem" class="blog_card w-dyn-item"><div class="blog_card-container"><div class="blog_card-header"><div class="blog_categories"><div class="blog_category-chip"><div>Developers</div></div><div class="blog_category-chip w-condition-invisible"><div>Insights</div></div><div class="blog_category-chip w-condition-invisible"><div>Product</div></div><div class="blog_category-chip w-condition-invisible"><div>News</div></div><div class="blog_category-chip w-condition-invisible"><div>Partners</div></div></div><div class="blog_publish-date">8.20.2024</div></div><div class="blog_card-image-container"><img src="../images/og.webp" loading="lazy" alt="" sizes="(max-width: 479px) 100vw, (max-width: 991px) 94vw, 67vw" srcset="../images/og-p-500.webp 500w, ../images/og-p-800.webp 800w, ../images/og-p-1080.webp 1080w, ../images/og.webp 1200w" class="blog_card-image"/></div><div class="blog_card-content"><h2 class="blog_card-title">LORO Testnet Stage 1 is Live</h2><a href="/blog/stage1-live" class="blog_link w-inline-block"><div class="blog_link-text">Read Article</div><svg fill="none" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg" class="blog_link-icon"><path d="M1.455 10.557.427 9.53l7.648-7.662H2.167L2.181.443h8.347v8.36H9.091l.013-5.907-7.649 7.661Z" fill="var(--theme--color-white)"></path></svg></a></div></div></div><div role="listitem" class="blog_card w-dyn-item"><div class="blog_card-container"><div class="blog_card-header"><div class="blog_categories"><div class="blog_category-chip"><div>Developers</div></div><div class="blog_category-chip w-condition-invisible"><div>Insights</div></div><div class="blog_category-chip w-condition-invisible"><div>Product</div></div><div class="blog_category-chip w-condition-invisible"><div>News</div></div><div class="blog_category-chip w-condition-invisible"><div>Partners</div></div></div><div class="blog_publish-date">8.12.2024</div></div><div class="blog_card-image-container"><img src="../images/deep-dive-testnet.webp" loading="lazy" alt="" sizes="(max-width: 479px) 100vw, (max-width: 991px) 94vw, 67vw" srcset="../images/deep-dive-testnet-p-500.webp 500w, ../images/deep-dive-testnet-p-800.webp 800w, ../images/deep-dive-testnet-p-1080.webp 1080w, ../images/deep-dive-testnet.webp 1440w" class="blog_card-image"/></div><div class="blog_card-content"><h2 class="blog_card-title">How to Register for the Laconic Incentivized Testnet</h2><a href="/blog/testnet-update" class="blog_link w-inline-block"><div class="blog_link-text">Read Article</div><svg fill="none" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg" class="blog_link-icon"><path d="M1.455 10.557.427 9.53l7.648-7.662H2.167L2.181.443h8.347v8.36H9.091l.013-5.907-7.649 7.661Z" fill="var(--theme--color-white)"></path></svg></a></div></div></div><div role="listitem" class="blog_card w-dyn-item"><div class="blog_card-container"><div class="blog_card-header"><div class="blog_categories"><div class="blog_category-chip"><div>Developers</div></div><div class="blog_category-chip w-condition-invisible"><div>Insights</div></div><div class="blog_category-chip w-condition-invisible"><div>Product</div></div><div class="blog_category-chip w-condition-invisible"><div>News</div></div><div class="blog_category-chip w-condition-invisible"><div>Partners</div></div></div><div class="blog_publish-date">7.24.2024</div></div><div class="blog_card-image-container"><img src="../images/chain-minimalism.webp" loading="lazy" alt="" sizes="(max-width: 479px) 100vw, (max-width: 991px) 94vw, 67vw" srcset="../images/chain-minimalism-p-500.webp 500w, ../images/chain-minimalism-p-800.webp 800w, ../images/chain-minimalism.webp 966w" class="blog_card-image"/></div><div class="blog_card-content"><h2 class="blog_card-title">A Return to Chain Minimalism</h2><a href="/blog/chain-minimalism" class="blog_link w-inline-block"><div class="blog_link-text">Read Article</div><svg fill="none" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg" class="blog_link-icon"><path d="M1.455 10.557.427 9.53l7.648-7.662H2.167L2.181.443h8.347v8.36H9.091l.013-5.907-7.649 7.661Z" fill="var(--theme--color-white)"></path></svg></a></div></div></div></div></div></div></div></div></section></main><footer class="footer"><div class="padding-global"><div class="container-large"><div class="footer_container"><a aria-label="Go to Homepage" href="/" class="w-inline-block"><svg fill="none" viewBox="0 0 305 70" xmlns="http://www.w3.org/2000/svg" class="footer_logo"><path d="M0 68.656h29.794v-8.834H9.96V1.35H0v67.306ZM69.388 1.35H52.873L35.61 68.656H45.9l4.316-16.826h21.33l4.315 16.826H86.65L69.388 1.35ZM52.292 43.416l8.631-34.83h.332l8.3 34.83H52.291ZM118.076 27.427h11.619C129.695 8.245 123.636 0 109.528 0 94.672 0 88.282 10.432 88.282 34.915c0 24.567 6.39 35.084 21.246 35.084 14.108 0 20.167-7.993 20.25-26.586h-11.619c-.083 14.555-1.826 18.173-8.631 18.173-7.802 0-9.71-5.3-9.627-26.67 0-21.286 1.908-26.587 9.627-26.503 6.805 0 8.548 3.786 8.548 19.014ZM158.069 0c15.105.085 21.578 10.601 21.578 35s-6.473 34.915-21.578 35c-15.188.084-21.661-10.433-21.661-35s6.473-35.084 21.661-35Zm-10.042 35c0 21.286 1.992 26.586 10.042 26.586 7.967 0 9.959-5.3 9.959-26.586 0-21.37-1.992-26.67-9.959-26.586-8.05.084-10.042 5.384-10.042 26.586ZM198.74 68.572l-9.959.084V1.35h17.511l16.35 54.855h.166V1.35h9.959v67.306h-16.432L198.906 9.595h-.166v58.977ZM254.391 1.35h-9.959v67.306h9.959V1.35ZM293.298 27.427h11.619C304.917 8.245 298.859 0 284.75 0c-14.856 0-21.246 10.432-21.246 34.915 0 24.567 6.39 35.084 21.246 35.084 14.109 0 20.167-7.993 20.25-26.586h-11.619c-.083 14.555-1.826 18.173-8.631 18.173-7.801 0-9.71-5.3-9.627-26.67 0-21.286 1.909-26.587 9.627-26.503 6.805 0 8.548 3.786 8.548 19.014Z" fill="var(--theme--color-white)"></path></svg></a><nav class="footer_menu"><a href="/products" class="footer_link primary">Products</a><a href="/partners" class="footer_link primary">Partners</a><a href="/community" class="footer_link primary">Community</a><div class="footer_social-container"><div class="footer_header">Connect</div><div class="footer_social-links tablet"><a aria-label="Visit our Twitter" href="https://twitter.com/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M7.55016 21.3548c9.05434 0 14.00814-7.4471 14.00814-13.9033 0-.20936-.0047-.42337-.0141-.63273.9637-.69168 1.7953-1.54843 2.4558-2.52999-.8975.39631-1.8504.65515-2.8261.76765 1.0274-.61122 1.7966-1.57142 2.1652-2.7026-.9665.56851-2.0235.96954-3.1257 1.18591-.7426-.78315-1.7244-1.30169-2.7937-1.47544-1.0693-.17376-2.1665.00695-3.122.51417-.9554.50722-1.7159 1.31271-2.1639 2.29194-.4479.97922-.5584 2.07764-.3143 3.12543-1.95701-.09747-3.87156-.60206-5.61952-1.48104-1.74795-.87898-3.29029-2.11274-4.52701-3.62129-.62857 1.07562-.820913 2.34843-.53794 3.55975C1.418 7.66457 2.15506 8.7235 3.19641 9.41483c-.78178-.02463-1.54643-.23354-2.230785-.60947v.06048c-.0007 1.12879.392475 2.22296 1.112685 3.09656.72021.8736 1.72301 1.4727 2.83794 1.6955-.72419.1966-1.48427.2253-2.22141.0837.31461.9708.92673 1.8198 1.75093 2.4287.8242.6088 1.81935.9471 2.84657.9676-1.74392 1.3596-3.89817 2.0971-6.11578 2.0936C.783287 19.2309.390399 19.2069 0 19.1598c2.25286 1.4345 4.87353 2.1964 7.55016 2.195Z" fill="url(#:r12:)"></path><defs><linearGradient id=":r12:" x1="12" y1="2" x2="12" y2="21.3548" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a><a aria-label="Join our Discord" href="https://discord.com/invite/ukhbBemyxY" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33 26" class="footer_social-icon"><path d="M27.936 2.155A26.571 26.571 0 0 0 21.219.002a.1.1 0 0 0-.108.053c-.29.533-.611 1.229-.837 1.775a24.314 24.314 0 0 0-7.544 0 18.232 18.232 0 0 0-.85-1.775.105.105 0 0 0-.107-.053 26.497 26.497 0 0 0-6.717 2.153.097.097 0 0 0-.044.04C.733 8.8-.438 15.245.136 21.61c.003.03.02.06.043.08 2.823 2.142 5.557 3.443 8.24 4.305a.105.105 0 0 0 .116-.039c.635-.896 1.2-1.84 1.686-2.834a.11.11 0 0 0-.057-.15 17.773 17.773 0 0 1-2.574-1.269.111.111 0 0 1-.01-.181c.172-.134.345-.274.51-.414a.1.1 0 0 1 .107-.015c5.4 2.549 11.248 2.549 16.585 0a.099.099 0 0 1 .108.013c.165.141.338.282.512.416a.111.111 0 0 1-.01.181c-.821.497-1.676.916-2.575 1.267a.11.11 0 0 0-.055.152 22.854 22.854 0 0 0 1.684 2.833.103.103 0 0 0 .116.04c2.696-.862 5.43-2.163 8.253-4.305a.11.11 0 0 0 .043-.079c.688-7.358-1.153-13.75-4.88-19.415a.085.085 0 0 0-.042-.04Zm-16.909 15.58c-1.625 0-2.965-1.543-2.965-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.991 1.556 2.965 3.438 0 1.895-1.314 3.438-2.966 3.438Zm10.966 0c-1.626 0-2.966-1.543-2.966-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.992 1.556 2.966 3.438 0 1.895-1.301 3.438-2.966 3.438Z" fill="currentColor"></path></svg></a><a aria-label="Visit our Youtube Channel" href="https://www.youtube.com/@Laconic-Network" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" class="footer_social-icon"><path d="M 15 4 C 10.814 4 5.3808594 5.0488281 5.3808594 5.0488281 L 5.3671875 5.0644531 C 3.4606632 5.3693645 2 7.0076245 2 9 L 2 15 L 2 15.001953 L 2 21 L 2 21.001953 A 4 4 0 0 0 5.3769531 24.945312 L 5.3808594 24.951172 C 5.3808594 24.951172 10.814 26.001953 15 26.001953 C 19.186 26.001953 24.619141 24.951172 24.619141 24.951172 L 24.621094 24.949219 A 4 4 0 0 0 28 21.001953 L 28 21 L 28 15.001953 L 28 15 L 28 9 A 4 4 0 0 0 24.623047 5.0546875 L 24.619141 5.0488281 C 24.619141 5.0488281 19.186 4 15 4 z M 12 10.398438 L 20 15 L 12 19.601562 L 12 10.398438 z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></a><a aria-label="Chat with us on Telegram" href="https://t.me/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12ZM12.43 8.85893c-1.1672.48547-3.49986 1.49027-6.99811 3.01437-.56806.2259-.86563.4469-.89272.663-.04578.3652.41154.509 1.0343.7048.08471.0267.17248.0543.26247.0835.6127.1992 1.43689.4322 1.86535.4414.38865.0084.82244-.1518 1.30135-.4807 3.26856-2.2063 4.95576-3.32149 5.06166-3.34553.0747-.01696.1783-.03829.2485.02408.0701.06235.0632.18045.0558.21215-.0453.1931-1.8405 1.8621-2.7695 2.7258-.2896.2692-.495.4602-.537.5038-.0941.0977-.19.1902-.2821.279-.5692.5487-.99609.9602.0236 1.6322.49.3229.8822.5899 1.2733.8563.4273.291.8534.5812 1.4047.9426.1405.092.2746.1877.4053.2808.4972.3545.9438.6729 1.4957.6221.3206-.0295.6519-.331.8201-1.2302.3975-2.1253 1.1789-6.7299 1.3595-8.62743.0158-.16624-.0041-.379-.02-.4724-.016-.09339-.0494-.22646-.1708-.32497-.1438-.11666-.3658-.14126-.465-.13952-.4514.00795-1.1438.24874-4.4764 1.63485Z" fill="url(#:r13:)" clip-rule="evenodd" fill-rule="evenodd"></path><defs><linearGradient id=":r13:" x1="12" y1="2" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a></div></div></nav></div><nav class="footer_subfooter"><p class="legal">Laconic: Offshore Hosting Made Easy</p><div class="footer_subfooter-links"><a href="/privacy-policy" class="footer_link">Privacy Policy</a><div class="theme-toggle_wrapper"><div id="toggle-label" class="footer_toggle-label">Dark Mode</div><a id="theme-toggle" aria-label="Toggle dark and light theme" href="#" class="footer_toggle w-inline-block"><div class="footer_toggle-circle"></div></a></div></div><div class="footer_social-links phone"><a aria-label="Follow us on Twitter" href="https://twitter.com/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M7.55016 21.3548c9.05434 0 14.00814-7.4471 14.00814-13.9033 0-.20936-.0047-.42337-.0141-.63273.9637-.69168 1.7953-1.54843 2.4558-2.52999-.8975.39631-1.8504.65515-2.8261.76765 1.0274-.61122 1.7966-1.57142 2.1652-2.7026-.9665.56851-2.0235.96954-3.1257 1.18591-.7426-.78315-1.7244-1.30169-2.7937-1.47544-1.0693-.17376-2.1665.00695-3.122.51417-.9554.50722-1.7159 1.31271-2.1639 2.29194-.4479.97922-.5584 2.07764-.3143 3.12543-1.95701-.09747-3.87156-.60206-5.61952-1.48104-1.74795-.87898-3.29029-2.11274-4.52701-3.62129-.62857 1.07562-.820913 2.34843-.53794 3.55975C1.418 7.66457 2.15506 8.7235 3.19641 9.41483c-.78178-.02463-1.54643-.23354-2.230785-.60947v.06048c-.0007 1.12879.392475 2.22296 1.112685 3.09656.72021.8736 1.72301 1.4727 2.83794 1.6955-.72419.1966-1.48427.2253-2.22141.0837.31461.9708.92673 1.8198 1.75093 2.4287.8242.6088 1.81935.9471 2.84657.9676-1.74392 1.3596-3.89817 2.0971-6.11578 2.0936C.783287 19.2309.390399 19.2069 0 19.1598c2.25286 1.4345 4.87353 2.1964 7.55016 2.195Z" fill="url(#:r24:)"></path><defs><linearGradient id=":r24:" x1="12" y1="2" x2="12" y2="21.3548" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a><a aria-label="Join us on Discord" href="https://discord.com/invite/ukhbBemyxY" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33 26" class="footer_social-icon"><path d="M27.936 2.155A26.571 26.571 0 0 0 21.219.002a.1.1 0 0 0-.108.053c-.29.533-.611 1.229-.837 1.775a24.314 24.314 0 0 0-7.544 0 18.232 18.232 0 0 0-.85-1.775.105.105 0 0 0-.107-.053 26.497 26.497 0 0 0-6.717 2.153.097.097 0 0 0-.044.04C.733 8.8-.438 15.245.136 21.61c.003.03.02.06.043.08 2.823 2.142 5.557 3.443 8.24 4.305a.105.105 0 0 0 .116-.039c.635-.896 1.2-1.84 1.686-2.834a.11.11 0 0 0-.057-.15 17.773 17.773 0 0 1-2.574-1.269.111.111 0 0 1-.01-.181c.172-.134.345-.274.51-.414a.1.1 0 0 1 .107-.015c5.4 2.549 11.248 2.549 16.585 0a.099.099 0 0 1 .108.013c.165.141.338.282.512.416a.111.111 0 0 1-.01.181c-.821.497-1.676.916-2.575 1.267a.11.11 0 0 0-.055.152 22.854 22.854 0 0 0 1.684 2.833.103.103 0 0 0 .116.04c2.696-.862 5.43-2.163 8.253-4.305a.11.11 0 0 0 .043-.079c.688-7.358-1.153-13.75-4.88-19.415a.085.085 0 0 0-.042-.04Zm-16.909 15.58c-1.625 0-2.965-1.543-2.965-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.991 1.556 2.965 3.438 0 1.895-1.314 3.438-2.966 3.438Zm10.966 0c-1.626 0-2.966-1.543-2.966-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.992 1.556 2.966 3.438 0 1.895-1.301 3.438-2.966 3.438Z" fill="currentColor"></path></svg></a><a aria-label="Check out our Youtube Channel" href="https://www.youtube.com/@Laconic-Network" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" class="footer_social-icon"><path d="M 15 4 C 10.814 4 5.3808594 5.0488281 5.3808594 5.0488281 L 5.3671875 5.0644531 C 3.4606632 5.3693645 2 7.0076245 2 9 L 2 15 L 2 15.001953 L 2 21 L 2 21.001953 A 4 4 0 0 0 5.3769531 24.945312 L 5.3808594 24.951172 C 5.3808594 24.951172 10.814 26.001953 15 26.001953 C 19.186 26.001953 24.619141 24.951172 24.619141 24.951172 L 24.621094 24.949219 A 4 4 0 0 0 28 21.001953 L 28 21 L 28 15.001953 L 28 15 L 28 9 A 4 4 0 0 0 24.623047 5.0546875 L 24.619141 5.0488281 C 24.619141 5.0488281 19.186 4 15 4 z M 12 10.398438 L 20 15 L 12 19.601562 L 12 10.398438 z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></a><a aria-label="Chat with us on Telegram" href="https://t.me/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12ZM12.43 8.85893c-1.1672.48547-3.49986 1.49027-6.99811 3.01437-.56806.2259-.86563.4469-.89272.663-.04578.3652.41154.509 1.0343.7048.08471.0267.17248.0543.26247.0835.6127.1992 1.43689.4322 1.86535.4414.38865.0084.82244-.1518 1.30135-.4807 3.26856-2.2063 4.95576-3.32149 5.06166-3.34553.0747-.01696.1783-.03829.2485.02408.0701.06235.0632.18045.0558.21215-.0453.1931-1.8405 1.8621-2.7695 2.7258-.2896.2692-.495.4602-.537.5038-.0941.0977-.19.1902-.2821.279-.5692.5487-.99609.9602.0236 1.6322.49.3229.8822.5899 1.2733.8563.4273.291.8534.5812 1.4047.9426.1405.092.2746.1877.4053.2808.4972.3545.9438.6729 1.4957.6221.3206-.0295.6519-.331.8201-1.2302.3975-2.1253 1.1789-6.7299 1.3595-8.62743.0158-.16624-.0041-.379-.02-.4724-.016-.09339-.0494-.22646-.1708-.32497-.1438-.11666-.3658-.14126-.465-.13952-.4514.00795-1.1438.24874-4.4764 1.63485Z" fill="url(#:r25:)" clip-rule="evenodd" fill-rule="evenodd"></path><defs><linearGradient id=":r25:" x1="12" y1="2" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a></div></nav></div></div></footer></div><script src="../js/jquery.js" type="text/javascript" ></script><script src="../js/webflow-script.js" type="text/javascript"></script><script>
const root = document.documentElement;
// Setup object to store all class and ID selectors
const setup = {
themeToggleButtons: document.querySelectorAll('#theme-toggle'),
lottiePaths: () => document.querySelectorAll('#nav-button svg path'),
toggleLabels: document.querySelectorAll('#toggle-label'),
themeColorVariable: '--theme--color-white'
};
// Update theme-dependant images
function updateImageSources() {
const images = document.querySelectorAll('img[data-src-dark]');
images.forEach(img => {
const currentTheme = root.getAttribute('data-theme');
const newSrc = currentTheme === 'dark' ? img.getAttribute('data-src-dark') : img.getAttribute('data-src-light');
img.setAttribute('src', newSrc);
});
}
// update theme dependant background images
function updateBackgroundImages() {
const elements = document.querySelectorAll('[data-bg-dark]');
elements.forEach(element => {
const currentTheme = root.getAttribute('data-theme');
const newBg = currentTheme === 'dark' ? element.getAttribute('data-bg-dark') : element.getAttribute('data-bg-light');
element.style.backgroundImage = `url(${newBg})`;
});
}
// Update lottie assets to match theme
function updateLottiePathColors() {
const paths = setup.lottiePaths();
if (paths.length > 0) {
paths.forEach(path => {
path.style.fill = `var(${setup.themeColorVariable})`;
});
}
}
function updateVideoVisibility() {
const darkVideo = document.querySelector('#background-video-dark');
const lightVideo = document.querySelector('#background-video-light');
if (darkVideo && lightVideo) {
const currentTheme = root.getAttribute('data-theme');
if (currentTheme === 'dark') {
darkVideo.style.display = 'block';
lightVideo.style.display = 'none';
} else {
darkVideo.style.display = 'none';
lightVideo.style.display = 'block';
}
} else {
console.log('No background video elements found on this page.');
}
}
// Theme toggle
function toggleTheme() {
const currentTheme = root.getAttribute('data-theme');
if (currentTheme === 'dark') {
root.setAttribute('data-theme', 'light');
localStorage.setItem('theme', 'light');
setup.toggleLabels.forEach(label => label.textContent = 'Light Mode');
} else {
root.setAttribute('data-theme', 'dark');
localStorage.setItem('theme', 'dark');
setup.toggleLabels.forEach(label => label.textContent = 'Dark Mode');
}
updateImageSources(); // Update images when the theme is toggled
updateLottiePathColors(); // Update Lottie colors when the theme is toggled
updateVideoVisibility() // Update background videos when theme is toggled
updateBackgroundImages(); // For background image swap
}
// Initialize the theme
function initializeTheme() {
const storedTheme = localStorage.getItem('theme');
// Set the initial theme
if (storedTheme) {
root.setAttribute('data-theme', storedTheme);
setup.toggleLabels.forEach(label => {
label.textContent = storedTheme === 'dark' ? 'Dark Mode' : 'Light Mode';
});
console.log(`Theme set to: ${storedTheme}`);
} else {
root.setAttribute('data-theme', 'dark');
setup.toggleLabels.forEach(label => label.textContent = 'Dark Mode');
console.log('Theme set to: dark');
}
updateImageSources();
updateLottiePathColors();
updateVideoVisibility()
updateBackgroundImages(); // For background image swap
}
// When page content is loaded
document.addEventListener('DOMContentLoaded', () => {
// Initialize the theme
initializeTheme();
// Add event listener to all theme toggle buttons
setup.themeToggleButtons.forEach(button => {
button.addEventListener('click', toggleTheme);
});
// Ensure Lottie path colors and image sources are updated on page load
window.addEventListener('load', () => {
updateLottiePathColors();
updateImageSources();
updateVideoVisibility()
});
});
</script></body></html>