Nドラ・アトミックスワップv1マニュアル
はじめに
アトミックスワップとは異なるチェーン間でのトークンの取引をブロックチェーンのみを使って行う技術です。
この技術は当事者同士の個人間での取引となりNFTDriveEXを含む第三者を全く通さず行われます。
相手を信用することなくブロックチェーン上の取引データのみを検証・承認することで取引を成立させることが可能になります。
Nドラv1ではSymbolのNFTをEthereume、 Polygon、上トークンで購入または交換が可能になります。
※暗号資産であるSymbol:XYM(6BED913FA20223F8)と他のトークンとの交換は出来ません。制限するためにスマートコントラクトに以下のコードが含まれます。個人間での取引に本技術を利用する場合は交換業ライセンスは不要ですが、世界でも稀な技術であるため、法解釈を含む余計なトラブルを防ぐ観点から念のためv1ではこのような措置を致します。
また、取引で生じたいかなる損害も負いかねますのでご理解の上自己責任にてご利用ください。
アトミックスワップの準備
※EVMアドレスとはイーサリアムなどで使うアドレスの事です。
手数料はネットワークの状況によって変動しますのでご注意ください。
NFTを買う側
Symbol アドレス
EVMアドレス
0.1xym ※初回のみEVMアドレスをリンクするのに必要になります。変動します。通常0.05xymほどです。
0.00025 MATIC or ETH 購入オファーの送信手数料になります。変動します。
ETH MATIC WETH JPYC USDC USDT などの支払う分のトークン
Nドラルールによる作者アドレスへの20%のロイヤリティが必要になります。 ※支払いと同じトークンで支払われます。
NFTを売る側
Symbolアドレス
EVMアドレス
0.001 MATIC or ETH ※支払いの引き出しに必要になります。変動します。
0.1xym ※初回のみEVMアドレスをリンクするのに必要になります。変動します。通常0.05xymほどです。
0.03 xym 買う側にNFTの取り出しTX手数料を支払います。
SymbolのNFT 売るためのNFT
NFTの作者
取引でロイヤリティを受け取れるようにNFTの作者は事前に作者のSymbolアドレスとEVMアドレスをリンクする必要があります。
※作者のアドレスがリンクされてい無い場合は取引することができません。
事前に作者にEVMアドレスをリンクするように伝えてください。
※0.1XYMはIchGoのいいねtoEarn、NFTDriveADなどで入手可能です。
アドレスをリンクする
買う側、売る側、NFT作者の全員がSymbolアドレスとEVMアドレスをリンクする必要があります。
NFTDriveEXでは初めにSymbolアドレスは作成されています。
ネットワークを切り替えるとEVMアドレスが作られますので事前に準備しておいてください。
SymbolアドレスとEVMアドレスの2つが準備できましたら
Symbolネットワークに切り替えてリンクするSymbolアドレスを選択します。
Symbolアドレスの右上アドレスリンクボタンをクリックします。
リンクには0.05~0.1xymほどの手数料が必要になりますので別途ご用意ください。
アドレスリンクボタンを押すと確認画面が表示されるのではいを押す。
リンクするSymbolアドレスとEVMアドレスのセレクターが表示されるので、
紐づけるEVMを選択してください。
確認画面がでるのでOKをしてパスワードを入力します。
※Symbolアドレスのパスワードを入力してください。
リンクトランザクションが承認されるまで30秒ほどまってリロードする
とインジケータがリンクマークに変わります。
リンク完了となります。
リンク完了状態でリンクボタンを押すと変更・解除が可能です。
以上となります。
購入リクエストを送る
購入するするには購入したいNFTのNFTDriveEX共有URLを読み込みオファーの送信画面を表示します。ここまでは通常の手順と同じです。ネットワークはSymbolのままにしてください。
今回は左のムラサキの画像をMATICで購入していきます。
共有URLを読み込みます。
右の購入者画面にNFTが表示されます。
通常であればこのまま数量を設定して送信で完了です。
ネットワークを支払いたいトークンに合わせて切り替えます。
今回はMATICですのでpolygonを選択します。
支払いに使うアドレス、トークンを選択します。
通常の取引同様に数量を設定します。
今回は3MATICに設定します。
ロイヤリティ20%を作者に支払うので合計3.6MATICを払います。
入力に間違いがない事を確認してからパスワードを入力し購入リクエストを押します。
しばらくクルクルしますので閉じずにそのままお待ちください。
途中で閉じると失敗しますのでそのままの状態でお待ちください。
※10分ほど待っても進まない場合はリロードして目次:リカバリーに進んでください。
TXの送信が完了すると解除キーが表示されます。
必要に応じてダウンロードしてください。
解除キーはNFTDriveEXが利用できないなどのシステムにトラブルがあった際に自力で取り出すのに必要な情報となりますので取引完了まで大切に保管ください。
取引中は取引相手を含む他人には絶対に公開しないようにしてください。
※取引途中で端末を変えた場合はウォレットの復元を行う事で引き継がれます。
送信側・受信側それぞれにリクエストが表示されいます。
右上の詳細ボタンを押すと詳細が表示されます。
購入リクエストに署名する
売る側は受信した購入リクエストに署名します。
この署名にはNFTのロックを含みます。
詳細をクリックします。
ネットワーク、EVMアドレス、トークンなど情報が表示されています。
すべてオンチェーンからの情報ですのでよく確認して間違いなければ署名します。
署名しない場合は10日経過すると非表示になり、送信者は払い戻し可能になります。
署名ボタンをおしてパスワードを入力してOKを押します。
以上で署名(NFTロック)完了となります。
NFTを受け取る
署名を受けて購入したいNFTロックしてもらうと購入者はNFTを受け取るためにロックを解除しNFTを受けとります。
詳細をクリックします。
内容に間違いが無いか確認して解除をクリックします。
パスワードを入力してOKを押します。
NFTDriveEXがランダムにノードを選択するためSymbolノード間で情報が伝播していない場合があります(もしかするとSymbolの不具合かもしれません)。以下のようにエラーが表示された場合リトライもしくは少し待ってからリトライしてみてください。この作業で重複手数料などの資産を失うことはありませんので手順を繰り返してください。
※エラーが表示されてもTXが通っている場合もありますのでエクスプローラーなどをご確認ください。その間に投げた同じTXはキャンセルされるため手数料を払うことはありません。
このトランザクションが承認されると購入者の元にNFTが届きます。
MyNFTから確認します。
相手が支払いを受け取るまで以下の取引が表示されます。
10日に期限を過ぎても受け取っていない場合は払い戻しで引き出すことが出来ます。
支払いを受け取る
先に購入者がNFTを受け取ると解除キーがネットワーク上に公開されます。
取引の期限内に必ず支払いを引き出して受け取ってください。
期限を過ぎると受け取り拒否となり購入者が引き出した時点で支払いを受け取れなくなります。
ロック解除を受信します。
詳細をクリックします。
解除を押してパスワードを入力しOKを押します。
エラーが発生しました、最初のほうに以下のように書かれています。
Error: insufficient funds for intrinsic transaction cost
これは引き出しに必要なネットワーク手数料(MATICもしくはETH等)が足りないという事です。
取り出しには少しですがネットワーク手数料が必要です。
必ず事前に準備・確認してからご利用ください。
スキャンで確認します。
https://polygonscan.com/tx/0xe92b4aeaecdb0b18196a0dc81e7779a6dea51948041bbd335a2e6e0cb87cbd33
トランザクション手数料は以下でした。
Transaction Fee:
0.011174126583696138 MATIC($0.01)
以上で Nドラ・アトミックスワップになります。
事前に手数料をしっかり用意しましょう。
リカバリー
購入リクエスト(オファー)送信中にエラーもしくはリロードした場合はリカバリー機能が有効になる場合があります。
※復元を保証するものではありません。
※オファー以外のステップでは1つのTransactionのみ発生しますのでリカバリーの必要はありません、再度実行してください。
オファーステップでは3つのトランザクションを送信します。
支払料金をスマートコントラクトへ送金(Transfer)
スマートコントラクトに転送の許可(Approve)
ハッシュロック(HTLC)
送金後にエラーが発生し中断した場合、もう一度同じ内容で購入リクエスト(オファー)を送信することでその続きから再度処理を行うことができます。
※リカバリーデータが上書きされるため他の取引を行う前に実行する必要があります。
※無視して別の取引を進める時は「オファー処理の中断を検出」をクリックしてアラートを解除してください。
※正しくリカバリーすることでスマートコントラクトへの重複送金を防止しします。(1.2をスキップさせます)
Transferが正常に終了している時は以下のメッセージが表示されます。
スマートコントラクトへ支払いが送信済みとなり、取り出すためには別の取引を行う前(リカバリーデータが上書きされるため)にハッシュロックを完了させる必要があります。(ハッシュロックの完了後、取引期限を経過した場合に取り出せます)
リカバリーの方法は失敗したオファーと全く同じ内容で再度送信してください。ステップに応じて重複処理が自動的にスキップされます。
強制リカバリーモード
購入リクエスト(オファー)トランザクション中に予期しない不具合が発生した場合に設定からリカバリーモードを選択して任意のステップからリトライすることができます。
事前にスマートコントラクトへの支払いが済んでいるのかブロックチェーンエクスプローラーで確認します。
Scanを押してブロックチェーンエクスプローラーを表示します。
上の画像ではハッシュロック・Approve・Transferと問題ない状態。
上の画像ではApprove・Transferとハッシュロックに失敗(無い)している状態
このようにスマートコントラクトへの支払い(Transfer)が完了している場合は強制リカバリーモードを利用してハッシュロックからリトライする事で追加の支払いを回避することが出来ます。
設定を開きます。
強制リカバリーモードを選択します。
もう一度同じオファーを送ると自動で支払いをスキップします。
リカバリーは100%動作を保証するもではありません。
以上。