Tempo shipped two developer-facing upgrades this week: a configurable liquidity check bypass in EVM validation and a new `tempo_simulateV1` RPC method with TIP-20 token metadata enrichment.
> impact
**What changed.** Two notable pull requests landed in Tempo's core codebase. PR #3485 (commit d22fe3a, authored by Arsenii Kulikov) introduces the ability to skip the liquidity check during EVM validation. Previously, every transaction routed through the EVM validation pipeline was subject to a mandatory liquidity gate; this change makes that gate configurable, allowing callers—or specific deployment profiles—to bypass it when appropriate. Separately, PR #3449 (commit 1ef8db5, authored by Derek Cofausper) adds a brand-new RPC endpoint called `tempo_simulateV1`. This method performs a transaction simulation and returns results enriched with TIP-20 token metadata, giving callers structured information about token name, symbol, decimals, and other standard fields directly in the simulation response.
**Why it matters.** The liquidity-check skip addresses a real pain point for teams deploying on Tempo in environments where liquidity constraints are either irrelevant or handled externally—think testnets, private rollup instances, or bridge-relay contexts where enforcing on-chain liquidity at the validation layer creates unnecessary friction. Making the check optional rather than removing it preserves safety for mainnet while unlocking flexibility everywhere else. On the RPC side, `tempo_simulateV1` eliminates the multi-call dance that dApp developers previously had to perform: simulate a transaction with one call, then separately fetch token metadata with additional calls. Bundling TIP-20 metadata into the simulation response reduces round trips, simplifies frontend logic, and creates a more reliable developer experience when building wallets, portfolio dashboards, or DEX interfaces on Tempo.
**Impact on builders.** If you maintain custom EVM validation pipelines or node configurations on Tempo, you now have a flag to toggle the liquidity gate—review PR #3485 for the exact configuration surface before your next deployment. If you build dApps or tooling that consume Tempo's RPC layer, `tempo_simulateV1` is the endpoint to migrate your simulation logic toward; the enriched TIP-20 payload means you can render accurate token information from a single call instead of stitching data together from multiple sources.
> Try this now
try this
# -------------------------------------------------------
# 1. Calling tempo_simulateV1 with TIP-20 enrichment
# -------------------------------------------------------
# Build a standard simulation request payload targeting the new endpoint.
# The response will include TIP-20 metadata for every token touched.
import json
import requests # or any HTTP client in your stack
# Point at your Tempo RPC node
RPC_URL = "https://rpc.tempo.example.com" # replace with your endpoint
# Construct the simulation request
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "tempo_simulateV1", # new RPC method (PR #3449)
"params": [
{
"from": "0xYourAddress",
"to": "0xTargetContract",
"data": "0xabcdef...", # encoded calldata
"value": "0x0"
},
"latest" # block tag
]
}
response = requests.post(RPC_URL, json=payload)
result = response.json()
# The result now contains enriched TIP-20 token metadata
# for every token transfer that would occur in this simulation.
for token in result.get("result", {}).get("tokenTransfers", []):
print(f"Token: {token['name']} ({token['symbol']})")
print(f" Decimals : {token['decimals']}")
print(f" Amount : {token['amount']}")
print(f" Contract : {token['address']}")
# -------------------------------------------------------
# 2. Skipping the liquidity check in EVM validation
# -------------------------------------------------------
# When configuring your Tempo node or custom validation
# pipeline, you can now disable the liquidity gate.
#
# In your node config (e.g., tempo.toml or equivalent):
#
# [evm.validation]
# skip_liquidity_check = true # default: false (PR #3485)
#
# This is useful for testnet deployments, private rollups,
# or relay scenarios where liquidity is managed externally.
# On mainnet, leave this as false unless you have a
# specific reason to override it.
# -------------------------------------------------------