教育目的のみであり、投資助言ではありません。投資では損失が生じる可能性があります。
要点
送金手数料付きトークンは、送金処理の内部で価値の一部を差し引くため、受取人に届く数量が transfer または transferFrom に渡した数量を下回ることがあります。差し引かれた分は焼却、再分配、別のウォレットへの送付、流動性への組み入れなどに使われます。送信者、受取人、取引状況によって規則が変わる場合もあります。
主なリスクは公表された手数料率だけではありません。購入、売却、ウォレット間送金で料率が異なることがあり、特定アドレスが免除または遮断され、特権アカウントが規則を変更できる場合もあります。そのため、見積もりの取得や購入の成功は、後で妥当なコストで売却できる証明にはなりません。
仕組み
一般的な自動マーケットメーカーのルーターは、名目上の入力数量から各出力を計算します。一方、Uniswap V2 Router02 は送金手数料付きトークン専用のスワップ関数を備え、ペアの残高変化から実際の入力を推定し、受取人の残高増加が amountOutMin 以上かを確認します。互換性はトークン記号だけでなく、使用するルーター、経路、トークンの挙動に左右されます。
トークン手数料は、プール手数料や価格への影響と複合的に作用します。複数ホップの経路では送金処理が複数回発生し、免除規則や売買判定により実効料率が方向ごとに変わることもあります。現在のオンチェーン状態から、購入と売却を別々に見積もる必要があります。
例
トレーダーが 1,000 USDC を支払うとします。プール手数料と価格への影響で価値が 2% 減り、その後 5% の購入手数料が差し引かれます:1,000 × 0.98 × 0.95 = 931。市場価格が変わらないまま、10% の売却手数料とさらに 2% の取引摩擦が生じると、受取額は約 US$821 です:931 × 0.90 × 0.98 ≈ 821。市場価格が下落していなくても、往復損失は約 18% になります。
これは説明用の例であり、見積もりではありません。控除の順序は異なる可能性があり、手数料率、流動性、経路、コントラクト状態も取引の間に変化します。推定値を信頼する前に、現在のコントラクトとプール状態を読み取り、同じウォレットと正確な経路でシミュレーションしてください。
リスクと確認事項
- コントラクトアドレスとデプロイ済みコードを照合し、手数料処理、免除、ブロックリスト、手数料上限、所有者ロール、アップグレード制御、一時停止権限を確認します。
- 見積出力とシミュレーション上の受取人残高の変化を比較し、経路内のすべてのルーターとホップが送金手数料の挙動に明示的に対応しているか確認します。
- 同じウォレットから売却をシミュレーションし、全額を失っても許容できる少額だけで往復テストを行います。成功しても、後の規則や流動性が変わらない保証にはなりません。
amountOutMinは実際に許容できる損失下限に設定します。0 にしたり、スリッページを繰り返し広げたりすると価格保護を失いますが、リバート、ブロックリスト、過大なトークン手数料を回避することはできません。- 信頼できる最悪時の正味退出価値を基準にポジションを決めます。売却シミュレーションの失敗、未検証コード、不透明な権限、または管理者が実効的な遅延なしで手数料引き上げや送金遮断を行える場合は取引を見送ります。
よくある誤解
- 誤解 1:送金数量やイベントを見れば実際の受取額が分かる。受取人の残高変化を確認してください。送金手数料対応の実装が残高差を使うのには理由があります。
- 誤解 2:Gas やスリッページを増やせば必ず売却できる。Gas は取引の取り込みに、スリッページは最低価格に影響しますが、どちらもコントラクトのロジックを回避しません。
- 誤解 3:所有権が放棄されていればトークンは変更不能である。プロキシ管理者、別の特権ロール、外部設定コントラクトが挙動を制御できる場合があるため、実効的な権限経路をすべて確認します。
関連トピック
出典
- Uniswap V2 Router02 - Uniswap(参照日:2026-08-20)
- FeeOnTransferDetector.sol - Uniswap(参照日:2026-08-20)
- SC01:2026 Access Control Vulnerabilities - OWASP(参照日:2026-08-20)