← Back to search
40
Partial
Agentic Readiness Score
+25 llms.txt +15 structured API missing +20 ai-plugin
Raise this score to 95+
We ship the 6-file GEO uplift as a pull request against your repo. Flat fee, turnaround under 72 hours.
Fix this for $199 →
developer llms-txtapi

Agentic Signals

📄
Found
🤖
ai-plugin.json
Not found
📖
OpenAPI Spec
Not found
🔗
Structured API
Found
🛡
Not specified
🏷
Schema.org Markup
Not found
MCP Server
Not found

Embed this badge

Show off your agentic readiness — the badge auto-updates when your score changes.

Agentic Ready 40/100

            

llms.txt Content

> ## Documentation Index > Fetch the complete documentation index at: https://kamino.com/docs/llms.txt > Use this file to discover all available pages before exploring further. > Complete documentation for Kamino Finance: Earn yield with automated vaults, Borrow and Lend, Multiply for leveraged positions, and concentrated liquidity on Solana. Developer Buildkit with REST API and TypeScript SDK. Curator tools for vault creation and management. # Docs export const ContactForm = () => { const BUSINESS_TOPICS = ["Custom loan or yield solution", "Become a curator"]; const TOPICS = ["Custom loan or yield solution", "Become a curator", "API / SDK developer support", "Rust Crate developer support", "Report a bug", "Feature request", "Other"]; const TIMELINES = ["ASAP", "1-3 months", "3-6 months", "Just exploring"]; const EMAIL_RE = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; const EMPTY = { fullname: "", email: "", topic: "", company: "", jobtitle: "", timeline: "", message: "" }; const [values, setValues] = useState(EMPTY); const [errors, setErrors] = useState({}); const [submitError, setSubmitError] = useState(""); const isBusiness = BUSINESS_TOPICS.includes(values.topic); const setField = name => e => { const value = e.target.value; setValues(prev => ({ ...prev, [name]: value })); setErrors(prev => ({ ...prev, [name]: undefined })); }; const validate = () => { const next = {}; if (!values.fullname.trim()) next.fullname = "Please enter your name."; if (!EMAIL_RE.test(values.email.trim())) next.email = "Please enter a valid email address."; if (!values.topic) next.topic = "Please select a topic."; if (isBusiness && !values.company.trim()) next.company = "Please enter your company name."; if (!values.message.trim()) next.message = "Please tell us what you have in mind."; setErrors(next); return Object.keys(next).length === 0; }; const handleSubmit = e =