スタンダードトークンを送金する
本ドキュメントは、Rosetta Construction API を使用した ICP 送金の方法について説明します。トランザクションの流れの概要については、Construction API 概要 を参照してください。
送金手順
送金額 T
をアドレス A
からアドレス B
に転送するトランザクションは、3つのオペレーションを含むことになります:
TRANSACTION
タイプの操作がアドレスA
に-T
の値で適用されます。TRANSACTION
タイプの操作がアドレスB
に金額T
で適用されます。FEE
タイプの操作が/construction/metadata
エンドポイントによって提案された金額でアドレスA
に適用されます(ConstructionMetadataResponse タイプのsuggested_fee
フィールドを参照してください)。
トランザクション内の操作の順序は関係ありません。
1回のトランザクションで複数の送金を行うことはできません。そのような取引の結果は未定義です。
前提条件:
アドレス
A
は少なくともT
+suggested_fee
の ICP を保持していること。アドレス
A
は、サブアカウントがトランザクションの署名に使用した公開鍵に由来する Principal になっていること。FEE
オペレーションで指定する金額はsuggested_fee
と絶対値で等しくなっていること。
オプションのメタデータフィールド
Rosetta ノードは ConstructionPayloadRequest で、以下のオプションのメタデータフィールドを認識します:
memo
はトランザクションに関連付けられた任意の64ビット符号なし整数です。これを使用して、データをトランザクションに関連付けることができます。例えば、データベースの行のキーに memo を設定することができます。memo
フィールドに有効な値は0
から264 - 1
(18446744073709551615
) までの範囲です。ingress_start
、ingress_end
およびcreated_at_time
は 64 ビットの符号なし整数で、UTC タイムゾーンの UNIX エポックからナノ秒経ったかを表現しています。これらのフィールドを使って、あらかじめトランザクションを構築して署名しておき、後で署名付きトランザクションを提出することができます。署名されたトランザクションはcreated_at_time
(デフォルトでは/construction/payloads
エンドポイントを呼び出した時点)から 24 時間以内に送信することが可能です。
例
以下は、アドレス bdc4ee05d42cd0669786899f256c8fd7217fa71177bd1fa7b9534f568680a938
からアドレス b64ec6f964d8597afa06d4209dbce2b2df9fe722e86aeda2351bd95500cf15f8
まで 1 ICP を譲渡したトランザクションのサンプルです。
{
"network_identifier": {
"blockchain": "Internet Computer",
"network": "00000000000000020101"
},
"operations": [
{
"operation_identifier": {
"index": 0
},
"type": "TRANSACTION",
"account": {
"address": "bdc4ee05d42cd0669786899f256c8fd7217fa71177bd1fa7b9534f568680a938"
},
"amount": {
"value": "-100000000",
"currency": {
"symbol": "ICP",
"decimals": 8
}
}
},
{
"operation_identifier": {
"index": 1
},
"type": "TRANSACTION",
"account": {
"address": "b64ec6f964d8597afa06d4209dbce2b2df9fe722e86aeda2351bd95500cf15f8"
},
"amount": {
"value": "100000000",
"currency": {
"symbol": "ICP",
"decimals": 8
}
}
},
{
"operation_identifier": {
"index": 2
},
"type": "FEE",
"account": {
"address": "bdc4ee05d42cd0669786899f256c8fd7217fa71177bd1fa7b9534f568680a938"
},
"amount": {
"value": "-10000",
"currency": {
"symbol": "ICP",
"decimals": 8
}
}
}
],
"public_keys": [
{
"hex_bytes": "97d0b490ec4097b3653878274b1d9dd00bb1316ea3df0bfdf98327ef68fade63",
"curve_type": "edwards25519"
}
]
}
レスポンス
{
"transaction_identifier": {
"hash": "97f4a8289f96ef46d8c8fa911f13cc402e4f69b36f4dd1ddc2579bb54dba5557"
},
"block_index": 1043
}