A capability name is internal vocabulary. usdt_to_pix only means something to someone who already knows Lunium — so each capability declares what it does, in fields you can filter on.
| Field | What for |
|---|---|
intent | Intent vocabulary: offramp, sell_crypto, cash_out… Matches by token. An inverted index lives at como_escolher_capacidade.por_intencao. |
can_solve | Plain-language sentences of what the capability solves. Matches by semantic similarity — which is how a model searches. |
input_assets · input_networks | What it accepts. * means “anything in the catalog”. |
output_currencies | What it returns. |
payment_rails | Over which rail. Today: PIX. |
endpoint | Where it executes. You do not need to know it in advance — it comes from here. |
settlement_speed | seconds on the instant rail, minutes on the convert path. |
// "I have USDT and want BRL over PIX"
const serve = (c) =>
(c.input_assets.includes("USDT") || c.input_assets.includes("*")) &&
c.output_currencies.includes("BRL") &&
c.payment_rails.includes("PIX");
That returns usdt_to_pix and crypto_to_pix. Between the two, settlement_speed breaks the tie.
execucao[<capability>] carries the exact endpoint, the required fields and a ready example. Guessing a schema by keyword is where autonomous integration breaks silently.— capabilities, — indexed intents:
| Capability | Intents | In → out | Endpoint |
|---|---|---|---|
| loading… | |||
curl https://api.luniumpay.com/mesh | jq .capacidades