Skip to main content
The official Charli3 SDK is written in Python. It works. But if your app is on Node, Next.js, or Vercel, you have to run a second Python service next to it. charli3-js removes that step.

Both SDKs do the same on-chain work

They call the same oracle nodes, trust the same keys, and build a Round 2 tx the same on-chain contract accepts. The chain does not care which SDK you used. That is the point.
Scope. charli3-js covers ODV pull oracles (Round 1 + Round 2). The Python SDK also covers the older push oracles and some Charli3 ops tools. If you need those, keep using the Python SDK.

Same action, different code

The practical differences

Why this matters for Cardano builders

Most Cardano tools (Lucid, MeshSDK, Blockfrost, Lace, Vercel templates) are JavaScript or TypeScript. Asking someone to add a Python service just to read a price is a lot. Asking them to add one npm package is not. Fewer moving parts means:
  • More oracle-backed apps get built (less setup to do)
  • More Round 2 txs happen (which is how Charli3 earns)
  • Fewer things break in production
  • No extra server just to read one price

When to use which

Use charli3-js

You are building a web app, a Next.js API route, a Cardano wallet, a Discord bot, a CLI tool, or an AI agent that already runs on Node.

Use the Python SDK

You need push-oracle support, Charli3 ops tools, or you already run Python with pycardano.

They can work together

You can run the Python SDK for one job and charli3-js for another. They read the same on-chain data and produce the same kind of tx. Mix and match by service.