TezosのFA1.2とは?
FA1.2は、Tezosブロックチェーン上のスマートコントラクト向けの代替可能トークン規格です。トークンの送金、トークン使用の承認、残高の確認、Allowance(使用許容量)の確認、総供給量の読み取りに共通のインターフェースを定義します。FA1.2は、Tezos Improvement Proposal 7(TZIP-7)で正式に定義されています。
この規格は代替可能トークン専用に設計されています。つまり、特定のFA1.2資産の各単位は、同じ資産の他の単位と交換可能です。FA1.2コントラクトは、決済トークン、ガバナンストークン、ラップド暗号資産、価値安定型資産、ロイヤルティポイント、アプリケーション内通貨、その他の分割可能なデジタル資産を表すことができます。FA1.2はスマートコントラクトのインターフェースであり、それ自体が暗号資産なのではありません。各FA1.2トークンは、それぞれ独自のTezosスマートコントラクトによって作成・管理されます。コントラクトは、Tezosアカウントアドレスとトークン残高を対応付けた台帳を管理します。ユーザーはコントラクトを操作してトークンを送金したり、別のアカウントやアプリケーションがユーザーに代わって一定量を使用できるよう承認したりします。FA1.2は、トークンの価格、法的地位、経済的な用途、最大供給量、管理体制を定めるものではありません。これらの特性は、個々のトークンコントラクトと、それを管理するプロジェクトによって異なります。FA1.2の意味
FAはFinancial Application(金融アプリケーション)の略です。「1.2」は、TZIP-7が定義する代替可能資産インターフェースのバージョンを示します。この規格は、Tezosで先行して行われていた代替可能トークンのインターフェース開発を基に、委任されたトークン送金のための正式な承認システムを追加したものです。FA1.2という用語は、規格そのものと、その規格に沿って実装されたトークンの両方を指すことがあります。ただし、技術的にFA1.2に準拠するのはスマートコントラクトです。発行者が名称、シンボル、ウェブサイト、マーケティング上の説明でFA1.2という用語を使っているだけでは、そのトークンがFA1.2に対応していることにはなりません。デプロイ済みコントラクトが、所定のパラメーター型と動作を備えた必須のエントリーポイントを公開している必要があります。FA1.2が作られた理由
スマートコントラクトは、さまざまな方法でトークンの動作を定義できます。共通規格がなければ、ウォレットや分散型アプリケーションは、代替可能トークンごとに独自の連携コードを用意する必要があります。あるトークンでは送金に特定の名称を使い、別のトークンではまったく異なるパラメーター構造を使うこともあります。残高照会や使用許可の動作も、コントラクトごとに異なる可能性があります。FA1.2は予測可能なインターフェースを提供し、こうした分断を軽減します。ウォレットは、既知のtransferエントリーポイントを使ってトークン送金を準備できます。アプリケーションは、既知のapproveエントリーポイントを通じて使用許可を求められます。インデクサーは残高の変化を特定し、トークンの動きを一貫した形式で表示できます。開発ツールは、コントラクトが想定されるFA1.2インターフェースを公開しているか確認できます。Octezの最新FA1.2ドキュメントには、互換性の確認、トークンの送金、使用者の承認、トークン情報の読み取りに使える専用ツールが掲載されています。
標準化は相互運用性を高めますが、特定のコントラクトの安全性、価値、誠実な管理を保証するものではありません。FA1.2トークンの仕組み
FA1.2トークンは、アカウント残高の台帳を保存するTezosスマートコントラクトによって管理されます。トークンが発行されると、コントラクトは1つ以上のアカウントアドレスに残高を割り当てます。保有者はTezosプロトコルレベルの残高管理を通じて直接トークンを送るのではなく、コントラクトを呼び出してトークンを送金します。コントラクトは送信元アカウント、送信先アカウント、要求された数量、呼び出し元の権限、利用可能な残高を検証します。検証に成功すると、コントラクトは送信元の残高から数量を差し引き、送信先の残高に加算します。検証に失敗した場合、トランザクションは取り消され、台帳に変更は加えられません。アカウントは、別のアカウントやスマートコントラクトに対し、自身の残高から一定量を使用する権限を与えることもできます。承認された数量はAllowance(使用許容量)と呼ばれます。委任された送金が行われると、通常、送金額に応じて残りのAllowanceが減少します。コントラクトは標準化された照会インターフェースを通じて、残高、Allowance、総供給量の情報を提供できます。代替可能性とは?
代替可能性とは、資産の各単位を相互に交換できる性質です。特定のFA1.2トークンの1単位は、同じトークンの別の1単位と、コントラクトで定義された特性が同じです。通常、保有者が受け取ったトークンの個々の単位を追跡する必要はありません。アカウント台帳では、固有のトークン識別子ではなく数量を記録します。このため、FA1.2は通貨、クレジット、投票権、担保、分割可能な請求権として機能する資産に適しています。FA1.2は、個々の単位に固有の識別情報と別個のメタデータ記録を割り当てるようには設計されていません。固有のデジタル資産には、一般に非代替性トークン(NFT)に対応する、より柔軟なトークン規格が使われます。FA1.2トークンの識別方法
FA1.2トークンは、主にそのトークンを管理するTezosスマートコントラクトアドレスによって識別されます。FA1.2では、無関係な複数の資産に多数のトークンIDを使うのではなく、1つのコントラクトにつき1種類の代替可能トークンを表します。FA1.2のメタデータが、後発のTezos規格に関連付けられたトークンメタデータ構造を使う場合、トークンIDは0でなければなりません。トークン名やティッカーシンボルは、信頼できる一意の識別子ではありません。異なるコントラクトが同じ名称、シンボル、画像、小数桁設定を使う可能性があります。悪意ある発行者が正規資産のブランドを模倣することもあります。FA1.2トークンを送金、承認、購入する前に、信頼できるプロジェクト資料で完全なコントラクトアドレスを確認してください。FA1.2の主なエントリーポイント
FA1.2インターフェースは、送金、承認、残高照会、Allowance照会、総供給量照会のエントリーポイントを定義します。Octezの公式インターフェースリファレンスでは、transfer、approve、getBalance、getAllowance、getTotalSupplyが主なFA1.2操作として挙げられています。
個々のコントラクトには、ミント、バーン、一時停止、管理、償還、その他プロジェクト固有の動作に関するエントリーポイントが追加される場合があります。追加のエントリーポイントが、自動的にFA1.2規格の一部となるわけではありません。Transferエントリーポイント
transferエントリーポイントは、指定した数量のトークンをあるアドレスから別のアドレスへ移します。呼び出しでは、送信元アドレス、送信先アドレス、送金数量を指定します。呼び出し元が自身のアカウントからトークンを移す場合、コントラクトはそのアカウントに十分なトークンがあるか確認します。呼び出し元が別のアカウントからトークンを移す場合、その所有者から十分なAllowanceを得ている必要があります。委任された送金が行われると、使用者の残りのAllowanceが減少します。残高またはAllowanceが不足している場合、送金は失敗します。FA1.2のtransferエントリーポイントは、所有者による直接送金と委任送金の両方を1つのインターフェースで扱います。Approveエントリーポイント
approveエントリーポイントを使うと、トークン保有者は、保有するトークンのうち限定された数量を送金する権限を使用者に与えられます。使用者は別のユーザーアカウントの場合も、スマートコントラクトの場合もあります。アプリケーションはこの仕組みを利用して、決済の受け取り、流動性の提供、担保のロック、取引の実行、その他の承認された操作を行えます。承認によってトークンが直ちに移動することはありません。後続の送金呼び出しで使用できるAllowanceが作成されます。許可された送金が行われるまでは、保有者がトークンを保有し続けます。GetBalanceエントリーポイント
getBalanceエントリーポイントは、指定したアドレスに紐付くFA1.2トークン残高を返します。表示される残高は、プロトコルレベルのtez残高ではなく、トークンコントラクト内に保存されています。ウォレット、インデクサー、アプリケーションはこの情報を使って、アカウントが管理するトークン数量を表示できます。最新のOctezツールでは、ユーザーが情報を返すトランザクションを別途送信しなくても、対応する残高照会をオフチェーンで実行できます。GetAllowanceエントリーポイント
getAllowanceエントリーポイントは、あるアドレスが別のアドレスから送金できる残りの数量を返します。照会では、トークン所有者と承認された使用者の両方を指定します。結果が0の場合、その使用者は現在、その所有者からFA1.2のAllowanceを得ていません。正の値は、記録された権限に基づいて、まだ送金可能な最大数量を示します。GetTotalSupplyエントリーポイント
getTotalSupplyエントリーポイントは、コントラクトが認識しているFA1.2トークンの総単位数を返します。実装にミントまたはバーン機能が含まれる場合、総供給量は変化する可能性があります。総供給量の照会だけでは、保有者間でトークンがどの程度集中しているかは分かりません。また、将来さらにトークンを発行できるかどうかも分かりません。FA1.2のAllowanceとは?
FA1.2のAllowanceとは、トークン所有者が別のアドレスに付与する、上限付きの使用許可です。所有者がアプリケーションに100トークンの使用を承認したとします。そのアプリケーションは、コントラクトのルールに従い、所有者の残高から最大100トークンを送金できます。アプリケーションが30トークンを送金すると、通常、残りのAllowanceは70トークンになります。記録されたAllowanceが大きくても、所有者の利用可能残高を超えて送金することはできません。また、そのAllowanceを別のFA1.2トークンコントラクトに対して使うこともできません。Allowanceは、使用、変更、またはリセットされるまでオンチェーンに記録されます。ウェブサイトからウォレットの接続を解除しても、Allowanceが自動的に取り消されることはありません。取り消しが必要な場合、保有者はオンチェーンで承認内容を更新する必要があります。FA1.2とOperator権限の違い
FA1.2では数値でAllowanceを指定します。所有者は、使用者が送金できる数量の上限を選択します。送金が行われると、通常、Allowanceは減少します。Operator方式のトークンモデルでは、一般に、数値が減少する上限を指定せず、特定のトークン種別に対する権限を付与します。この違いは、ウォレットのインターフェースやアプリケーションのセキュリティに影響することがあります。FA1.2で50単位の承認を、無制限の管理権限を付与するかのように表示してはいけません。同様に、Operator権限を一度限りの数値上限付きAllowanceと解釈してはいけません。FA1.2のAllowance変更を慎重に扱うべき理由
既存のトークンAllowanceを変更すると、競合状態が生じる可能性があります。所有者による新しい承認が確定する前に、使用者が古いAllowanceを使おうとする場合があります。その後、新しいAllowanceが有効になると、使用者がそれも使おうとする可能性があります。TZIP-7は、0以外のAllowanceから別の0以外のAllowanceへの直接変更を禁止することで、この問題の一部に対処しています。一般に、新しい0以外の数量を設定する前に、所有者はAllowanceを0にする必要があります。TZIP-7のAllowance仕様では、0にリセットするだけでは、敵対的なタイミングに関するあらゆる状況への完全な保証にはならないことも説明されています。
慎重に操作するには、置き換え後のAllowanceを付与する前に、Allowanceを0にするトランザクションが取り込まれるのを待つ必要があります。高額資産を扱うアプリケーションは、更新処理中に使用者がAllowanceを使用していないかも確認してください。FA1.2のAllowanceの例
ウォレットがFA1.2トークンを1,000単位保有しているとします。所有者は、分散型アプリケーションに200単位の使用を承認します。その後、アプリケーションがスマートコントラクトへ75単位を送金します。所有者のトークン残高は925単位になります。アプリケーションの残りのAllowanceは125単位になります。アプリケーションがさらに150単位を送金しようとすると、残りのAllowanceが不足しているためトランザクションは失敗します。アプリケーションがアクセスする必要がなくなった場合、所有者はAllowanceを0にできます。FA1.2は無制限の承認に対応している?
コントラクトが受け入れる場合、FA1.2保有者は非常に大きな数値を承認できます。一部のアプリケーションでは、実質的に無制限の承認として扱われることがあります。大きなAllowanceを設定すると、承認トランザクションを繰り返す必要が減ります。一方、承認したコントラクトが侵害されたり、悪意ある動作をしたり、誤って利用されたりした場合、危険にさらされる数量も増加します。可能であれば、必要と合理的に判断できる数量だけを承認してください。古くなった、または不要になったAllowanceは0にリセットしてください。FA1.2残高の保存方法
通常、FA1.2の実装では、トークンコントラクト内の台帳に残高が保存されます。台帳は、各保有者のアドレスと自然数で表されるトークン数量を対応付けます。実装によっては、残高とAllowanceを構造化された1つの台帳エントリーにまとめて保存します。TZIP-7は、所有者の記録に残高と使用者別のAllowanceマップを含められる、標準化されたインデックス可能な構成を説明しています。公開上の動作が必須インターフェースに一致していれば、過去のすべての実装が同じ内部ストレージ構造を使用する必要はありません。アプリケーションは、特定の非公開ストレージ構造を前提とせず、標準エントリーポイントまたは信頼できるインデックス済みデータを通じて操作してください。FA1.2はトークンIDを使う?
FA1.2は単一トークンのコントラクト規格であり、通常の送金で複数の独立したトークン種別を区別するためのトークンIDは使いません。FA1.2のメタデータを新しい規格と共通のメタデータ形式で表す場合、トークンIDは0に固定されます。1つのアドレスで複数の異なる代替可能トークンを管理する必要があるコントラクトには、通常、マルチアセット規格の方が適しています。コントラクトアドレスも知らなければ、トークンID 0だけでFA1.2資産を一意に特定できると考えてはいけません。FA1.2のメタデータの仕組み
元のFA1.2インターフェースは、主に台帳とAllowanceの動作に焦点を当てています。TZIP-7は、完全なコントラクトメタデータシステムを独自に定義していません。現在のトークンメタデータに関する指針では、Tezosのマルチアセット規格に関連する一般的なトークンメタデータ形式が使われています。FA1.2のメタデータで使用するトークンIDは0でなければなりません。メタデータには、トークン名、シンボル、小数桁数、説明、その他の表示情報を含められます。TZIP-16のコントラクトメタデータに従って、コントラクトレベルの情報を公開することもできます。
TZIP-16では、オンチェーンに保存する方法のほか、コンテンツアドレス型ストレージやウェブサービスなどのオフチェーンの場所を参照する方法にも対応しています。メタデータはウォレットやエクスプローラーによる資産表示に役立ちますが、コントラクトがビジネスロジックで明示的に使用しない限り、実際の台帳を制御するものではありません。FA1.2トークンのDecimalsとは?
FA1.2の残高は、自然数で表される単位として保存されます。Decimals(小数桁数)のメタデータ項目は、表示時に小数点をどこに置くかをウォレットに伝えます。コントラクト上の生の残高が1,500,000で、トークンの小数桁数が6だとします。ウォレットには残高が1.5トークンと表示されます。スマートコントラクトには、引き続き最小単位である1,500,000単位が記録されます。小数桁数によって、トークンの市場価格、総供給量、希少性が決まるわけではありません。Decimalsの値が誤っていると、ウォレットやアプリケーションに誤解を招く数量が表示される可能性があります。FA1.2は最大供給量を定める?
いいえ。FA1.2では固定の最大供給量を必須としていません。コントラクトは総供給量を読み取る方法を提供しますが、発行者が独自のミント機能やバーン機能を追加する場合があります。トークンによっては、供給量を固定して発行し、追加発行の方法を設けないことがあります。別のトークンでは、管理者、ガバナンスコントラクト、または定められたプロトコル上の手続きにより追加発行が可能な場合があります。供給量が恒久的に制限されていると判断する前に、デプロイ済みコントラクトと管理者権限を確認してください。公表された供給量は現時点の状態を示すものであり、将来の発行量を必ずしも示すものではありません。FA1.2ではミントが必須?
いいえ。ミントはFA1.2で必須とされるエントリーポイントではありません。コントラクトのデプロイ時に全供給量を作成することもできます。管理者または別のスマートコントラクトが制御する独自のミント機能を含めることもできます。ミント方針では、誰がトークンを作成できるのか、供給上限があるのか、その権限を移転または削除できるのかを明示してください。無許可または無制限のミントは、既存保有者の持分を希薄化させ、トークン市場を混乱させる可能性があります。FA1.2ではバーンが必須?
いいえ。バーンも任意です。独自のバーン機能を使うと、コントラクトのルールに従って残高と総供給量を恒久的に減らせます。保有者が自身のトークンをバーンできる場合も、管理者のみに制限される場合もあります。アクセスできないアドレスにトークンを送っても、コントラクトが報告する総供給量が必ず更新されるとは限りません。真のコントラクトレベルのバーンでは、設計上そう意図されている場合、該当する残高と総供給量の両方を減らす必要があります。FA1.2とtezの違い
tezはTezosブロックチェーンのネイティブ暗号資産です。FA1.2トークンはスマートコントラクトによって作成・管理されます。tezの残高はTezosプロトコルが直接管理します。FA1.2の残高は、個々のトークンコントラクトのストレージで管理されます。FA1.2トークンを送金するトランザクションであっても、Tezosの取引手数料は通常tezで支払います。FA1.2残高を保有していても、トークンの送金や承認トランザクションに必要なtezが自動的に確保されるわけではありません。Tezosのトークンドキュメントでは、プロトコルレベルのtezと、スマートコントラクトの台帳で表されるトークンとの違いを説明しています。
FA1.2とFA2の違い
FA1.2は、1つのスマートコントラクトで管理する1種類の代替可能トークン専用に設計されています。FA2は、より新しく柔軟なトークンインターフェースです。FA2は、代替可能トークン、NFT、譲渡不可資産、ハイブリッドモデル、1つのコントラクト内の複数のトークンIDに対応できます。FA1.2では、使用者に対する数値形式のAllowanceを使います。標準的なFA2では、数値が減少するAllowanceではなく、トークンごとのOperator権限を一般に使用します。FA1.2では個別のリクエストによる送金構造を使いますが、FA2ではバッチ形式の送金・残高照会構造を使います。FA2は、独自の送金ポリシーにもより明示的に対応しています。SmartPyの最新ガイダンスでは、より幅広い用途に対応することから、新しいトークンコントラクトにはFA2を推奨しています。この推奨によって、既存のFA1.2コントラクトが無効になるわけではありません。最新のOctezツールでも、引き続きFA1.2専用のサポートが提供されています。FA1.2とFA2.1の違い
FA2.1はFA2ファミリーの発展案で、有限Allowance、イベント、オンチェーンビュー、Ticket関連機能などを含みます。有限Allowanceの仕組みは、FA2の幅広いマルチアセット構造を維持しながら、FA1.2でなじみのある用途に対応します。現在のSmartPyドキュメントでは、FA2.1はドラフトとして説明されています。
新しい規格が提案されても、既存のFA1.2コントラクトが自動的に変更されることはありません。ウォレットやアプリケーションの対応状況は、規格ごとに個別に確認してください。FA1.2トークンをFA2に変換できる?
通常、ラベルを変更するだけでFA1.2コントラクトをFA2に変換することはできません。2つの規格では、インターフェースと権限モデルが異なります。移行を希望するプロジェクトは、新しいFA2コントラクトをデプロイし、管理された変換プロセスを設けることができます。このプロセスでは、旧トークンをロックまたはバーンし、対応する新しいトークンを発行する場合があります。別の設計では、残高のスナップショットを取得し、代替資産を配布することもできます。移行には、技術、ガバナンス、セキュリティ、ユーザー体験に関するリスクがあります。公式の移行コントラクトを確認し、旧トークンの交換をうたう一方的なリンクには注意してください。FA1.2はラップド暗号資産に対応できる?
はい。FA1.2コントラクトで、Tezos上のラップド暗号資産を表すことができます。ラップドトークンは、カストディ、ブリッジ、ミント、償還の仕組みを通じて別の資産の価値を追跡することを目的とした、独立したスマートコントラクト資産です。FA1.2インターフェースは送金とAllowanceを標準化しますが、ラップドトークンが完全に裏付けられていることを保証しません。準備金、償還条件、カストディアンの管理体制、ブリッジのセキュリティ、ミント権限、裏付け証明を評価する必要があります。Tezos公式のラップドトークンに関するガイダンスでは、ラップド資産は技術的に元の暗号資産とは別の資産であると説明されています。
FA1.2は価値安定型トークンに対応できる?
はい。FA1.2トークンは、法定通貨、コモディティ、暗号資産、その他の参照資産の価値を目標とするよう設計できます。FA1.2自体が目標価値を維持するわけではありません。価格の安定性は、発行者、担保、準備金、償還の仕組み、市場の流動性、オラクルシステム、経済設計によって異なります。FA1.2に準拠したトークンでも、意図されたペッグを失う可能性があります。技術規格への準拠を、準備金の質や価格安定性の証拠とみなしてはいけません。ウォレットでのFA1.2トークン表示
ウォレットはFA1.2コントラクトを識別し、ユーザー残高を照会し、利用可能なメタデータを読み取ることができます。トークン名、シンボル、小数桁数を反映した残高、ロゴ、取引履歴などを表示する場合があります。一部のウォレットは、各コントラクトを直接読み取る代わりにインデクサーを利用します。Tezosのインデクサードキュメントでは、インデクサーがFA1.2およびFA2のトークン情報を整理し、アプリケーションから利用しやすくすると説明されています。
メタデータが欠落している、対応していない、またはまだインデックスされていない場合、トークンが自動的に表示されないことがあります。ウォレットに表示されないからといって、オンチェーン残高が必ず0とは限りません。対応するブロックチェーンツールで、コントラクトと台帳情報を確認できます。分散型アプリケーションによるFA1.2の利用
分散型アプリケーションは、一定量のFA1.2トークンを使用する承認を求めることができます。承認後、アプリケーションはトークンコントラクトを呼び出し、所有者の残高からトークンを送金できます。この仕組みは、預け入れ、交換、担保、サブスクリプション、オークション、貸付、決済、その他の暗号資産関連の操作に利用できます。アプリケーションは、合理的に必要な数量を超えるAllowanceを要求すべきではありません。署名する前に、トークンコントラクト、使用者のアドレス、承認数量を確認してください。アプリケーション側も、残高不足、Allowance不足、承認内容の変更を安全に処理する必要があります。FA1.2の送金はバッチ処理できる?
FA1.2のtransferエントリーポイントは、1回の呼び出しにつき1つの送信元、1つの送信先、1つの数量を扱います。ただし、Tezosのオペレーションには複数のコントラクト呼び出しを含められます。最新のOctezツールでは、FA1.2コントラクトをまたいで1つの送信元から複数の受取人に送金するバッチ処理コマンドがサポートされています。バッチ処理は、配布やトレジャリー運用の利便性を高めることがあります。アトミックな処理内で失敗が発生すると、一部だけが実行されるのではなく、関連するオペレーション全体が失敗する場合があります。大規模なバッチは多くのガスを消費する可能性があるため、慎重にテストする必要があります。FA1.2規格のエラー
TZIP-7は、Allowance不足や安全でないAllowance変更に関するエラーを定義しています。所有者のトークン残高が足りない場合、送金は失敗する可能性があります。委任送金では、使用者のAllowanceが要求数量を下回る場合に失敗する可能性があります。0以外のAllowanceを別の0以外のAllowanceに直接置き換えようとすると、承認が失敗する場合があります。個々の実装では、管理、一時停止、ミント、バーン、その他の独自機能に関する追加エラーが使われることがあります。アプリケーションは、残高、Allowance、権限、コントラクトのポリシーのいずれに問題があるのかユーザーが把握できるような表現でエラーを表示してください。FA1.2トークンのセキュリティリスク
FA1.2への準拠は、スマートコントラクトの安全性を証明するものではありません。コントラクトは正しいエントリーポイントを公開していても、内部ロジックに欠陥や悪意ある処理を含む可能性があります。管理者が新しいトークンのミント、送金の一時停止、アカウントの凍結、メタデータの変更、重要なアドレスの差し替えを行える場合があります。承認された使用者が侵害された場合、利用可能なAllowanceの範囲内でトークンを送金できます。偽のトークンでも、名称やシンボルを模倣することで正規資産のように見せかけられる場合があります。ラップドトークンは、FA1.2の台帳が正しく機能していても、担保不足に陥る可能性があります。コントラクトのソースコード、監査情報、管理体制、供給量の制御、Allowance、償還ルールを確認してください。Allowanceに関するセキュリティリスク
Allowanceを付与すると、別のアドレスに所有者のトークン残高の一部を操作する直接的な権限を与えることになります。悪意あるアプリケーションは、承認直後にAllowanceを使う可能性があります。コントラクトが侵害されると、侵害前に付与された権限が利用される可能性があります。長期間使用されていない大きなAllowanceが有効なまま残ることがあります。使用者のアドレスを慎重に確認し、説明のないトランザクションを承認しないでください。不要になったAllowanceは0にリセットしてください。FA1.2のAllowanceを付与または取り消す際に、秘密鍵やリカバリーフレーズを求められることはありません。管理者権限に関するリスク
独自のFA1.2コントラクトには、特権を持つ管理者が設定されている場合があります。管理者は、ミント、バーン、一時停止、アカウント凍結、ブラックリスト、手数料、コントラクトのアップグレードなどを制御できる場合があります。こうした権限は、セキュリティやコンプライアンス対応に役立つことがあります。一方で、中央集権化や権限濫用のリスクも生じます。管理者が単一アカウント、マルチシグコントラクト、ガバナンスシステム、不変のルールのいずれなのか確認してください。管理者権限を移転できるか、恒久的に削除できるかも確認してください。供給量と希薄化のリスク
現在の供給量が限られているように見えても、将来無制限にミントできる権限が残されている場合があります。追加発行により、総供給量に占める既存の各トークンの割合が小さくなる可能性があります。供給上限に実効性があるのは、デプロイ済みコントラクト、または同等に強力なガバナンス上の制約によって執行されている場合に限られます。ウェブサイトやソーシャルメディアの投稿での約束は、オンチェーンのミント権限に優先しません。循環供給量、総供給量、将来の供給可能量を区別してください。偽トークンのリスク
誰でも、よく知られたトークン名やシンボルを使ってTezosスマートコントラクトをデプロイできます。ウォレットのメタデータによって、無関係なトークンが既知の資産に似て見えることがあります。表示名よりもコントラクトアドレスの方が信頼性の高い識別情報です。信頼できるプロジェクトの一次情報から、確認済みのコントラクトアドレスを入手してください。ウォレットに一方的に届いたトークンは、独自に確認するまでは価値があると判断しないでください。不明なトークンのメタデータに含まれるリンクが、フィッシングサイトにつながる可能性もあります。スマートコントラクトのリスク
プログラム上のエラーにより、不正な送金、誤った残高、トークンのロック、供給量の会計処理の不具合が生じる可能性があります。インターフェース規格に準拠しているだけでは、すべての内部処理が正しく動作することは証明されません。独立した監査はリスクの低減に役立ちますが、脆弱性がないことを保証するものではありません。ミント、償還、手数料、アップグレード、担保の複雑なロジックを持つコントラクトには、基本的なFA1.2エントリーポイントを超える分析が必要です。Tezosのトークンリスクに関するガイダンスでは、ソースコードの公開状況、監査、供給上限、送金ルールの確認が推奨されています。
秘密鍵とウォレットのセキュリティ
FA1.2トークンの所有権は、最終的に、記録された残高を管理する権限を持つTezosアカウントの管理に依存します。アカウントの秘密鍵を入手した攻撃者は、送金や承認に署名できます。正規のトークンコントラクトが、残高の表示やトランザクションの準備のためにユーザーのリカバリーフレーズを必要とすることはありません。Octezの鍵管理ドキュメントでは、tezおよびFAトークンの操作に関する安全な保管方法と署名方法が強調されています。
オペレーションを承認する前に、署名デバイスでトランザクションの詳細を確認してください。FA1.2トークンの確認方法
信頼できる一次情報を通じて、Tezosコントラクトの完全なアドレスを確認します。コントラクトが必須のFA1.2インターフェースを公開しているか確認します。トークン名、シンボル、小数桁数、総供給量を確認します。誰がミント、バーン、一時停止、凍結、アップグレードを実行できるか確認します。新しいアプリケーションを利用する前に、既存のAllowanceを確認します。価値の高い資産を扱う場合は、独立したセキュリティ評価を確認します。ラップドトークンや価値安定型トークンについては、FA1.2インターフェースとは別に、準備金と償還ルールを確認します。ティッカーシンボル、ウォレットのアイコン、ソーシャルメディアのメッセージだけを真正性の証拠とみなさないでください。FA1.2開発のベストプラクティス
開発者は、TZIP-7で定められたエントリーポイントの型と権限動作に正確に従う必要があります。所有者による直接送金とAllowanceに基づく送金は、分けてテストしてください。テストでは、残高0、残高不足、Allowance不足、数量0の送金を検証します。Allowanceの変更では、0以外から別の0以外への直接変更を防ぐ標準的な保護策に従います。ミント、バーン、一時停止、管理機能を含める場合は、その内容を明確に文書化してください。可能な限り、安定性と完全性が保護されたストレージをメタデータに使用してください。アプリケーションは、無関係なトランザクションの送信元を信頼するのではなく、直近のコントラクト間操作に適切な呼び出し元IDを使用してください。ウォレット、インデクサー、Octezツールとの連携をテストしてください。価値の高いコントラクトは、デプロイ前に独立したセキュリティレビューを受けてください。FA1.2に関するよくある誤解
FA1.2はTezosのネイティブ暗号資産ではありません。FA1.2は個別のトークンやプロジェクトではありません。代替可能トークンのコントラクトが実装できる規格です。FA1.2は、固有のNFTを主要なトークンモデルとしてサポートするものではありません。FA1.2への準拠は、固定供給量を保証しません。ミントとバーンは、必須の標準エントリーポイントではありません。承認によってトークンが直ちに送金されるわけではありません。ウォレットの接続を解除しても、オンチェーンのAllowanceは取り消されません。トークン名やシンボルだけでは、コントラクトを一意に識別できません。新規開発でFA2が優先規格となっても、既存のFA1.2コントラクトがなくなるわけではありません。FA1.2インターフェースが正しくても、トークンの安全性、裏付け、あらゆる条件下での譲渡可能性、金融的価値は保証されません。よくある質問
TezosのFA1.2とは何ですか?
FA1.2は、TZIP-7で定義されたTezosの代替可能トークン向けスマートコントラクト規格です。FA1.2のFAは何の略ですか?
FAはFinancial Application(金融アプリケーション)の略です。FA1.2は暗号資産ですか?
いいえ。代替可能な暗号資産やその他のトークン化資産を作成・管理するためのインターフェースです。FA1.2は現在もサポートされていますか?
はい。最新のOctezドキュメントでも、FA1.2に対応した互換性確認、送金、承認、照会ツールが提供されています。FA1.2はTezosの最新トークン規格ですか?
いいえ。FA2の方が新しく柔軟性があり、FA2.1は現在、FA2ファミリーの発展案としてドラフト段階と説明されています。開発者は新しいFA1.2トークンを作るべきですか?
Tezosの最新開発ガイダンスでは一般に、新しいトークンコントラクトにはFA2が推奨されています。ただし、プロジェクトの要件や既存連携によって異なる場合があります。FA1.2でNFTを作成できますか?
FA1.2は、固有の非代替性資産ではなく、代替可能トークン向けに設計されています。1つのFA1.2コントラクトで複数のトークン種別を管理できますか?
この規格では、1つのコントラクトにつき1種類の代替可能トークンを表します。FA1.2トークンはどのように識別されますか?
主に、台帳を管理するTezosコントラクトアドレスで識別されます。FA1.2のメタデータではどのトークンIDを使いますか?
共通のトークンメタデータ形式で使用するトークンIDは0でなければなりません。FA1.2の残高はどこに保存されますか?
FA1.2スマートコントラクトのストレージ台帳に記録されます。FA1.2のtransferエントリーポイントとは何ですか?
残高と権限の確認後、指定した数量を送信元アドレスから送信先アドレスへ移します。FA1.2のapproveエントリーポイントとは何ですか?
トークン所有者の残高から、指定した数量を上限として使用者が送金する権限を与えます。FA1.2のAllowanceとは何ですか?
承認されたアドレスがトークン所有者の残高から送金できる残りの数量です。Allowanceは使用後に減少しますか?
はい。委任送金が行われると、通常、送金数量に応じて残りのAllowanceが減少します。ウォレットを接続するとAllowanceが作成されますか?
いいえ。ユーザーが該当する承認オペレーションに署名し、送信した場合にのみAllowanceが作成されます。ウォレットの接続を解除するとAllowanceは取り消されますか?
いいえ。所有者がオンチェーンでAllowanceを更新する必要があります。通常は0に設定します。0以外のAllowanceを別の0以外の数量に直接変更できますか?
TZIP-7は、既知の競合状態への対策として、0以外から別の0以外へのAllowanceの直接変更を禁止しています。Allowanceはどのように変更すべきですか?
まずAllowanceを0に設定し、確定を待ってから、途中で使用されていないか確認したうえで新しい数量を設定してください。FA1.2ではミントが必須ですか?
いいえ。ミント機能は任意で、個々の実装によって異なります。FA1.2ではバーンが必須ですか?
いいえ。バーンも任意の独自機能です。FA1.2は供給上限を保証しますか?
いいえ。コントラクトの実際のミント権限と供給ルールを確認する必要があります。FA1.2の残高はどうすれば確認できますか?
対応するウォレット、インデクサー、コントラクト照会、またはOctezのFA1.2残高コマンドで台帳残高を確認できます。FA1.2のAllowanceはどうすれば確認できますか?
getAllowanceインターフェースまたは対応するインデクサーで、所有者と使用者の間に設定された残りの権限を確認できます。FA1.2の総供給量はどうすれば確認できますか?
getTotalSupplyインターフェースで、トークンコントラクトに記録された現在の供給量を確認できます。FA1.2の取引手数料はトークンで支払いますか?
Tezosプロトコルの取引手数料は通常tezで支払います。FA1.2でラップド暗号資産を表せますか?
はい。ただし、FA1.2への準拠は準備金、償還、ブリッジの安全性を保証しません。FA1.2で価値安定型資産を表せますか?
はい。ただし、この規格自体は資産が意図された価格を維持することを保証しません。FA1.2の管理者はトークンを凍結できますか?
凍結や一時停止の権限は規格上必須ではありませんが、独自の実装に含まれる場合があります。FA1.2トークンをFA2に移行できますか?
プロジェクトが別途移行プロセスを設けることはできますが、旧コントラクトが自動的にFA2対応になるわけではありません。規格に準拠していればFA1.2トークンは安全ですか?
いいえ。規格への準拠はインターフェースの互換性を高めますが、コードの安全性、誠実な管理、裏付け、流動性、価値を保証しません。まとめ
FA1.2は、TZIP-7で正式に定義されたTezosの代替可能トークン規格です。送金、承認、残高、Allowance、総供給量情報の共通インターフェースを定めています。FA1.2スマートコントラクトは、Tezosアドレスと交換可能なトークン残高を対応付けた台帳を管理します。数値形式のAllowanceにより、保有者はアプリケーションや他のアカウントに対し、限定された数量のトークンを送金する権限を与えられます。Allowanceはオンチェーンで有効な状態が続き、競合状態やコントラクト侵害のリスクを生む可能性があるため、慎重に管理する必要があります。FA1.2では、ミント、バーン、一時停止、凍結、メタデータ管理、固定の最大供給量は必須とされていません。これらの機能は個々のコントラクトの実装によって異なります。新しいTezosトークンの開発では、現在、より柔軟なFA2が標準となっていますが、FA1.2コントラクトも引き続きサポートされ、利用されています。使い慣れていないFA1.2トークンを利用する前に、コントラクトアドレス、Allowanceの数量、供給量管理、管理者権限、メタデータ、監査履歴、償還条件を確認してください。FA1.2の標準化はTezosのウォレット、アプリケーション、インデクサー、開発ツール間の互換性を高めますが、トークンの安全性、正当性、流動性、価値を保証するものではありません。関連コンテンツ
WhatsMiner M30S++
Web3ドメイン
Web3プロジェクト
ホット
現在、市場で大きな注目を集めているトレンドの暗号資産
トップ取引高
取引高が最も多い暗号資産

