Uniswap Universal Router Decoder

2 Nov 2026

Audited by AddonAudit

io.github.Elnaril/uniswap-universal-router-decoder

Decode and encode Uniswap Universal Router calldata (V2, V3, V4). Read-only: never signs or sends.

Install

uvx uniswap-universal-router-decoder==4.0.0

Built for

Any MCP client. Works as a standard MCP server, so it can be added to any MCP client, including Claude, Cursor and Codex. Based on the listing description and package type. This is not a certification from those products.

Transports: stdio.

Links

Other

Audit report

Audited by AddonAudit.

Sandbox handshake completed and the published checks passed.

Automated smoke test, not a security guarantee.

Version
4.0.0
Audited
2 Nov 2026
Package
pypi uniswap-universal-router-decoder
Advisories
0 critical, 0 high, 0 medium, 0 low
Time to ready
1940 ms
Network
Disabled
  • Pass Version. Pinned pypi uniswap-universal-router-decoder@4.0.0
  • Pass Known vulnerabilities. No critical, high, or medium advisories were returned.
  • Pass License. MIT
  • Pass Install scripts. No preinstall, install, postinstall, or prepare script.
  • Pass Credential patterns. No credential patterns in the published artifact.
  • Pass Package size. 59.0 KB
  • Pass Maintainer activity. Active 6 days ago.
  • Pass Sandbox. MCP handshake completed. 8 tools listed. Tool count measured offline in our sandbox; some servers load more tools when connected.

Tools

  • decode_transaction Fetch a transaction from an RPC endpoint and decode the Universal Router call it contains. :param tx_hash: the hash of the transaction sent to the Universal Router :param rpc_url: the RPC endpoint to use, overriding $RPC_URL / $ETH_RPC_UR
  • decode_calldata Decode raw Universal Router calldata (no RPC endpoint needed). :param calldata: the "0x"-prefixed calldata of a transaction sent to the Universal Router :return: {"function": <name>, "params": ...} or an "error"
  • encode_calldata Build the Universal Router calldata of an "execute" call from its decoded form. The mirror of decode_calldata(): where the decoder turns calldata into commands, this turns the decoded commands back into calldata, so a route can be decoded
  • decode_error Decode a Uniswap Universal Router / Permit2 / V4 custom error. :param error_data: the "0x"-prefixed error data, ex: "0x5d1d0f9f" :return: {"name": <signature>, "args": ...} or an "error"
  • decode_v3_path Decode a V3 router path into the ordered tokens and pool fees. :param fn_name: "V3_SWAP_EXACT_IN" or "V3_SWAP_EXACT_OUT" :param path: the "0x"-prefixed encoded V3 path :return: {"fn_name": ..., "path": [<token>, <fee>, <token>, ...]} or a
  • encode_v3_path Encode a V3 swap path from its ordered tokens and the pool fees between them. The mirror of decode_v3_path(): where the decoder turns a packed path into tokens and fees, this turns tokens and fees into the packed path to use as the "path"
  • list_commands Describe the decoded call format and every Universal Router command. :return: {"format": <the envelope>, "commands": [<command description>, ...]}
  • describe_command Describe one Universal Router command: its parameters, their types and, where the type is not enough, their meaning. :param command: the command name, as it appears in a decoded call (ex: V3_SWAP_EXACT_IN, decreaseLiquidity) :return: {"co

Raw audit JSON

Metadata checks

  • Repository activity: Active in the last 180 days
  • License: Recognized SPDX id
  • Metadata quality: High

Score 100 uses public metadata only. It is separate from the audit tier. Payment never changes a score. How listings are checked.

Audited by AddonAudit

Free to use on this listing. The mark links back to this page and does not change the score or the tier.

Light

Audited by AddonAudit
[![Audited by AddonAudit](https://addonaudit.com/badges/audited.svg)](https://addonaudit.com/addon/io-github-elnaril-uniswap-universal-router-decoder/)
<a href="https://addonaudit.com/addon/io-github-elnaril-uniswap-universal-router-decoder/"><img alt="Audited by AddonAudit" src="https://addonaudit.com/badges/audited.svg" width="168" height="20"></a>
Audited by AddonAudit
[![Audited by AddonAudit](https://addonaudit.com/badges/audited-dark.svg)](https://addonaudit.com/addon/io-github-elnaril-uniswap-universal-router-decoder/)
<a href="https://addonaudit.com/addon/io-github-elnaril-uniswap-universal-router-decoder/"><img alt="Audited by AddonAudit" src="https://addonaudit.com/badges/audited-dark.svg" width="168" height="20"></a>
Audited by AddonAudit
[![Audited by AddonAudit](https://addonaudit.com/badges/audited-seal.svg)](https://addonaudit.com/addon/io-github-elnaril-uniswap-universal-router-decoder/)
<a href="https://addonaudit.com/addon/io-github-elnaril-uniswap-universal-router-decoder/"><img alt="Audited by AddonAudit" src="https://addonaudit.com/badges/audited-seal.svg" width="240" height="240"></a>
Audited by AddonAudit
[![Audited by AddonAudit](https://addonaudit.com/badges/audited-seal-dark.svg)](https://addonaudit.com/addon/io-github-elnaril-uniswap-universal-router-decoder/)
<a href="https://addonaudit.com/addon/io-github-elnaril-uniswap-universal-router-decoder/"><img alt="Audited by AddonAudit" src="https://addonaudit.com/badges/audited-seal-dark.svg" width="240" height="240"></a>

A remote image can be changed by whoever hosts it. To keep the badge fixed, download the SVG and commit it to your own repo, for example as .github/addonaudit-badge.svg. The snippet below uses that local file and links to this page.

Download light SVG · Download dark SVG

[![Audited by AddonAudit](.github/addonaudit-badge.svg)](https://addonaudit.com/addon/io-github-elnaril-uniswap-universal-router-decoder/)

Get your add-on audited

Request a free audit of a public MCP server or AI coding add-on. A request does not buy a listing, a tier, or a score change.

Request an audit Featured option

Data notes
  • Tool count is not part of this registry record, so it is blank.