From 56f5c3691dea950568df1216051c7498c1976d1b Mon Sep 17 00:00:00 2001 From: Derek Cofausper <256792747+decofe@users.noreply.github.com> Date: Fri, 7 Aug 2026 01:40:46 +0000 Subject: [PATCH 1/6] docs: add transaction debugger guide --- src/pages/docs/ecosystem/block-explorers.mdx | 2 + src/pages/docs/guide/debug-transactions.mdx | 41 +++++++++++++++++++ .../docs/guide/tempo-transaction/index.mdx | 2 + src/pages/docs/sdk/foundry/index.mdx | 2 + src/pages/docs/tools.mdx | 6 +++ vocs.config.ts | 5 +++ 6 files changed, 58 insertions(+) create mode 100644 src/pages/docs/guide/debug-transactions.mdx diff --git a/src/pages/docs/ecosystem/block-explorers.mdx b/src/pages/docs/ecosystem/block-explorers.mdx index c76836b4..32f98115 100644 --- a/src/pages/docs/ecosystem/block-explorers.mdx +++ b/src/pages/docs/ecosystem/block-explorers.mdx @@ -12,6 +12,8 @@ View transactions, blocks, accounts, and token activity on Tempo. Tempo's official Mainnet block explorer is available at [explore.tempo.xyz](https://explore.tempo.xyz). View transactions, blocks, accounts, and token activity on the Tempo network. Testnet block explorer is available at [explore.testnet.tempo.xyz](https://explore.testnet.tempo.xyz). For more connection information, see [Connect to the Network](/docs/quickstart/connection-details). +The explorer also includes a [transaction debugger](https://explore.tempo.xyz/simulate) that simulates a transaction without broadcasting it. Follow the [transaction debugging guide](/docs/guide/debug-transactions) to inspect execution traces, balance changes, events, gas use, and revert details. + ## Tenderly [Tenderly](https://tenderly.co) delivers full-stack observability, debugging, and simulation tools for Tempo smart contract development and monitoring. With Tenderly you get real-time error tracking, EVM-level tracing, and off-chain transaction simulation — enabling you to catch bugs, analyze reverts, and inspect gas usage before transactions go live. diff --git a/src/pages/docs/guide/debug-transactions.mdx b/src/pages/docs/guide/debug-transactions.mdx new file mode 100644 index 00000000..4eb915bb --- /dev/null +++ b/src/pages/docs/guide/debug-transactions.mdx @@ -0,0 +1,41 @@ +--- +title: "Simulate and debug Tempo transactions" +seoTitle: "Tempo Transaction Debugger and Simulator | Tempo Docs" +description: Simulate a Tempo transaction before submitting it, then inspect execution traces, balance changes, events, gas use, and revert details. +--- + +# Simulate and debug Tempo transactions + +Use the [Tempo transaction debugger](https://explore.tempo.xyz/simulate) to test a transaction against current Mainnet state without broadcasting it. The simulation shows what the transaction would do, which helps you diagnose reverts and verify contract interactions before signing. + +## Run a transaction simulation + +:::::steps + +### Open the transaction debugger + +Go to [explore.tempo.xyz/simulate](https://explore.tempo.xyz/simulate). + +### Enter the transaction request + +Provide the sender, recipient, value, and calldata your application would submit. Use `0` for value when the call does not transfer value. + +### Simulate the transaction + +Run the simulation. The debugger executes the request against current chain state without submitting it to Tempo. + +### Inspect the execution + +Review the decoded calls, balance changes, events, execution trace, gas use, and any revert details. Confirm that the addresses, token amounts, and contract calls match the intended result before you broadcast the transaction. + +::::: + +## Diagnose a failed transaction + +Start with the first reverted call in the execution trace. Its decoded error or return data usually identifies the contract and condition that rejected the transaction. Then check balance changes and events to verify which operations ran before the revert. + +If you need a local or command-line workflow, use [`cast run`](/docs/sdk/foundry#interact-and-debug-tempo-contracts-with-cast) to replay a transaction by hash against a Tempo RPC endpoint. + +## Protect sensitive transaction data + +Simulations do not broadcast transactions, but the request is sent to the debugger service. Do not enter private keys, signatures, secrets, or confidential calldata. A transaction simulation only reflects chain state at the time it runs, so state-dependent results can change before submission. diff --git a/src/pages/docs/guide/tempo-transaction/index.mdx b/src/pages/docs/guide/tempo-transaction/index.mdx index 0d7b326c..ecdb2df2 100644 --- a/src/pages/docs/guide/tempo-transaction/index.mdx +++ b/src/pages/docs/guide/tempo-transaction/index.mdx @@ -17,6 +17,8 @@ Transaction [SDKs](#integration-guides) are available for TypeScript, Rust, Go, If you're integrating with Tempo, we **strongly recommend** using Tempo Transactions, and not regular Ethereum transactions. Learn more about the benefits below, or follow the guide on issuance [here](/docs/guide/issuance). +Before broadcasting a transaction, use the [Tempo transaction debugger](/docs/guide/debug-transactions) to simulate it and inspect its execution trace, balance changes, events, gas use, and revert details. + \ diff --git a/src/pages/docs/tools.mdx b/src/pages/docs/tools.mdx index 331d0cb2..f81e5dca 100644 --- a/src/pages/docs/tools.mdx +++ b/src/pages/docs/tools.mdx @@ -44,6 +44,12 @@ If you are integrating a product, start with the TypeScript SDKs and Tempo API. ## Operate and Inspect + Date: Fri, 7 Aug 2026 01:48:13 +0000 Subject: [PATCH 2/6] docs: reframe transaction debugger link --- src/pages/docs/guide/tempo-transaction/index.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pages/docs/guide/tempo-transaction/index.mdx b/src/pages/docs/guide/tempo-transaction/index.mdx index ecdb2df2..a7a6aa3d 100644 --- a/src/pages/docs/guide/tempo-transaction/index.mdx +++ b/src/pages/docs/guide/tempo-transaction/index.mdx @@ -17,7 +17,9 @@ Transaction [SDKs](#integration-guides) are available for TypeScript, Rust, Go, If you're integrating with Tempo, we **strongly recommend** using Tempo Transactions, and not regular Ethereum transactions. Learn more about the benefits below, or follow the guide on issuance [here](/docs/guide/issuance). -Before broadcasting a transaction, use the [Tempo transaction debugger](/docs/guide/debug-transactions) to simulate it and inspect its execution trace, balance changes, events, gas use, and revert details. +:::tip[Debug failed transactions] +If a transaction fails, use the [Tempo transaction debugger](/docs/guide/debug-transactions) to reproduce the failure and inspect its execution trace, balance changes, events, gas use, and revert details. +::: Date: Fri, 7 Aug 2026 01:49:11 +0000 Subject: [PATCH 3/6] docs: remove Foundry debugger link --- src/pages/docs/sdk/foundry/index.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/pages/docs/sdk/foundry/index.mdx b/src/pages/docs/sdk/foundry/index.mdx index a7fd9c62..3df5f320 100644 --- a/src/pages/docs/sdk/foundry/index.mdx +++ b/src/pages/docs/sdk/foundry/index.mdx @@ -206,8 +206,6 @@ For more verification options including verifying existing contracts and API ver ### Interact and debug Tempo contracts with `cast` -For a browser-based workflow, use the [Tempo transaction debugger](/docs/guide/debug-transactions) to simulate a transaction and inspect decoded calls, balance changes, events, gas use, and reverts before broadcasting. - ```bash # Check that your contract is deployed: cast code \ From 7834390e9238016d363442d1ab17dcec6096b6b9 Mon Sep 17 00:00:00 2001 From: Derek Cofausper <256792747+decofe@users.noreply.github.com> Date: Fri, 7 Aug 2026 01:49:39 +0000 Subject: [PATCH 4/6] docs: simplify transaction debugger guide --- src/pages/docs/guide/debug-transactions.mdx | 22 ++++++--------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/src/pages/docs/guide/debug-transactions.mdx b/src/pages/docs/guide/debug-transactions.mdx index 4eb915bb..72165a15 100644 --- a/src/pages/docs/guide/debug-transactions.mdx +++ b/src/pages/docs/guide/debug-transactions.mdx @@ -6,36 +6,26 @@ description: Simulate a Tempo transaction before submitting it, then inspect exe # Simulate and debug Tempo transactions -Use the [Tempo transaction debugger](https://explore.tempo.xyz/simulate) to test a transaction against current Mainnet state without broadcasting it. The simulation shows what the transaction would do, which helps you diagnose reverts and verify contract interactions before signing. +Use the [Tempo transaction debugger](https://explore.tempo.xyz/simulate) to test a transaction against current Mainnet state without broadcasting it. Simulate a transaction to diagnose reverts or verify a contract interaction. ## Run a transaction simulation :::::steps -### Open the transaction debugger +### Enter the transaction -Go to [explore.tempo.xyz/simulate](https://explore.tempo.xyz/simulate). - -### Enter the transaction request - -Provide the sender, recipient, value, and calldata your application would submit. Use `0` for value when the call does not transfer value. +Open [explore.tempo.xyz/simulate](https://explore.tempo.xyz/simulate), then provide the sender, recipient, value, and calldata. ### Simulate the transaction -Run the simulation. The debugger executes the request against current chain state without submitting it to Tempo. +Run the simulation against current chain state. ### Inspect the execution -Review the decoded calls, balance changes, events, execution trace, gas use, and any revert details. Confirm that the addresses, token amounts, and contract calls match the intended result before you broadcast the transaction. +Review the decoded calls, balance changes, events, execution trace, gas use, and any revert details. ::::: ## Diagnose a failed transaction -Start with the first reverted call in the execution trace. Its decoded error or return data usually identifies the contract and condition that rejected the transaction. Then check balance changes and events to verify which operations ran before the revert. - -If you need a local or command-line workflow, use [`cast run`](/docs/sdk/foundry#interact-and-debug-tempo-contracts-with-cast) to replay a transaction by hash against a Tempo RPC endpoint. - -## Protect sensitive transaction data - -Simulations do not broadcast transactions, but the request is sent to the debugger service. Do not enter private keys, signatures, secrets, or confidential calldata. A transaction simulation only reflects chain state at the time it runs, so state-dependent results can change before submission. +Start with the first reverted call in the execution trace. Its decoded error or return data usually identifies the contract and condition that rejected the transaction. From f2c4b621f44f2eca4015a6196a81ee39215d54ee Mon Sep 17 00:00:00 2001 From: Derek Cofausper <256792747+decofe@users.noreply.github.com> Date: Fri, 7 Aug 2026 02:12:58 +0000 Subject: [PATCH 5/6] docs: document transaction simulation outputs --- src/pages/docs/guide/debug-transactions.mdx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/pages/docs/guide/debug-transactions.mdx b/src/pages/docs/guide/debug-transactions.mdx index 72165a15..9ba17750 100644 --- a/src/pages/docs/guide/debug-transactions.mdx +++ b/src/pages/docs/guide/debug-transactions.mdx @@ -8,6 +8,14 @@ description: Simulate a Tempo transaction before submitting it, then inspect exe Use the [Tempo transaction debugger](https://explore.tempo.xyz/simulate) to test a transaction against current Mainnet state without broadcasting it. Simulate a transaction to diagnose reverts or verify a contract interaction. +:::info[What simulations show] +- **Gas flame graphs** show which calls consume the most gas. +- **State changes** show how balances and contract storage would change. +- **Event logs** show the events the transaction would emit. +- **Call traces** show the transaction's execution path across contracts. +- **Revert errors** identify the call and error that caused a failure. +::: + ## Run a transaction simulation :::::steps From 027941dcaf9927045a6ea619923719cdf3cd9dba Mon Sep 17 00:00:00 2001 From: Derek Cofausper <256792747+decofe@users.noreply.github.com> Date: Fri, 7 Aug 2026 02:15:24 +0000 Subject: [PATCH 6/6] test: update audited docs page count --- src/lib/docs-seo-metadata.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/docs-seo-metadata.test.ts b/src/lib/docs-seo-metadata.test.ts index c9d4f9e8..d8cfe7ef 100644 --- a/src/lib/docs-seo-metadata.test.ts +++ b/src/lib/docs-seo-metadata.test.ts @@ -89,7 +89,7 @@ describe('docs SEO metadata', () => { /^seoTitle:/m.test(source) && path.relative(docsRoot, file) !== 'api/reference.mdx', ) - expect(auditedPages).toHaveLength(106) + expect(auditedPages).toHaveLength(107) for (const { file, source } of auditedPages) { const title = frontmatterString(source, 'title')