MCP & Agents
There is no account system to sign up for, so there is nothing to give an agent access to. It reads the chain the same way a person's wallet does, composes transactions it cannot send, and compiles contracts without a server. The tools below already exist.
Chain height
reading the public node
API keys required
there is nothing to issue
MCP tools shipped
read and compile only
Tools that can sign
by design, permanently
Why it suits agents
None of this was retrofitted for AI. A chain with no accounts and no gatekeeper is a chain a program can use, and the SDKs already separate deciding from signing.
A read is a plain GET. The node reflects the request Origin, so a script on any host calls it directly — no key to provision, no quota to negotiate, and no credential to leak.
// the whole authentication storyawait fetch('https://mainnet-node.decentralchain.io/blocks/height');
The SDKs return transactions with an empty proofs array. Software can build exactly what should happen and still hold no power to make it happen — which is the separation you want when the thing deciding is a model.
ride-lang and ride-repl are the real compiler cross-built from Scala with Scala.js. An agent can compile and evaluate a contract inside its own process — no toolchain to install, no build service to call, nothing leaving the machine.
import { compile } from'@decentralchain/ride-lang';// estimator 3 is the maximumconst out = compile(source, 3);out.complexity;
RIDE supports dApp-to-dApp invocation, so one contract calls another and acts on what it returns. Two autonomous systems can settle with each other on chain, with no interface and no human in the path.
invokes
returns a result
What we have built
Six tools, no credential configuration, and no way to spend anything. Point any MCP client at it and a model reads mainnet live and compiles RIDE in process. There is no key to store, so there is none to leak.
No token, no endpoint to register, no account to create first.
{"mcpServers": {"decentralchain": {"command": "npx","args": ["-y", "@decentralchain/mcp-node"]}}}
Three reads against the public node, three that run the RIDE compiler locally.
Current mainnet height, read live.
Full header — generator, timestamp, size, base target, VRF.
The node build answering these reads.
Compile RIDE in process. Returns complexity, or the compiler error.
The stdlib version, content type and script type a script declares.
A compiled script turned back into readable source.
What it can do
What it cannot, ever
Not a policy we enforce in a prompt. There is no signing code in the server, so there is nothing to jailbreak.
Built, and its smoke test passes against mainnet — it lists its tools, reads live height and node version, compiles a contract, and returns a clean parse error for invalid source. Not published to npm yet, so the command above does not resolve today.
Start here
Two documents, both written against live mainnet. Every runnable sample in them was executed before it was written down, including the three that turned out to be broken.