> ## Documentation Index
> Fetch the complete documentation index at: https://chainstack-docs-polygon-erigon-trace-deprecation.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Tempo API reference: stablecoin payments JSON-RPC

> Get started building on Tempo with Chainstack. Access the JSON-RPC API to build stablecoin payment applications with low-cost gas fees on the Tempo blockchain.

## What is Tempo?

Tempo is a Layer-1 blockchain purpose-built for payments. It combines EVM compatibility with payment-specific features like stablecoin gas fees, payment lanes, built-in compliance support, and the Machine Payments Protocol (MPP) for inline HTTP payments.

<Info>
  Tempo is designed for high-throughput payment applications with sub-second finality and the ability to pay transaction fees in stablecoins instead of a volatile native token.
</Info>

### Key features

* **Stablecoin gas fees** — Pay transaction fees in USD stablecoins, eliminating the need for a volatile gas token
* **Sub-second finality** — Transactions finalize in approximately 500 milliseconds using Simplex Consensus
* **Payment lanes** — Dedicated blockspace ensures payment transactions always have room, even during network congestion
* **Tempo Transactions** — Custom EIP-2718 transaction type with fee sponsorship, batch calls, 2D nonces, access keys, and scheduled transactions
* **TIP-20 token standard** — Extended ERC-20 with ISO 20022 memos, compliance hooks, and 6-decimal precision for stablecoins
* **Machine Payments Protocol (MPP)** — HTTP 402-based inline payments for paid APIs, MCP tools, and agentic commerce
* **Enshrined stablecoin DEX** — Protocol-level exchange for stablecoin swaps with limit orders and flip orders
* **EVM compatible** — Deploy Solidity contracts using familiar tools like Foundry, Hardhat, and Remix

## Network details

<Tabs>
  <Tab title="Mainnet">
    | Property     | Value                                                           |
    | ------------ | --------------------------------------------------------------- |
    | Network name | Tempo Mainnet                                                   |
    | Chain ID     | 4217 (0x1079)                                                   |
    | Currency     | USD stablecoins (no native token)                               |
    | Block time   | \~0.5 seconds                                                   |
    | Finality     | Sub-second (Simplex Consensus)                                  |
    | Explorer     | [explore.mainnet.tempo.xyz](https://explore.mainnet.tempo.xyz/) |
  </Tab>

  <Tab title="Testnet">
    | Property     | Value                                           |
    | ------------ | ----------------------------------------------- |
    | Network name | Tempo Testnet (Moderato)                        |
    | Chain ID     | 42431 (0xa5bf)                                  |
    | Currency     | USD stablecoins (no native token)               |
    | Block time   | \~0.5 seconds                                   |
    | Finality     | Sub-second (Simplex Consensus)                  |
    | Explorer     | [explore.tempo.xyz](https://explore.tempo.xyz/) |
  </Tab>
</Tabs>

## What is the Tempo API?

The Tempo API allows developers to communicate with the Tempo blockchain to build payment applications.

To read data from and send transactions to the Tempo blockchain, an application must connect to a Tempo RPC node.

When communicating with a Tempo RPC node, the Tempo client implements a JSON-RPC specification, a communication protocol allowing one to make remote calls and execute them as if they were made locally.

Tempo supports all standard Ethereum JSON-RPC methods plus Tempo-specific extensions for payments and compliance.

## How to start using the Tempo API

To use the Tempo API, you need access to a Tempo RPC node.

1. [Sign up with Chainstack](https://console.chainstack.com/).
2. [Deploy a Tempo node](/docs/manage-your-networks).
3. Use your Chainstack endpoint in your applications.

See also [View node access and credentials](/docs/manage-your-node#view-node-access-and-credentials).

## Predeployed contracts

Tempo includes several predeployed system contracts for payments, tokens, and compliance. These addresses are the same on both mainnet and testnet:

| Contract         | Address                                      | Purpose                                 |
| ---------------- | -------------------------------------------- | --------------------------------------- |
| TIP-20 Factory   | `0x20fc000000000000000000000000000000000000` | Create TIP-20 stablecoin tokens         |
| Fee Manager      | `0xfeec000000000000000000000000000000000000` | Handle fee payments and conversions     |
| Stablecoin DEX   | `0xdec0000000000000000000000000000000000000` | Enshrined DEX for stablecoin swaps      |
| TIP-403 Registry | `0x403c000000000000000000000000000000000000` | Transfer policy registry for compliance |
| pathUSD          | `0x20c0000000000000000000000000000000000000` | First stablecoin deployed               |
| Multicall3       | `0xcA11bde05977b3631167028862bE2a173976CA11` | Batch multiple calls                    |
| CreateX          | `0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed` | Deterministic contract deployment       |
| Permit2          | `0x000000000022d473030f116ddee9f6b43ac78ba3` | Token approvals and transfers           |

## Get testnet tokens

<Note>
  The faucet is only available on Tempo testnet. On mainnet, acquire stablecoins from issuers or ecosystem partners.
</Note>

To get testnet tokens, use the `tempo_fundAddress` RPC method on the public Tempo RPC:

```bash theme={null}
curl -X POST https://rpc.moderato.tempo.xyz \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tempo_fundAddress",
    "params": ["YOUR_ADDRESS"],
    "id": 1
  }'
```

This funds your address with test stablecoins: pathUSD, AlphaUSD, BetaUSD, and ThetaUSD (1M of each).

## Important differences from Ethereum

### No native token balance

Tempo has no native token. The `eth_getBalance` method returns a placeholder value. To check balances, query TIP-20 token contracts directly using `balanceOf`.

### Stablecoin gas fees

Transaction fees are paid in TIP-20 stablecoins. The Fee AMM automatically converts between stablecoins, so users can pay in any supported USD token.

### Transaction receipts

Tempo transaction receipts include additional fields:

* `feeToken` — The TIP-20 token address used to pay fees
* `feePayer` — The address that paid the fees (may differ from sender with fee sponsorship)

<Info>
  **See also**

  * [Tempo tooling](/docs/tempo-tooling)
  * [Tempo: Building your first payment app](/docs/tempo-tutorial-first-payment-app)
  * [Tempo: Basic DEX swap with Foundry](/docs/tempo-tutorial-dex-swap-foundry)
  * [Tempo documentation](https://docs.tempo.xyz/)
  * [Tempo GitHub](https://github.com/tempoxyz/tempo)
</Info>
