ERC-4626のシェアと資産: ボールト残高の意味を確認する
シェア残高と原資産トークンの推定量は、同じポジションを異なる単位で表します。償還プレビューでは、さらに受け取れる量を確認します。
ERC-4626ボールトの残高はシェア数であり、原資産トークンの同じ数量を自動的に意味するわけではありません。 ボールトの資産を特定し、一般的な換算、償還プレビュー、所有者の償還上限を区別します。これらは1つのポジションに関する異なる問いに答えます。
ウォレットに100シェア、プロトコルの画面に原資産トークン120枚と表示されても、どちらかが間違っていると決めつけないでください。まず各数値が何を測っているか確認します。本記事は既存の保有分を読み取り専用で照合する方法です。ボールトへの預け入れや償還を勧めるものではありません。
シェアトークンと原資産を特定する
ERC-4626標準では、ボールトのシェアをERC-20トークンとして定義しています。ボールトのbalanceOf(account)はそのシェアを数え、asset()は原資産トークンのコントラクトを特定します。確認するネットワークとアカウントに加えて、両方のコントラクトアドレスを記録してください。
見慣れたティッカーだけでは不十分です。信頼できる経路から公式文書や既知の取引にアクセスし、対象ボールトの正確なデプロイ先を確認します。次に、原資産の名前だけでなくアドレスを、意図したトークンと比較します。コピーされたコントラクトも見慣れたメソッド名を公開できるため、それだけで目的のボールトとは判断できません。
両側の単位を確認します。シェアの生の数量にはシェアトークンの小数桁数を使い、資産出力の生の値には原資産の小数桁数を使います。両者は同じとは限りません。OpenZeppelinのボールトガイドには、シェアの精度を追加する実装の説明があります。トークンの小数桁ガイドでは、表示用変換がまだ必要な整数の見分け方を説明しています。すでに表示用に変換された数量を再度スケーリングしないでください。
知りたいことに合う数値を選ぶ
別のボールトからコピーしたレートを掛けるのではなく、確認済みコントラクトの文書にある読み取りを使います。OpenZeppelinのAPIリファレンスでは、換算、プレビュー、上限のメソッドを分けています。
| 読み取り | 戻り値の単位 | 答える問い |
|---|---|---|
balanceOf(account) |
シェア | このアカウントは何シェア持つか? |
convertToAssets(shares) |
原資産 | 一般的な資産換算量はいくらか? |
previewRedeem(shares) |
原資産 | このシェア量の償還見込みはいくらか? |
maxRedeem(owner) |
シェア | この所有者は今何シェア償還できるか? |
convertToAssetsは、手数料や実際の交換のスリッページを除いた理想的な換算を示します。個別の出金見積もりではありません。previewRedeemは出金手数料を含み、現在の条件を反映しますが、意図的に償還上限を無視します。その上限については、所有者のmaxRedeemを読み取ります。標準のメソッド定義は、この違いを明示しています。
したがって、プレビューが正でも、上限がそれより小さい場合やゼロの場合があります。読み取りによって資金が予約されるわけでもありません。後の取引までに状態が変わる可能性があります。申請手順が必要ならそれも含め、そのボールトの文書にある出金条件に従ってください。非同期拡張や異なるインターフェースを使うボールトには、専用の手順が必要です。
比較では1つの保有分として扱う
すべての数値が読みやすい単位に変換済みである、仮のスナップショットを考えます。あるアカウントが100シェアを保有しています。その数量に対し、ボールトはconvertToAssetsで原資産トークン120枚、previewRedeemで原資産トークン119枚を返します。別途、そのアカウントのmaxRedeemは40シェアです。
120トークンは一般的な換算量です。119トークンは100シェア全体のプレビューであり、今100シェアすべてを償還できる証拠ではありません。40シェアという上限はシェア単位です。原資産トークン40枚として比較してはいけません。許可されるシェア量を調べる場合、その量のプレビューを別に取得し、全残高のプレビューがそのまま使えるとは仮定しないでください。
これらはラベルと対象範囲を示す架空の数値です。稼働中のボールトの見積もり、手数料表、特定プロトコルのレート計算ではありません。この例のためにウォレットへの照会や取引の実行はしていません。
100シェアとその120トークン換算量を、別々の保有分として足さないでください。同じポジションを表しています。ウォレットがボールトの外でも原資産トークンを持つなら、その実際のウォレット残高は別に記録します。法定通貨換算の合計を比べる際は、プロトコル側の値を加える前に、トラッカーがどちらの表現を計上済みか確認します。ポートフォリオ照合ガイドは、数量の欠落と価格の欠落、未対応ポジションを区別する助けになります。
資金を動かさず同じ時点の記録をそろえる
すでに信頼しているエクスプローラーやコントラクトリーダーを使います。この手順は文書に基づく確認方法であり、本記事では稼働中のボールトで実証していません。一次資料の確認日は2026年10月25日です。
- ポジションの識別情報を確認する。 ネットワーク、アカウント、ボールトの完全なコントラクトアドレスを記録します。そのデプロイ先が、確認したいERC-4626インターフェースを使うことを検証します。
- 資産と単位を特定する。
asset()と、シェアおよび資産の小数桁のスケールを記録します。生の整数と表示用数量を区別して、アカウントのシェア残高を読み取ります。 - 適切な読み取りを選ぶ。 会計上の比較には、その正確なシェア量の
convertToAssetsを記録します。償還見積もりにはpreviewRedeemを記録し、プレビューと明記します。 - 所有者ごとの上限を別に確認する。
maxRedeem(owner)とプロトコルの出金条件を読みます。取得できない上限をシェア残高で代用したり、正のプレビューを償還許可と見なしたりしないでください。 - 観測時点をそろえ、ラベルを付ける。 残高、換算、プレビュー、上限は同じブロックで取得するのが望ましいです。リーダーが最新状態への個別呼び出ししか提供しない場合、各時刻を保存し、記録時点が異なる可能性を記します。
- 1つのポジションを照合する。 シェア数、資産換算量、償還情報をまとめて保持します。読み取りに失敗した項目は不明とし、エラーを保存します。ゼロと結論づける前に、アカウント、コントラクト、ネットワーク、インターフェースを調べます。
これらの公開情報の読み取りに署名、承認、リカバリーフレーズ、送金は不要です。残高を見せるだけなのにサイトがいずれかを要求したら、その操作を中止してください。コントラクトの応答は表示を説明する助けになりますが、その安全性を保証しません。
換算量は利益や売却価格ではない
資産換算量は、あるシェア量をボールトが原資産トークンでどう表すかに答えます。元の預け入れに対する利益、市場での売却価格、将来の償還保証は示しません。手数料、丸め、ボールトの変化、原資産自体の価格は別に記録します。
この手順をすべての受取証トークンに当てはめないでください。例えばstETHとwstETHには、独自の会計と換算方法が文書化されています。残高が似て見えても、ERC-4626の動作を示すことにはなりません。
正確なボールトと資産を特定し、シェア量と記録時点を示せて、各画面が換算、プレビュー、上限のどれを表示するか説明できれば確認は完了です。重要な読み取りを取得できなければ、その部分は未確認のままにします。ポジションを動かすかは別の判断であり、表示残高の説明には必要ありません。
よくある質問
ERC-4626の1シェアは常に原資産トークン1枚ですか?
いいえ。シェアと資産は異なる単位で、換算方法はボールトに依存します。対象コントラクトと記録時点に対応する文書の換算方法を確認してください。トークン名や小数桁数から1対1と推測してはいけません。
previewRedeemは、その量を今引き出せる証拠ですか?
いいえ。指定したシェア量で受け取る資産を推定し、出金手数料は含みますが、償還上限は考慮しません。所有者のmaxRedeemとボールトの実際の出金条件を別々に確認してください。取引までに状態が変わる可能性もあります。
シェアと資産換算量を足し合わせるべきですか?
いいえ。両方が同じポジションを表す場合、シェア量と資産換算量を持つ1つの保有分として記録します。ウォレットに別途保有する原資産トークンは別の残高です。