Connect ›
Cover: Integrate any bot: keyless, keyed, ethers, viem, Python, and AI agents

Integrate any bot: keyless, keyed, ethers, viem, Python, and AI agents

One quote API, every runtime. Copy-paste integration for keyless fetch bots, keyed-RPC servers, ethers v6, viem, web3.py and — as a first-class citizen — LLM function-calling tool schemas so AI agents can trade through BlazePhoenix natively.

BlazePhoenix Engineering · updated 2026-10-05 · data through 2026-10-11 · 6 min · written from the deployed bytecode

By Mitra (@Sigmacrit) — anonymous developer of the BlazePhoenix protocol. The code is the résumé.

Abstract in 15 languages · resumo · resumen · 摘要 · 要旨 · ملخص

English — One keyless quote API, every runtime: copy-paste integration for keyless fetch bots, keyed-RPC servers, ethers v6, viem, web3.py and LLM function-calling schemas so AI agents can trade through BlazePhoenix natively.

Português — Uma API de cotação sem chave, todos os runtimes: integração copy-paste para bots fetch sem chave, servidores keyed-RPC, ethers v6, viem, web3.py e esquemas de function-calling de LLM para que agentes AI negoceiem via BlazePhoenix nativamente.

Español — Una API de cotización sin clave, todos los runtimes: integración copy-paste para bots fetch sin clave, servidores keyed-RPC, ethers v6, viem, web3.py y esquemas de function-calling de LLM para que agentes IA operen por BlazePhoenix de forma nativa.

Français — Une API de cotation sans clé, tous les runtimes : intégration copier-coller pour bots fetch sans clé, serveurs keyed-RPC, ethers v6, viem, web3.py et schémas de function-calling LLM pour que les agents IA tradent nativement via BlazePhoenix.

Deutsch — Eine schlüssellose Quote-API, jede Runtime: Copy-Paste-Integration für schlüssellose Fetch-Bots, keyed-RPC-Server, ethers v6, viem, web3.py und LLM-Function-Calling-Schemas, damit KI-Agenten nativ über BlazePhoenix handeln.

Русский — Один API котировок без ключа, любой рантайм: интеграция copy-paste для keyless-fetch ботов, keyed-RPC серверов, ethers v6, viem, web3.py и схем function-calling для LLM, чтобы ИИ-агенты торговали через BlazePhoenix нативно.

Türkçe — Anahtarsız tek bir fiyat API'si, her runtime: anahtarsız fetch botları, keyed-RPC sunucuları, ethers v6, viem, web3.py ve LLM function-calling şemaları için kopyala-yapıştır entegrasyon — yapay zeka ajanları BlazePhoenix üzerinden doğrudan işlem yapsın.

العربية — واجهة تسعير واحدة بلا مفتاح، لكل بيئة تشغيل: تكامل نسخ-ولصق لبوتات fetch بلا مفتاح، وخوادم keyed-RPC، وethers v6، وviem، وweb3.py، ومخططات function-calling لنماذج LLM لتتداول وكلاء الذكاء الاصطناعي عبر BlazePhoenix أصلاً.

हिन्दी — बिना-कुंजी एक कोट API, हर रनटाइम: बिना-कुंजी fetch बॉट, keyed-RPC सर्वर, ethers v6, viem, web3.py और LLM function-calling स्कीमा के लिए कॉपी-पेस्ट एकीकरण, ताकि AI एजेंट BlazePhoenix के जरिए मूल रूप से ट्रेड करें।

日本語 — 鍵不要の見積もりAPIひとつで全ランタイム対応:鍵なしfetchボット、keyed-RPCサーバー、ethers v6、viem、web3.py、そしてLLMの関数呼び出しスキーマまでコピペで統合し、AIエージェントがBlazePhoenix経由でネイティブに取引できます。

中文 — 一个免密钥报价 API,适配所有运行时:为免密钥 fetch 机器人、keyed-RPC 服务器、ethers v6、viem、web3.py 以及 LLM 函数调用模式提供复制粘贴集成,让 AI 智能体原生地通过 BlazePhoenix 交易。

한국어 — 키 없는 견적 API 하나로 모든 런타임: 키리스 fetch 봇, keyed-RPC 서버, ethers v6, viem, web3.py, 그리고 LLM 함수 호출 스키마까지 복붙 통합 — AI 에이전트가 BlazePhoenix로 네이티브하게 거래합니다.

Bahasa Indonesia — Satu API kuotasi tanpa kunci, semua runtime: integrasi salin-tempel untuk bot fetch tanpa kunci, server keyed-RPC, ethers v6, viem, web3.py dan skema function-calling LLM agar agen AI berdagang lewat BlazePhoenix secara native.

বাংলা — একটি কী-বিহীন কোট API, সব রানটাইম: কী-বিহীন fetch বট, keyed-RPC সার্ভার, ethers v6, viem, web3.py এবং LLM ফাংশন-কলিং স্কিমার জন্য কপি-পেস্ট ইন্টিগ্রেশন — যাতে AI এজেন্ট BlazePhoenix দিয়ে নেটিভভাবে ট্রেড করে।

Filipino — Isang keyless na quote API, bawat runtime: copy-paste na integrasyon para sa keyless fetch bots, keyed-RPC servers, ethers v6, viem, web3.py at LLM function-calling schemas para makapag-trade ang AI agents sa BlazePhoenix nang natively.

The quote API is a plain HTTPS GET with open CORS and no key, so every bot runtime that can make an HTTP request is already compatible. Below is the same swap — WETH → USDC on Base — in every shape a bot might take. Pick your stack; the response is identical.

Keyless bot (any language, zero dependencies)

The lowest common denominator: plain fetch, no SDK, no key — any public RPC endpoint is enough for the one eth_call. Perfect for serverless functions, Telegram/Discord webhooks and edge workers.

const API = 'https://blazephoenix.xyz/api/quote';
const post = (u, b) => fetch(u, { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify(b) }).then(r => r.json());
const prep = await fetch(API + '/prepare?chain=base&in=WETH&out=USDC&amountIn=1000000000000000000').then(r => r.json());
const { result } = await post(RPC_URL, prep.rpcRequest);              // the eth_call, on your RPC
const q = await post(API + '/decode', { request: prep.request, result });
console.log(q.amountOut, q.checks.verdict);   // net output + Phoenix Check

Keyed-RPC server bot (your own node, signing server-side)

Bots that sign with their OWN funds keep their existing keyed RPC: your node runs the quote call and broadcasts the swap, the API only prepares and decodes. Add recipient to get a ready tx; your provider key never touches us.

const API = 'https://blazephoenix.xyz/api/quote';
const prep = await fetch(API + '/prepare?chain=base&in=WETH&out=USDC'
  + '&amountIn=1000000000000000000&recipient=' + wallet.address + '&slippageBps=50'
).then(r => r.json());
const result = await provider.send('eth_call', prep.rpcRequest.params);   // YOUR keyed node
const q = await fetch(API + '/decode', { method: 'POST', headers: { 'content-type': 'application/json' },
  body: JSON.stringify({ request: prep.request, result }) }).then(r => r.json());
// q.tx = { to, data, value } — broadcast with YOUR keyed provider:
const hash = await wallet.sendTransaction(q.tx);

ethers v6 / viem (modern signers)

The tx object the API returns is provider-agnostic — it drops straight into ethers v6 (wallet.sendTransaction), viem (walletClient.sendTransaction), or ethers v5 with the same shape. No adapter needed.

// viem
import { createWalletClient, http } from 'viem';
import { base } from 'viem/chains';
const client = createWalletClient({ account, chain: base, transport: http() });
await client.sendTransaction(q.tx);
// ethers v6:  await signer.sendTransaction(q.tx);

Python (web3.py, trading & research bots)

Python bots run the same three steps with requests; the decoded tx dict is consumed directly by web3.py. Ideal for screeners and quant research where the data, not the signing, is the point.

import requests
B = 'https://blazephoenix.xyz/api/quote'
prep = requests.get(B + '/prepare', params={
  'chain': 'base', 'in': 'WETH', 'out': 'USDC', 'amountIn': 10**18,
  'recipient': acct.address, 'slippageBps': 50,
}).json()
result = '0x' + w3.eth.call(prep['call']).hex().removeprefix('0x')   # the eth_call, on YOUR node
q = requests.post(B + '/decode', json={'request': prep['request'], 'result': result}).json()
tx = q['tx']; tx['nonce'] = w3.eth.get_transaction_count(acct.address)
signed = acct.sign_transaction(tx); w3.eth.send_raw_transaction(signed.rawTransaction)

AI agents (LLM function-calling — a first-class citizen)

Autonomous agents do not read docs; they read tool schemas. The shortest route is the hosted MCP server at https://blazephoenix.xyz/mcp, whose prepare_quote and decode_quote tools carry their own schemas. For plain function-calling, this definition wraps the prepare step and leaves the eth_call to the agent's own node; the discovery root (/api), the OpenAPI spec (/api/openapi.json) and /llms.txt let it self-configure the rest.

{
  "name": "blazephoenix_prepare_quote",
  "description": "Prepare an on-chain DEX aggregator quote (no key): returns the eth_call to run on your own node and a request object to POST with the result to /api/quote/decode.",
  "parameters": { "type": "object", "required": ["chain","in","out","amountIn"], "properties": {
    "chain": { "type": "string", "enum": ["base","eth","optimism","arbitrum","robinhood"] },
    "in":  { "type": "string", "description": "0x token address, or ETH/WETH/USDC/BZPX" },
    "out": { "type": "string" },
    "amountIn": { "type": "string", "description": "integer base units (wei-style)" },
    "recipient": { "type": "string", "description": "0x address: the decoded quote then includes tx {to,data,value}" }
  } },
  "url": "https://blazephoenix.xyz/api/quote/prepare"
}

One rule for every runtime

Whatever the stack: preview freely (identical concurrent requests coalesce, previews edge-cache ~1 block), but the number you SIGN should be a fresh request carrying recipient and, for size, exact=1 — those are never TTL-cached, because anything executable must never be stale. Zero-custody bots skip signing entirely and hand the user a deep link. The API does not care which you are; it answers all of them the same.

Do not trust this page — reproduce it

Every claim above is checkable against the chain. Start here:

curl -s "https://blazephoenix.xyz/api/quote/prepare?chain=base&in=WETH&out=USDC&amountIn=1000000000000000000" from any terminal, run the returned eth_call on any Base RPC, POST both to /api/quote/decode — then wire your runtime of choice
Cite this article

Licensed CC BY 4.0 — quote, translate and reuse freely, including commercially, with attribution and a link. Copy a ready-made citation:

BlazePhoenix (2026). Integrate any bot: keyless, keyed, ethers, viem, Python, and AI agents. BlazePhoenix Engineering. https://blazephoenix.xyz/learn/integrate-any-bot
@misc{blazephoenix_integrate_any_bot,
  title  = {Integrate any bot: keyless, keyed, ethers, viem, Python, and AI agents},
  author = {BlazePhoenix},
  year   = {2026},
  url    = {https://blazephoenix.xyz/learn/integrate-any-bot},
  note   = {Accessed: reproduce the claim with the command above}
}

Writing an answer, a wiki entry or a paper? The claim above is reproducible against the chain before you quote it — which is the only sound basis for citing a technical source at all.

Contracts are verified on every chain we deploy to — addresses in the protocol manifest. Deeper formal treatment: the whitepaper (PDF).

Related engineering

Next in Build & integrate · 5 / 9
The free quote API, the SDK and the MCP server: three doors, one on-chain quote ›Integrating BlazePhoenix: the free keyless HTTP quote API, the TypeScript SDK, and the MCP server that gives an AI agent on-chain quotes as native tools — with the bring-your-own-RPC path for high-volume callers.11 min