---
id: TIP-1105
title: T11 Pricing Hardening Meta TIP
description: Meta TIP collecting precompile decoding and duplicate-validation pricing hardenings gated behind the T11 hardfork.
authors: Arsenii Kulikov (@klkvr)
status: Approved
related: TIP-1100
protocolVersion: T11
---

# TIP-1105: T11 Pricing Hardening Meta TIP

## Abstract

This meta TIP collects precompile pricing hardenings that activate at T11. Together they bound or
explicitly charge input-dependent ABI decoding and duplicate-validation work while preserving
legacy behavior before T11.

## Motivation

T11 hardens precompile pricing against calldata that maximizes decoding, allocation, or
duplicate-validation work. Because these changes affect gas costs and hardfork-gated execution
behavior, they are grouped here as one coordinated rollout alongside [TIP-1100](./tip-1100.md).

---

# Changes

## 1. Sort scope keys during validation

**PRs**: [#7298](https://github.com/tempoxyz/tempo/pull/7298),
[#7447](https://github.com/tempoxyz/tempo/pull/7447) · **Author**: @klkvr

At T11, AccountKeychain call-scope validation copies target and selector keys into contiguous
vectors, sorts them, and rejects equal adjacent values. Recipient duplicate checks use the same
sort-and-scan strategy. ZoneFactory rejects duplicate addresses within or across its
allowed-account, gateway, and sequencer role lists. T11 charges 20 gas for every value processed by
these checks; insufficient gas halts before sorting. Pre-T11 duplicate checks retain their
historical validation and gas behavior.

## 2. Require strict ABI decoding

**PRs**: [#7444](https://github.com/tempoxyz/tempo/pull/7444) · **Author**: @klkvr

At T11, every Tempo precompile dispatcher enables Alloy's strict ABI decoder while retaining the
existing 16 MiB decoder memory limit. Strict decoding validates token values and requires canonical
dynamic-data layout: gaps, overlaps, trailing data, and non-zero padding are rejected before
dispatch. Pre-T11 calls retain permissive decoding for historical compatibility.
