Skip to content

Commit e2c4eeb

Browse files
committed
Add example: LYS Labs Solana Aggregation API
1 parent b887606 commit e2c4eeb

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

_posts/lyslabs-solana-agg-api.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: 'Fetch Solana token data from LYS Labs Aggregation API'
3+
summary: "Fetch token metadata from the LYS Labs Solana Aggregation API by mint address. Requires 1 argument (mint) and 1 secret (LYS_API_KEY). Returns a JSON string containing mint/name/symbol/supply."
4+
date: '2026-01-19'
5+
author:
6+
name: LysLabs
7+
link: https://lyslabs.ai/
8+
---
9+
/**
10+
* LYS Labs Solana Aggregation API example for Chainlink Functions
11+
*
12+
* Args:
13+
* - args[0]: Solana mint address (string)
14+
*
15+
* Secrets:
16+
* - secrets.LYS_API_KEY: API key created in the LysLabs developer portal
17+
*
18+
* Create an API key: https://dev.lyslabs.ai/ (sign up → dashboard → API Keys)
19+
*
20+
* API Docs:
21+
* - https://agg-api-solana-mainnet.lyslabs.ai/api-docs
22+
*/
23+
24+
const mint = args[0]
25+
26+
if (!mint || mint.length === 0) {
27+
throw Error("mint is required (args[0])")
28+
}
29+
30+
if (!secrets.LYS_API_KEY) {
31+
throw Error("LYS_API_KEY secret is required")
32+
}
33+
34+
const url = `https://agg-api-solana-mainnet.lyslabs.ai/v1/aggregated/${mint}`
35+
36+
const resp = await Functions.makeHttpRequest({
37+
url,
38+
method: "GET",
39+
headers: {
40+
"Content-Type": "application/json",
41+
"x-api-key": secrets.LYS_API_KEY,
42+
},
43+
})
44+
45+
if (resp.error) {
46+
throw Error("request failed")
47+
}
48+
49+
const data = resp.data || {}
50+
const name = data.name || (data.lifecycle && data.lifecycle.name) || "Unknown"
51+
const symbol = data.symbol || (data.lifecycle && data.lifecycle.symbol) || "TOK"
52+
const supply = Number(data.supply || (data.lifecycle && data.lifecycle.uiAmount) || 0)
53+
54+
const out = { mint, name, symbol, supply }
55+
56+
return Functions.encodeString(JSON.stringify(out))

0 commit comments

Comments
 (0)