Kamino
Solana' s Borrowing, Lending, Market Making, and Leverage venue. Earn yield on SOL, USDC, JUP, JLP, JitoSOL, and more
function a(p){if(p==null)return"/";p=""+p;if(""===p)return"/";return"/"===p.charAt(0)?p:"/"+p}
function u(p){if(p==null)return p;p=""+p;if(!p||p.charAt(p.length-1)==="/")return p.slice(0,-1);return p}
function i(p){if(p==null)return p;p=""+p;if(6<=p.length&&p.substring(p.length-6)==="/index")return p.substring(0,p.length-6);if("index"===p)return"";return p}
var p=(location.pathname||"").split("?")[0].split("#")[0]||"";
if(b)if(p===b)p="";else if(0===p.indexOf(b+"/"))p=p.substring(b.length);
p=a(p);p=u(p);p=i(p);p=""===p||"index"===p?"/":a(p);
document.documentElement.setAttribute("data-current-path",p);
}();(function(a,b){try{let c=document.getElementById("banner")?.innerText;if(c){for(let d=0;d<localStorage.length;d++){let e=localStorage.key(d);if(e?.endsWith(a)&&localStorage.getItem(e)===c)return void document.documentElement.setAttribute(b,"hidden")}document.documentElement.setAttribute(b,"visible");return}for(let c=0;c<localStorage.length;c++){let d=localStorage.key(c);if(d?.endsWith(a)&&localStorage.getItem(d))return void document.documentElement.setAttribute(b,"hidden")}document.documentElement.setAttribute(b,"visible")}catch(a){document.documentElement.setAttribute(b,"hidden")}})(
"bannerDismissed",
"data-banner-state",
){"@context":"https://schema.org","@type":"WebSite","name":"Kamino Docs","creator":{"@type":"Organization","name":"Mintlify","url":"https://mintlify.com"}}((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","isDarkMode","light",null,["dark","light","true","false","system"],{"true":"dark","false":"light","dark":"dark","light":"light"},true,false)Documentation IndexFetch the complete documentation index at: /llms.txtUse this file to discover all available pages before exploring further.:root{--banner-height:0px!important}(self.__next_s=self.__next_s||[]).push([0,{"children":"(function g(a,b,c,d,e){try{let f,g,h=[];try{h=window.location.pathname.split("/").filter(a=\u003e""!==a\u0026\u0026"global"!==a).slice(0,2)}catch{h=[]}let i=h.find(a=\u003ec.includes(a)),j=[];for(let c of(i?j.push(i):j.push(b),j.push("global"),j)){if(!c)continue;let b=a[c];if(b?.content){f=b.content,g=c;break}}if(!f)return void document.documentElement.setAttribute(d,"hidden");let k=!0,l=0;for(;l\u003clocalStorage.length;){let a=localStorage.key(l);if(l++,!a?.endsWith(e))continue;let b=localStorage.getItem(a);if(b\u0026\u0026b===f){k=!1;break}g\u0026\u0026(a.startsWith(lang:${g}_)||!a.startsWith("lang:"))\u0026\u0026(localStorage.removeItem(a),l--)}document.documentElement.setAttribute(d,k?"visible":"hidden")}catch(a){console.error(a),document.documentElement.setAttribute(d,"hidden")}})(\n {},\n "en",\n [],\n "data-banner-state",\n "bannerDismissed",\n)","id":"_mintlify-banner-script"}]):root {
--primary: 8 42 86;
--primary-light: 190 227 254;
--primary-dark: 8 42 86;
--tooltip-foreground: 255 255 255;
--background-light: 255 255 255;
--background-dark: 13 13 16;
--gray-50: 243 244 245;
--gray-100: 238 239 240;
--gray-200: 222 223 225;
--gray-300: 206 207 208;
--gray-400: 158 159 161;
--gray-500: 112 113 114;
--gray-600: 80 81 82;
--gray-700: 62 63 65;
--gray-800: 37 38 39;
--gray-900: 23 24 25;
--gray-950: 10 11 12;
}
(function() {
function loadKatex() {
const link = document.querySelector('link[href="https://d4tuoctqmanu0.cloudfront.net/katex.min.css"]');
if (link) link.rel = 'stylesheet';
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', loadKatex);
} else {
loadKatex();
}
})();
(self.__next_s=self.__next_s||[]).push([0,{"suppressHydrationWarning":true,"children":"(function(a,b,c,d){var e;let f,g="mint"===d||"linden"===d?"sidebar":"sidebar-content",h=(e=d,f="navbar-transition","maple"===e\u0026\u0026(f+="-maple"),f),[i,j]=(()=\u003e{switch(d){case"almond":return["[--scroll-mt:2.5rem]","[--scroll-mt:2.5rem]"];case"luma":return["lg:[--scroll-mt:6rem]","lg:[--scroll-mt:6rem]"];case"sequoia":return["lg:[--scroll-mt:8.5rem]","lg:[--scroll-mt:11rem]"];default:return["lg:[--scroll-mt:9.5rem]","lg:[--scroll-mt:12rem]"]}})();function k(){document.documentElement.classList.add(i)}let l=document.documentElement.getAttribute("data-banner-state"),m=null!=l?"visible"===l:b;function n(a){let b=m?calc(${a-2.5}rem + var(--banner-height, 2.5rem)):${a}rem;document.getElementById(g)?.style.setProperty("top",b)}function o(a){let b=m?calc(100vh - ${a-2.5}rem - var(--banner-height, 2.5rem)):calc(100vh - ${a}rem);document.getElementById(g)?.style.setProperty("height",b)}function p(a,b){!a\u0026\u0026b||a\u0026\u0026!b?(k(),document.documentElement.classList.remove(j)):a\u0026\u0026b\u0026\u0026(document.documentElement.classList.add(j),document.documentElement.classList.remove(i))}switch(d){case"mint":n(c),p(a,m);break;case"palm":case"aspen":case"sequoia":n(c),o(c),p(a,m);break;case"luma":k();break;case"linden":n(c),m\u0026\u0026k();break;case"almond":k(),n(c),o(c)}let q=function(){let a=document.createElement("style");return a.appendChild(document.createTextNode(",::before,::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(a),function(){window.getComputedStyle(document.body),setTimeout(()=\u003e{document.head.removeChild(a)},1)}}();("requestAnimationFrame"in globalThis?requestAnimationFrame:setTimeout)(()=\u003e{let a;a=!1,a=window.scrollY\u003e50,document.getElementById(h)?.setAttribute("data-is-opaque",${!!a}),q()})})(\n true,\n false,\n (function l(a,b,c){let d=document.documentElement.getAttribute("data-banner-state"),e=2.5!!(null!=d?"visible"===d:b),f=3*!!a,g=4,h=e+g+f;switch(c){case"mint":case"palm":break;case"aspen":f=2.5*!!a,g=3.5,h=e+f+g;break;case"luma":g=3,h=e+g;break;case"linden":g=4,h=e+g;break;case"almond":g=3.5,h=e+g;break;case"sequoia":f=3*!!a,g=3,h=e+g+f}return h})(true, false, "mint"),\n "mint",\n)","id":"_mintlify-scroll-top-script"}])Skip to main content(function g(a,b,c,d){try{if(window.matchMedia("(max-width: 1024px)").matches||!d){document.documentElement.style.setProperty(c,"0px"),document.documentElement.setAttribute("data-assistant-state","closed"),d||localStorage.setItem(a,"false");return}let e=localStorage.getItem(a);if(null===e){document.documentElement.style.setProperty(c,"0px"),document.documentElement.setAttribute("data-assistant-state","closed");return}let f=JSON.parse(e),g=localStorage.getItem(b),h=null!==g?JSON.parse(g):368;document.documentElement.style.setProperty(c,f?h+"px":"0px"),document.documentElement.setAttribute("data-assistant-state",f?"open":"closed")}catch(a){document.documentElement.style.setProperty(c,"0px"),document.documentElement.setAttribute("data-assistant-state","closed")}})(
"chat-assistant-sheet-open",
"chat-assistant-sheet-width",
"--assistant-sheet-width",
true
)Kamino Docs home pageDocsSearch...⌘KAsk AssistantSupportOpen AppOpen AppSearch...NavigationOverviewProductsLearnSecurityRiskSafeguardsKMNOResources(function () {
try {
if (window.__mintlifyInitialSidebarScrollDone) return;
window.__mintlifyInitialSidebarScrollDone = true;
var path = (window.location.pathname || '/').split('#')[0].split('?')[0];
if (path.endsWith('/index')) path = path.slice(0, -6);
else if (path === 'index') path = '';
var candidates = [];
if (path) candidates.push(path);
if (path.startsWith('/')) candidates.push(path.slice(1));
else candidates.push('/' + path);
var item = null;
for (var i = 0; i < candidates.length && !item; i++) {
var matches = document.querySelectorAll('[id="' + candidates[i].replace(/"/g, '\\"') + '"]');
for (var j = 0; j < matches.length; j++) {
if (matches[j].closest('#sidebar, #sidebar-content')) {
item = matches[j];
break;
}
}
}
if (!item) return;
var parent = item.parentElement;
while (parent) {
var style = getComputedStyle(parent);
if (style.overflowY === 'auto' || style.overflowY === 'scroll') break;
parent = parent.parentElement;
}
if (!parent) return;
var parentRect = parent.getBoundingClientRect();
var itemRect = item.getBoundingClientRect();
if (itemRect.top >= parentRect.top && itemRect.bottom <= parentRect.bottom) return;
var itemTopRelative = itemRect.top - parentRect.top + parent.scrollTop;
parent.scrollTop = itemTopRelative - parentRect.height / 2 + itemRect.height / 2;
} catch (e) {}
})();document.documentElement.setAttribute('data-page-mode', "custom");(self.__next_s=self.__next_s||[]).push([0,{"suppressHydrationWarning":true,"children":"(function m(a,b,c){if(!document.getElementById("footer")?.classList.contains("advanced-footer")||"maple"===b||"willow"===b||"almond"===b||"luma"===b||"sequoia"===b)return;let d=document.documentElement.getAttribute("data-banner-state"),e=null!=d?"visible"===d:c,f=document.documentElement.getAttribute("data-page-mode"),g=document.getElementById("navbar"),h=document.getElementById("navigation-items"),i=document.getElementById("sidebar"),j=document.getElementById("footer"),k=document.getElementById("table-of-contents-content"),l=document.getElementById("banner"),m=e?l?.offsetHeight??40:0,n=(e?a-2.5:a)16+m;if(!j||"center"===f)return;let o=j.getBoundingClientRect().top,p=window.innerHeight-o,q=(h?.clientHeight??0)+n+32("mint"===b||"linden"===b);if(i\u0026\u0026h)if(p\u003e0){let a=Math.max(0,q-o);i.style.bottom=${p}px,i.style.top=${n-a}px}else i.style.bottom="",i.style.top=e?calc(${a-2.5}rem + var(--banner-height, 2.5rem)):${a}rem,i.style.height="auto";k\u0026\u0026g\u0026\u0026(p\u003e0?k.style.top="custom"===f?${g.clientHeight-p}px:${40+g.clientHeight-p}px:k.style.top="")})(\n (function l(a,b,c){let d=document.documentElement.getAttribute("data-banner-state"),e=2.5*!!(null!=d?"visible"===d:b),f=3*!!a,g=4,h=e+g+f;switch(c){case"mint":case"palm":break;case"aspen":f=2.5*!!a,g=3.5,h=e+f+g;break;case"luma":g=3,h=e+g;break;case"linden":g=4,h=e+g;break;case"almond":g=3.5,h=e+g;break;case"sequoia":f=3*!!a,g=3,h=e+g+f}return h})(true, false, "mint"),\n "mint",\n false,\n)","id":"_mintlify-footer-and-sidebar-scroll-script"}])@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap');
:root { --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; --background-dark: #091326; }
html, body { font-family: var(--font-body) !important; }
html.dark body .dark:bg-background-dark{ background-color: #091326 !important; }
/* Curator logo light/dark mode switching */ .curator-logo .logo-dark { display: none; }
.curator-logo .logo-light { display: inline-block; }
html.dark .curator-logo .logo-light { display: none; }
html.dark .curator-logo .logo-dark { display: inline-block; }
/* Target specific elements that need Inter font */ p, h1, h2, h3, h4, h5, h6, span:not(.shiki *), div:not(.code-block *), .prose, .prose p, .prose h1, .prose h2, .prose h3, .prose h4, .prose h5, .prose h6, nav, header, footer, aside, section, article { font-family: var(--font-body) !important; }
/* GitHub example link */ #github-example-link { font-size: 14px; margin-left: 6px; } #github-example-link svg{ margin-right: 5px; }
/* Additional Resources heading */ h2.flex.whitespace-pre-wrap.group.font-semibold#additional-resources { margin-top: 2rem !important; }
/* First H2 on a page (sits directly under the frontmatter title) — reduce the Tailwind Typography 2em default to a tighter 1em. */ .prose h2.flex.whitespace-pre-wrap.group.font-semibold:first-of-type { margin-top: 1em !important; }
.mint-mt-12.tools { margin-top: 0rem; }
/* Callout fit-content width */ .callout { width: fit-content !important; }
/* Make callout strong tags inherit color instead of black */ [data-component-part="callout-content"] strong { color: inherit !important; }
/* Make inline inside callouts inherit color and font-size. The light-mode ".prose code" rule above is (0,3,1) specificity, so we add ".prose" here to beat it at (0,4,1). Dark mode handled symmetrically. */ :root:not(.dark) .prose [data-component-part="callout-content"] code, .dark .prose [data-component-part="callout-content"] code, [data-component-part="callout-content"] code { color: inherit !important; font-size: inherit !important; }
/* Key Data Structures section width constraint */ .constrain-data-structures .tabs.tabs.tab-container .code-block { max-width: 65% !important; }
.constrain-data-structures-borrow .tabs.tabs.tab-container .code-block { max-width: 75% !important; }
/* Welcome page width rules removed - was causing mobile layout issues */
/* Exempt brand page sections from width constraint */ #brand-page .w-full { width: 100% !important; }
/* Brand page cards keep light backgrounds in both modes (no dark: variant on
the card bg), so gray text inside those cards must stay dark in dark mode
or it gets washed out (e.g., hex codes on a #FCFCFC card). Mintlify
prefixes Tailwind utilities with mint-, so the actual class names are
.mint-text-gray-*. Scoped to #brand-page so the rest of the site's dark
mode is untouched. */
html.dark #brand-page .mint-text-gray-900 { color: #111827 !important; }
html.dark #brand-page .mint-text-gray-700 { color: #374151 !important; }
html.dark #brand-page .mint-text-gray-600 { color: #4B5563 !important; }
/* Inline on the light-bg brand cards: Mintlify's dark-mode :not(pre)>code rule paints text near-white and adds a faint white background, washing out the hex codes. Restore light-mode colors. */ html.dark #brand-page :not(pre) > code { color: #111827 !important; background-color: rgb(243 244 246 / 0.5) !important; border-color: transparent !important; }
/* Brand page copy buttons: in dark mode Mintlify's FontAwesome icons (rendered via background-color) default light, washing out on light-bg cards. Force dark. Dark-bg card icons use !bg-white explicitly, so they're unaffected. / html.dark #brand-page button:not([class="bg-gray-800"]) svg, html.dark #brand-page button:not([class*="bg-gray-800"]) [class*="fa-"] { background-color: #374151 !important; color: #374151 !important; fill: #374151 !important; }
/* Cards Styling */ .card { border: 1px solid #E6EAEE; text-align: left; min-height: 160px; box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.1); transition: ease-in-out 0.2s; }
/* Knowledge Base Cards - Specific styling */ #knowledge-base-cards .card { min-height: 80px; }
#knowledge-base-cards svg { color: #082A56 !important; fill: #082A56 !important; }
.dark #knowledge-base-cards svg { color: #BEE3FE !important; fill: #BEE3FE !important; }
.integration-guides .card { height: 100%; display: flex; flex-direction: column; justify-content: space-between; }
.tools .card .text-base { font-size: 0.85rem; }
.card h2 { text-align: left; }
/* Optional: tweak spacing on smaller screens */ @media (max-width: 765px) { .integration-guides .card { height: auto; margin: 0 auto; } }
/* Hover only on clickable cards (those rendered as links) */ a.card:hover { border-color: #3E56C0; box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.1); transform: translateY(-2px); transition: ease-in-out 0.2s; }
.dark a.card:hover { border-color: #BEE3FE; box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.1); transform: translateY(-2px); transition: ease-in-out 0.2s; }
/* Primary Button */ .btn-primary { background: #082A56; box-sizing: border-box; color: white; padding: 8px 16px; border-radius: 12px; text-decoration: none; font-weight: 600; font-size: 14px; }
.btn-primary:hover { opacity: 0.9; }
.dark .btn-primary { background: #082A56; color: white; }
.dark .btn-primary:hover { opacity: 0.9; }
/* Sidebar */ #sidebar-title { font-size: 14px; font-weight: 600; }
/* Header at top of page - margin needed to move it down */ #header { margin-bottom: 1rem; }
/* Page divider */ .page-divider { border-bottom: 1px solid rgba(229, 231, 235, 0.3); margin-bottom: 2rem; }
/* Shiki code block styles - have not touched anything from here down */ :root { --shiki-light: #24292f; --shiki-light-bg: #ffffff; --shiki-dark: #e6edf3; --shiki-dark-bg: #0d1117; }
.constrained-width { max-width: 700px !important; }
.constrained-width .mdx-content { max-width: 700px !important; margin: 0 auto !important; }
.mt-8 { margin-top: 0 !important; }
[data-current-page="/earn"] .px-5.lg:pr-10.lg:pl-[5.5rem] { padding-left: 2.75rem !important; }
.code-block, .shiki { /* background-color: #ffffff !important; */ color: #24292f !important; padding: 8px !important; border-radius: 8px !important; border: 1px solid #d1d9e0 !important; }
.code-block.bg-transparent, .shiki.bg-transparent, .code-block.dark:bg-transparent, .shiki.dark:bg-transparent { background-color: #ffffff !important; border: 1px solid #d1d9e0 !important; }
.code-block *, .shiki * { border: none !important; }
.dark .code-block, .dark .shiki { background-color: #0d1117 !important; color: #e6edf3 !important; border: 1px solid #30363d !important; }
.dark .code-block.bg-transparent, .dark .shiki.bg-transparent, .dark .code-block.dark:bg-transparent, .dark .shiki.dark:bg-transparent { background-color: #0d1117 !important; border: 1px solid #30363d !important; }
.dark .code-block *, .dark .shiki * { border: none !important; }
.code-group .code-block, .code-group .shiki { border: none !important; }
.dark .code-group .code-block, .dark .code-group .shiki { border: none !important; }
.dark:bg-codeblock:is(.dark *) { background-color: #0d1117 !important; }
.code-block span, .shiki span { opacity: 1 !important; }
.dark .code-block *, .dark .shiki * { color: #e6edf3 !important; opacity: 1 !important; }
/* Aave-style code blocks - light mode only */ :root:not(.dark) .code-block { border: none !important; }
:root:not(.dark) .code-block .rounded-2xl { background: #fcfbfb !important; border: none !important; }
:root:not(.dark) .prose pre { background: #fcfbfb !important; border: none !important; border-radius: 8px !important; padding: 1rem !important; margin: 1rem 0 !important; overflow-x: auto; font-family: 'Monaco', 'Consolas', 'Courier New', monospace !important; font-size: 14px !important; line-height: 1.5 !important; }
:root:not(.dark) .prose code { font-family: 'Monaco', 'Consolas', 'Courier New', monospace !important; font-size: 14px; background: transparent !important; padding: 0 !important; color: #334155 !important; }
:root:not(.dark) .prose pre code { color: #00827C !important; font-weight: 400 !important; }
/* JetBrains Mono font stack for light mode code blocks like Aave */ :root:not(.dark) .code-block .font-mono, :root:not(.dark) .code-block pre, :root:not(.dark) .code-block code { font-family: var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; line-height: 1.4 !important; font-weight: 400 !important; }
/* Override black text with medium gray for light mode / :root:not(.dark) .shiki span[style="color: rgb(31, 35, 40)"] { color: rgb(99, 97, 97) !important; /* Medium gray for default black text */ }
:root:not(.dark) .shiki span[style*="color: rgb(149, 56, 0)"] { color: rgb(99, 97, 97) !important; /* Medium gray for parameters */ }
:root:not(.dark) .shiki span[style*="color: rgb(10, 48, 105)"] { color: #00827C !important; /* Teal for package strings */ }
:root:not(.dark) .shiki span[style*="color: rgb(207, 34, 46)"] { color: #d1521b !important; /* Lighter red for keywords like const, await */ }
:root:not(.dark) .shiki span[style*="color: rgb(130, 80, 223)"] { color: #6a68da !important; /* Purple for functions */ }
:root:not(.dark) .shiki span[style*="color: rgb(5, 80, 174)"] { color: #636161 !important; /* Gray for variables */ }
:root:not(.dark) .shiki span[style*="color: rgb(110, 119, 129)"] { color: #6a7580 !important; /* Blue-gray for comments */ }
.code-block .absolute.top-3.right-4 .bg-primary-dark, .shiki .absolute.top-3.right-4 .bg-primary-dark { display: none !important; }
.code-block .bg-white { /* background-color: #ffffff !important; */ background-color: #fcfbfb; }
/* Override shiki pre background in light mode */ :root:not(.dark) [data-component-part="code-block-root"], :root:not(.dark) .code-block pre.shiki, :root:not(.dark) .shiki { background-color: #fcfbfb !important; }
.mdx-content[data-page-title="Getting Started"], .mdx-content[data-page-title="Kamino Earn Vaults: Deposit, Balance, Withdraw — Step‑by‑Step"] { margin-top: 0 !important; }
.container .search-input-container { display: flex; justify-content: center; margin-bottom: 2rem; }
.category-buttons { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.category-button { display: inline-flex !important; align-items: center !important; gap: 6px !important; padding: 6px 12px !important; background-color: #f8f9fa !important; border: 2px solid #d1d9e0 !important; border-radius: 6px !important; font-size: 13px !important; font-weight: 500 !important; }
.dark .category-button { background-color: #21262d !important; border-color: #30363d !important; }
.contributing-section { text-align: center; }
.contributing-section p { font-size: 18px; margin-bottom: 1.5rem; }
/* Multi-level sidebar navigation indentation / / Sub-group items (L2) */ #navigation-items ul ul a.group, #navigation-items ul ul li > a, #navigation-items ul ul li > button { margin-left: 1.75rem !important; padding-left: 1rem !important; }
/* Sub-sub-group items (L3) */ #navigation-items li[data-group-tag] li[data-group-tag] > ul > li > a, #navigation-items li[data-group-tag] li[data-group-tag] > ul > li > button { margin-left: 2.75rem !important; padding-left: 1rem !important; }
/* Vertical tree connectors for nested items */ #navigation-items ul ul { position: relative; }
#navigation-items ul ul::before { content: ''; position: absolute; left: 1.55rem; top: 0; bottom: 0; width: 1px; background: rgba(148, 163, 184, 0.32); pointer-events: none; }
/* Level 3 vertical line - offset to avoid overlapping with L2 line */ #navigation-items ul ul ul::before { left: 2.55rem; }
/* Sidebar page icons: baseline 0.8rem, scale by 1.1 on hover/selected. Mintlify uses Tailwind's size-4 shorthand on sidebar icons, plus the older h-4 w-4 pair in some places — match both. */ #navigation-items svg.size-4, #navigation-items svg.h-4.w-4 { width: 0.8rem !important; height: 0.8rem !important; transition: transform 75ms ease-in-out, background-color 75ms ease-in-out; transform: scale(1); }
/* Fix alignment for navigation buttons - override items-start */ #navigation-items button.group.flex.items-start, #navigation-items a.group.flex.items-start { align-items: center !important; }
/* Fix alignment for expandable parent items */ #navigation-items button.group svg.size-4, #navigation-items button.group svg.h-4.w-4 { align-self: center !important; position: relative !important; top: 0 !important; }
/* Hover: subtle scale up */ #navigation-items a.group:hover svg.size-4, #navigation-items a.group:hover svg.h-4.w-4, #navigation-items button.group:hover svg.size-4, #navigation-items button.group:hover svg.h-4.w-4 { transform: scale(1.1); }
/* Selected page: keep the icon at the expanded scale and switch to the brand color */ #navigation-items a[aria-current="page"] svg.size-4, #navigation-items a[aria-current="page"] svg.h-4.w-4, #navigation-items li[data-active="true"] > a svg.size-4, #navigation-items li[data-active="true"] > a svg.h-4.w-4 { background-color: #082A56 !important; transform: scale(1.1); }
.dark #navigation-items a[aria-current="page"] svg.size-4, .dark #navigation-items a[aria-current="page"] svg.h-4.w-4, .dark #navigation-items li[data-active="true"] > a svg.size-4, .dark #navigation-items li[data-active="true"] > a svg.h-4.w-4 { background-color: #BEE3FE !important; transform: scale(1.1); }
/* Expanded parent groups: keep the icon in expanded state too */ #navigation-items button[aria-expanded="true"] svg.size-4, #navigation-items button[aria-expanded="true"] svg.h-4.w-4, #navigation-items button[data-active="true"] svg.size-4, #navigation-items button[data-active="true"] svg.h-4.w-4 { background-color: #082A56 !important; transform: scale(1.1); }
.dark #navigation-items button[aria-expanded="true"] svg.size-4, .dark #navigation-items button[aria-expanded="true"] svg.h-4.w-4, .dark #navigation-items button[data-active="true"] svg.size-4, .dark #navigation-items button[data-active="true"] svg.h-4.w-4 { background-color: #BEE3FE !important; transform: scale(1.1); }
/* Sidebar group headers: ALL CAPS, small, muted - no icons */ .sidebar-group-heading, .sidebar-group-header span, .sidebar-group-header > span:first-of-type { text-transform: uppercase !important; font-size: 0.65rem !important; font-weight: 500 !important; letter-spacing: 0.08em !important; color: #8b95a5 !important; }
.dark .sidebar-group-heading, .dark .sidebar-group-header span, .dark .sidebar-group-header > span:first-of-type { color: #6b7280 !important; }
.sidebar-group-header svg.sidebar-group-icon { color: #082A56 !important; transition: all 0.3s ease-in-out; }
.sidebar-group-header:hover svg.sidebar-group-icon { transform: scale(1.1); color: #082A56 !important; }
.dark .sidebar-group-header:hover svg.sidebar-group-icon { transform: scale(1.1); color: #BEE3FE !important; }
.dark .sidebar-group-header svg.sidebar-group-icon { color: #BEE3FE !important; }
[data-current-page="/earn"] .tabs .code-block { margin-top: 0.625rem !important; }
h2#earn-vaults.flex.whitespace-pre-wrap.group.font-semibold { margin-top: 0rem !important; }
h2#curated-vaults.flex.whitespace-pre-wrap.group.font-semibold { margin-top: 0rem !important; }
[data-current-page="/earn"] .tabs ul[data-component-part="tabs-list"] { margin-bottom: 0.75rem !important; }
[data-page-title="Earn Vaults"] .prose > :is(div:has(> table), table) { overflow-x: auto; display: block; }
[data-page-title="Earn Vaults"] table { border-collapse: separate; border-spacing: 0; width: 100%; border-radius: 12px; min-width: 600px; }
[data-page-title="Earn Vaults"] table thead th { background: #fff; border-bottom: 1px solid #e4e8ed; font-weight: 400; color: #201D1D; padding: 16px; text-align: left; font-size: 14px; }
[data-page-title="Earn Vaults"] table tbody tr { border-bottom: 1px solid #e4e8ed; }
[data-page-title="Earn Vaults"] table tbody tr:nth-child(even) { background: #fcfcfd; }
[data-page-title="Earn Vaults"] table tbody td { padding: 16px; color: #8F8E8E; font-weight: 400; vertical-align: top; font-size: 14px; border-bottom: 1px solid #e4e8ed; }
[data-page-title="Earn Vaults"] table tbody td:first-child { font-weight: 500; color: #1a1a1a; white-space: nowrap; }
[data-page-title="Earn Vaults"] table tbody td:nth-child(2) { max-width: 300px; }
[data-page-title="Earn Vaults"] table tbody td:nth-child(2) code, [data-page-title="Earn Vaults"] table tbody td:nth-child(3) code { font-size: 11px; }
.dark [data-page-title="Earn Vaults"] table thead th { background: transparent; border-bottom: 1px solid rgba(48, 54, 61, 0.3); color: #e6edf3; }
.dark [data-page-title="Earn Vaults"] table tbody tr { border-bottom: 1px solid rgba(48, 54, 61, 0.3); }
.dark [data-page-title="Earn Vaults"] table tbody td { border-bottom: 1px solid rgba(48, 54, 61, 0.3); color: #8b949e; }
.dark [data-page-title="Earn Vaults"] table tbody tr:nth-child(even) { background: transparent; }
.dark [data-page-title="Earn Vaults"] table tbody td:first-child { font-weight: 500; color: #e6edf3; }
.prose a.github-link { cursor: pointer; display: flex; align-items: center; gap: 6px; font-size: 12px; text-decoration: none !important; border-bottom: none !important; }
[data-page-title="Earn Vaults"] .prose a.github-link:hover { opacity: 0.8; }
[data-page-title="Earn Vaults"] .prose a svg { pointer-events: all; }
.earn-hero-image { position: relative; display: inline-block; width: 100%; max-width: 700px; height: auto; margin: 0; }
.earn-hero-image img { width: 100%; height: auto; object-fit: contain; border-radius: 8px; }
@media (max-width: 768px) { .earn-hero-image { height: auto; max-width: 100%; } }
@media (max-width: 480px) { .earn-hero-image { height: auto; margin: 0 0 1.5rem 0; } }
.dark .code-block, .dark .code-block .dark:bg-codeblock { background-color: #0d1117 !important; }
.code-block, .shiki { --shiki-light: #24292f !important; --shiki-light-bg: #ffffff !important; }
.dark .code-block, .dark .shiki { --shiki-dark: #e6edf3 !important; --shiki-dark-bg: #0d1117 !important; }
/* Add top padding to expandable content so text doesn't sit flush against the border */ .expandable-content { padding-top: 0.75rem !important; }
/* Code block width 50% for VaultAllocation */ .expandable .vault-allocation-code .code-block { max-width: 50% !important; }
.prose hr { margin-top: 0; margin-bottom: 1.5rem; }
/* Style h3 within Steps to match step title appearance */ .prose .step h3 { font-size: 1rem !important; line-height: 1.75 !important; font-weight: 600 !important; margin-top: .5rem !important; margin-bottom: 1.25em !important; }
/* Make chat assistant bar smaller */ #chat-assistant-textarea { height: 2rem !important; min-height: 2rem !important; max-height: 2rem !important; }
/* Hide background image on main docs index page ONLY in light mode */ :root:not(.dark) #docs-hero-section img[alt="Kamino Knowledge Base background"] { display: none !important; width: 0 !important; }
/* Remove dark background color on main docs index ONLY in light mode - set to white with grid */ :root:not(.dark) #docs-hero-section { background-color: white !important; }
/* Change hero text to dark gray/black on main docs index ONLY in light mode */ :root:not(.dark) #docs-hero-section .mint-text-white { color: rgb(17, 24, 39) !important; }
/* Earn hero section grid background ONLY in light mode */ :root:not(.dark) #earn-hero-section { background-color: white !important; }
/* :root:not(.dark) #earn-hero-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; background-image: url('/docs/images/bg-grid-light.png'); background-repeat: repeat; background-size: 500px; opacity: 0.3; pointer-events: none; z-index: 0; } */
/* Shared content container used by nav + page sections */ .k-container { width: 100%; max-width: 1400px; margin-left: auto; margin-right: auto; padding-left: 16px; padding-right: 16px; }
@media (min-width: 640px) { .k-container { padding-left: 24px; padding-right: 24px; } }
@media (min-width: 1024px) { .k-container { padding-left: 40px !important; padding-right: 32px !important; } }
@media (min-width: 1280px) { .k-container { padding-left: 40px !important; padding-right: 32px !important; } }
@media (min-width: 1440px) { .k-container { padding-left: 16px !important; padding-right: 16px !important; } }
/* Hero image sizing */ #hero-image { width: 85%; }
/* Earn page: style markdown h2 headings / #earn-page h2 { color: #111827; / gray-900 / font-weight: 700; font-size: 1.5rem; / 35% smaller than text-4xl */ line-height: 1.2; margin-top: 0; margin-bottom: 1rem; }
.dark #earn-page h2 { color: #f3f4f6; /* gray-100 */ }
@media (min-width: 1024px) { #earn-page h2 { font-size: 1.95rem; /* 35% smaller than text-5xl */ } }
/* Earn page: style markdown h3 headings in Technical Deep Dive */ #earn-page h3 { color: #111827; font-weight: 700; font-size: 1.5rem; line-height: 1.3; margin-top: 0; margin-bottom: 1.5rem; }
.dark #earn-page h3 { color: #f3f4f6; }
/* Remove margin-bottom from tab h3 elements */ #earn-page [role="tabpanel"] h3 { margin-bottom: 0 !important; display: flex; align-items: center; gap: 1rem; }
/* Add number badges to tab h3 titles */ #earn-page [role="tabpanel"]:nth-of-type(1) h3::before { content: "01"; display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: 0.5rem; background-color: rgb(219 234 254); color: rgb(59 130 246); font-weight: 700; font-size: 1.125rem; flex-shrink: 0; }
.dark #earn-page [role="tabpanel"]:nth-of-type(1) h3::before { background-color: rgb(30 58 138 / 0.3); color: rgb(96 165 250); }
#earn-page [role="tabpanel"]:nth-of-type(2) h3::before { content: "02"; display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: 0.5rem; background-color: rgb(219 234 254); color: rgb(59 130 246); font-weight: 700; font-size: 1.125rem; flex-shrink: 0; }
.dark #earn-page [role="tabpanel"]:nth-of-type(2) h3::before { background-color: rgb(30 58 138 / 0.3); color: rgb(96 165 250); }
#earn-page [role="tabpanel"]:nth-of-type(3) h3::before { content: "03"; display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: 0.5rem; background-color: rgb(219 234 254); color: rgb(59 130 246); font-weight: 700; font-size: 1.125rem; flex-shrink: 0; }
.dark #earn-page [role="tabpanel"]:nth-of-type(3) h3::before { background-color: rgb(30 58 138 / 0.3); color: rgb(96 165 250); }
#earn-page [role="tabpanel"]:nth-of-type(4) h3::before { content: "04"; display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: 0.5rem; background-color: rgb(219 234 254); color: rgb(59 130 246); font-weight: 700; font-size: 1.125rem; flex-shrink: 0; }
.dark #earn-page [role="tabpanel"]:nth-of-type(4) h3::before { background-color: rgb(30 58 138 / 0.3); color: rgb(96 165 250); }
/* Brand hero responsive K positioning */ .brand-hero { position: relative; }
.brand-hero__content { position: relative; z-index: 2; }
.brand-hero__k { position: absolute; top: 50%; right: clamp(120px, 20vw, 320px); transform: translateY(-50%); height: clamp(140px, 18vw, 240px); width: auto; pointer-events: none; z-index: 1; }
.brand-hero__k-svg { display: block; height: 100%; width: auto; }
@media (max-width: 1024px) { .brand-hero__k { display: none; } }
/* Fix white space below footer on brand page - stop wrapper from stretching */ body:has(#brand-page) .max-lg:contents.lg:flex-1.lg:min-w-0.lg:overflow-x-clip { align-self: flex-start !important; min-height: 0 !important; height: auto !important; }
/* Scope oracle types: shrink the summary table ~15%. These selectors outrank the global ".prose code" rule on specificity, so no !important is needed. */ :root:not(.dark) .prose .compact-table code, .dark .prose .compact-table code, .compact-table th, .compact-table td { font-size: 0.8rem; }
/* Landing-page contact form styles (used by the ContactForm component in
docs/index.mdx). Plain CSS keeps the styling independent of Tailwind's
content scanning/purge configuration. */
.kf-form {
display: flex;
flex-direction: column;
gap: 24px;
background: #ffffff;
border: 1px solid #e5e7eb;
border-radius: 16px;
padding: 40px;
}
.dark .kf-form {
background: #0e1f3d;
border-color: #374151;
}
.kf-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
}
@media (max-width: 640px) {
.kf-row { grid-template-columns: 1fr; }
.kf-form { padding: 24px; }
}
.kf-group {
display: flex;
flex-direction: column;
gap: 8px;
}
.kf-business {
display: flex;
flex-direction: column;
gap: 24px;
}
.kf-label {
font-size: 14px;
font-weight: 500;
color: #111827;
}
.dark .kf-label { color: #f3f4f6; }
.kf-req { color: #ef4444; }
.kf-error {
font-size: 13px;
color: #ef4444;
}
.dark .kf-error { color: #f87171; }
.kf-input {
width: 100%;
box-sizing: border-box;
border: 1px solid #e5e7eb;
border-radius: 12px;
background: #fcfbfb;
color: #111827;
padding: 12px 16px;
font-size: 16px;
line-height: 1.5;
outline: none;
transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.kf-input::placeholder { color: #9ca3af; }
.kf-input:focus {
border-color: #082A56;
box-shadow: 0 0 0 1px #082A56;
}
.dark .kf-input {
background: #0c1b37;
border-color: #374151;
color: #f3f4f6;
}
.dark .kf-input:focus {
border-color: #BEE3FE;
box-shadow: 0 0 0 1px #BEE3FE;
}
.kf-textarea {
resize: vertical;
min-height: 120px;
}
.kf-actions {
display: flex;
justify-content: flex-end;
}
.kf-btn {
background: #0ea5e9;
color: #ffffff;
border: none;
cursor: pointer;
padding: 12px 24px;
border-radius: 12px;
font-weight: 600;
font-size: 16px;
transition: background-color 0.15s ease;
}
.kf-btn:hover { background: #0284c7; }
/* Liquidity developer overview: smaller card text */ #liquidity-dev-overview .card .text-base { font-size: 0.9rem; }
/* AI resources cards: smaller text */ #ai-resources-cards .card .text-base { font-size: 0.9rem; }
/* Skill files table: remove bold from links */ #skill-files-table :where(a):not(:where([class~=not-prose],[class~=not-prose] *)) { font-weight: 400 !important; } .mint-absolute { position: absolute } .mint-relative { position: relative } .mint-bottom-0 { bottom: 0px } .mint-bottom-[20px] { bottom: 20px } .mint-left-[20px] { left: 20px } .mint-right-0 { right: 0px } .mint-top-0 { top: 0px } .mint-top-[20px] { top: 20px } .mint-z-10 { z-index: 10 } .mint-mx-auto { margin-left: auto; margin-right: auto } .mint-mb-1 { margin-bottom: 0.25rem } .mint-mb-12 { margin-bottom: 3rem } .mint-mb-4 { margin-bottom: 1rem } .mint-mb-6 { margin-bottom: 1.5rem } .mint-mb-8 { margin-bottom: 2rem } .mint-mt-4 { margin-top: 1rem } .mint-inline-block { display: inline-block } .mint-flex { display: flex } .mint-inline-flex { display: inline-flex } .mint-grid { display: grid } .mint-hidden { display: none } .mint-h-10 { height: 2.5rem } .mint-h-4 { height: 1rem } .mint-h-6 { height: 1.5rem } .mint-min-h-[40px] { min-height: 40px } .mint-w-10 { width: 2.5rem } .mint-w-4 { width: 1rem } .mint-w-6 { width: 1.5rem } .mint-w-[2px] { width: 2px } .mint-w-[40.5%] { width: 40.5% } .mint-w-full { width: 100% } .mint-min-w-[40px] { min-width: 40px } .mint-max-w-2xl { max-width: 42rem } .mint-max-w-7xl { max-width: 80rem } .mint-max-w-xl { max-width: 36rem } .mint-flex-1 { flex: 1 1 0% } .mint-flex-shrink-0 { flex-shrink: 0 } .mint-grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)) } .mint-flex-col { flex-direction: column } .mint-flex-wrap { flex-wrap: wrap } .mint-items-start { align-items: flex-start } .mint-items-center { align-items: center } .mint-justify-start { justify-content: flex-start } .mint-justify-center { justify-content: center } .mint-justify-between { justify-content: space-between } .mint-gap-1.5 { gap: 0.375rem } .mint-gap-2 { gap: 0.5rem } .mint-gap-3 { gap: 0.75rem } .mint-gap-4 { gap: 1rem } .mint-gap-6 { gap: 1.5rem } .mint-gap-8 { gap: 2rem } .mint-gap-x-12 { column-gap: 3rem } .mint-gap-y-12 { row-gap: 3rem } .mint-overflow-hidden { overflow: hidden } .mint-rounded-2xl { border-radius: 1rem } .mint-rounded-full { border-radius: 9999px } .mint-rounded-xl { border-radius: 0.75rem } .mint-border { border-width: 1px } .mint-border-2 { border-width: 2px } .mint-border-[#0ea5e9]/20 { border-color: rgb(14 165 233 / 0.2) } .mint-border-blue-200 { --tw-border-opacity: 1; border-color: rgb(191 219 254 / var(--tw-border-opacity, 1)) } .mint-border-gray-200 { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)) } .mint-bg-[#081632] { --tw-bg-opacity: 1; background-color: rgb(8 22 50 / var(--tw-bg-opacity, 1)) } .mint-bg-[#0ea5e9]/10 { background-color: rgb(14 165 233 / 0.1) } .mint-bg-[#fcfbfb] { --tw-bg-opacity: 1; background-color: rgb(252 251 251 / var(--tw-bg-opacity, 1)) } .mint-bg-blue-100 { --tw-bg-opacity: 1; background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)) } .mint-bg-gray-200 { --tw-bg-opacity: 1; background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)) } .mint-bg-gray-900 { --tw-bg-opacity: 1; background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1)) } .mint-bg-green-100 { --tw-bg-opacity: 1; background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1)) } .mint-bg-white { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) } .mint-p-6 { padding: 1.5rem } .mint-p-8 { padding: 2rem } .mint-px-4 { padding-left: 1rem; padding-right: 1rem } .mint-py-16 { padding-top: 4rem; padding-bottom: 4rem } .mint-py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem } .mint-pb-14 { padding-bottom: 3.5rem } .mint-pb-16 { padding-bottom: 4rem } .mint-pb-8 { padding-bottom: 2rem } .mint-pt-16 { padding-top: 4rem } .mint-pt-4 { padding-top: 1rem } .mint-pt-9 { padding-top: 2.25rem } .mint-text-center { text-align: center } .mint-text-4xl { font-size: 2.25rem; line-height: 2.5rem } .mint-text-[2.5rem] { font-size: 2.5rem } .mint-text-base { font-size: 1rem; line-height: 1.5rem } .mint-text-lg { font-size: 1.125rem; line-height: 1.75rem } .mint-text-sm { font-size: 0.875rem; line-height: 1.25rem } .mint-text-xl { font-size: 1.25rem; line-height: 1.75rem } .mint-text-xs { font-size: 0.75rem; line-height: 1rem } .mint-font-bold { font-weight: 700 } .mint-font-medium { font-weight: 500 } .mint-font-semibold { font-weight: 600 } .mint-uppercase { text-transform: uppercase } .mint-leading-none { line-height: 1 } .mint-leading-relaxed { line-height: 1.625 } .mint-tracking-tight { letter-spacing: -0.025em } .mint-tracking-wide { letter-spacing: 0.025em } .mint-text-[#0ea5e9] { --tw-text-opacity: 1; color: rgb(14 165 233 / var(--tw-text-opacity, 1)) } .mint-text-[#6B7280] { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity, 1)) } .mint-text-blue-500 { --tw-text-opacity: 1; color: rgb(59 130 246 / var(--tw-text-opacity, 1)) } .mint-text-gray-500 { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity, 1)) } .mint-text-gray-600 { --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity, 1)) } .mint-text-gray-700 { --tw-text-opacity: 1; color: rgb(55 65 81 / var(--tw-text-opacity, 1)) } .mint-text-gray-900 { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity, 1)) } .mint-text-green-600 { --tw-text-opacity: 1; color: rgb(22 163 74 / var(--tw-text-opacity, 1)) } .mint-text-white { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1)) } .mint-no-underline { text-decoration-line: none } .mint-opacity-0 { opacity: 0 } .mint-transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms } .mint-transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms } .mint-transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms } .hover:mint-gap-3:hover { gap: 0.75rem } .hover:mint-text-gray-900:hover { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity, 1)) } .hover:mint-opacity-80:hover { opacity: 0.8 } .mint-group:hover .group-hover:mint-opacity-100 { opacity: 1 } .dark:mint-border-[#0ea5e9]/20:is(.dark *) { border-color: rgb(14 165 233 / 0.2) } .dark:mint-border-blue-400:is(.dark *) { --tw-border-opacity: 1; border-color: rgb(96 165 250 / var(--tw-border-opacity, 1)) } .dark:mint-border-gray-800:is(.dark *) { --tw-border-opacity: 1; border-color: rgb(31 41 55 / var(--tw-border-opacity, 1)) } .dark:mint-border-white/10:is(.dark *) { border-color: rgb(255 255 255 / 0.1) } .dark:mint-bg-[#091326]:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(9 19 38 / var(--tw-bg-opacity, 1)) } .dark:mint-bg-[#0c1b37]:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(12 27 55 / var(--tw-bg-opacity, 1)) } .dark:mint-bg-[#0ea5e9]/10:is(.dark *) { background-color: rgb(14 165 233 / 0.1) } .dark:mint-bg-[#122B57]:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(18 43 87 / var(--tw-bg-opacity, 1)) } .dark:mint-bg-[#1a202c]:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(26 32 44 / var(--tw-bg-opacity, 1)) } .dark:mint-bg-blue-500:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1)) } .dark:mint-bg-gray-700:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)) } .dark:mint-bg-green-600:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)) } .dark:mint-bg-green-900/30:is(.dark *) { background-color: rgb(20 83 45 / 0.3) } .dark:mint-bg-white:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) } .dark:mint-text-[#0ea5e9]:is(.dark *) { --tw-text-opacity: 1; color: rgb(14 165 233 / var(--tw-text-opacity, 1)) } .dark:mint-text-blue-400:is(.dark *) { --tw-text-opacity: 1; color: rgb(96 165 250 / var(--tw-text-opacity, 1)) } .dark:mint-text-gray-100:is(.dark *) { --tw-text-opacity: 1; color: rgb(243 244 246 / var(--tw-text-opacity, 1)) } .dark:mint-text-gray-300:is(.dark *) { --tw-text-opacity: 1; color: rgb(209 213 219 / var(--tw-text-opacity, 1)) } .dark:mint-text-gray-400:is(.dark *) { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity, 1)) } .dark:mint-text-gray-900:is(.dark *) { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity, 1)) } .dark:mint-text-green-400:is(.dark *) { --tw-text-opacity: 1; color: rgb(74 222 128 / var(--tw-text-opacity, 1)) } .dark:mint-text-white:is(.dark *) { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1)) } .dark:hover:mint-border-white/20:hover:is(.dark *) { border-color: rgb(255 255 255 / 0.2) } .dark:hover:mint-text-white:hover:is(.dark *) { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1)) } @media (min-width: 640px) { .sm:mint-flex-row { flex-direction: row } .sm:mint-py-20 { padding-top: 5rem; padding-bottom: 5rem } .sm:mint-pb-20 { padding-bottom: 5rem } .sm:mint-pt-11 { padding-top: 2.75rem } .sm:mint-pt-20 { padding-top: 5rem } } @media (min-width: 768px) { .md:mint-mb-16 { margin-bottom: 4rem } .md:mint-gap-x-16 { column-gap: 4rem } .md:mint-text-xl { font-size: 1.25rem; line-height: 1.75rem } } @media (min-width: 1024px) { .lg:mint-block { display: block } .lg:mint-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) } .lg:mint-gap-6 { gap: 1.5rem } .lg:mint-gap-x-20 { column-gap: 5rem } .lg:mint-p-10 { padding: 2.5rem } .lg:mint-text-5xl { font-size: 3rem; line-height: 1 } .lg:mint-text-lg { font-size: 1.125rem; line-height: 1.75rem } } @media (min-width: 1280px) { .xl:mint-block { display: block } }Kamino DocumentationExplore the Kamino protocol with comprehensive documentation for developers, curators, and institutions.BuildkitExplore Kamino technical guides, SDKs and APIs.CuratorsLearn how to launch custom Kamino vaults and markets.DocsRead more about Kamino Protocol.FOR PROTOCOL OPERATORSCurator VaultsLaunch custom lending vaults designed for your needs. Set allocation strategies and fee structures, manage risk parameters, and collect revenue on Kamino’s audited infrastructure.Learn about Curator Vaults</svg
… [truncated — open the raw llms.txt above for the full file]
Automate transactions like real-time eligibility checks and claims processing with developer-friendly, JSON-based APIs that support thousands of payers.
Primev is building mev-commit, a credible commitment network for mev actors.
Dynamic offers a suite of tools for effortless log in, wallet creation and user management. Designed for users. Built for developers.
Mesh enables safer, easier crypto transfers and payments from 300+ leading exchanges and wallets, all without leaving your platform
Earn revenue today without delaying your roadmap. Payment processing for SaaS by SaaS.
FlowX.AI is redefining banking modernization with the first-ever unified, open, AI platform built to free banks from restrictive point solutions.
Markets, illuminated — World's largest provider of trading indicators for every market from stocks, crypto, and forex.