For the complete documentation index, see llms.txt. This page is also available as Markdown.

Precompiles

Pod uses precompiles for enshrined applications and internal protocol operations. Precompiles are built into the protocol rather than deployed as user contracts, so they can access internal state (validator signatures, timestamps, merkle proofs) and execute without contract call overhead.

Precompile Addresses

Signature
Address
Description

Orderbook

0x50d0000000000000000000000000000000000002

Central limit order book for spot and perpetual markets

Bridge

0x50d0000000000000000000000000000000000001

ERC-20 token bridging between Pod and Ethereum

Optimistic Auctions

0x50d0000000000000000000000000000000000004

Censorship-resistant auction for intents (settlement happens off-Pod)

Recovery

0x50d0000000000000000000000000000000000003

Recover a locked account by finalizing the target transaction chain

Interacting with Precompiles

You interact with Pod's precompiles the same way you would interact with any smart contract on Ethereum - by encoding function calls against a Solidity ABI and sending them via eth_call (reads) or eth_sendRawTransaction (writes).

Reading State

Query the deposited balance of a token in the orderbook contract using eth_call.

import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://rpc.podtestnet.dev");

const ORDERBOOK = "0x50d0000000000000000000000000000000000002";
const abi = ["function getBalance(address token) view returns (uint256)"];
const orderbook = new ethers.Contract(ORDERBOOK, abi, provider);

const USDT = "0x0000000000000000000000000000000000000001";
const balance = await orderbook.getBalance(USDT);
console.log("Balance:", balance.toString());

Submitting Transactions

Send a signed transaction to place a buy order on the orderbook via eth_sendRawTransaction.

Last updated