見出し画像

Nドラ・アトミックスワップv1マニュアル



はじめに

アトミックスワップとは異なるチェーン間でのトークンの取引をブロックチェーンのみを使って行う技術です。

この技術は当事者同士の個人間での取引となりNFTDriveEXを含む第三者を全く通さず行われます。

相手を信用することなくブロックチェーン上の取引データのみを検証・承認することで取引を成立させることが可能になります。

Nドラv1ではSymbolのNFTをEthereume、 Polygon、上トークンで購入または交換が可能になります。

※暗号資産であるSymbol:XYM(6BED913FA20223F8)と他のトークンとの交換は出来ません。制限するためにスマートコントラクトに以下のコードが含まれます。個人間での取引に本技術を利用する場合は交換業ライセンスは不要ですが、世界でも稀な技術であるため、法解釈を含む余計なトラブルを防ぐ観点から念のためv1ではこのような措置を致します。

  modifier isXym(bytes8 _mosaicId) {
    require(bytes8(0x6BED913FA20223F8) != _mosaicId, 'Exchange of xym is  prohibited');
 _;
  }

HTLCcontract


また、取引で生じたいかなる損害も負いかねますのでご理解の上自己責任にてご利用ください。



アトミックスワップの準備

※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アドレス


アドレスリンクボタン

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受け取り完了!

このトランザクションが承認されると購入者の元にNFTが届きます。

MyNFTから確認します。

MyNFTを押す


受け取り完了しています!

相手が支払いを受け取るまで以下の取引が表示されます。

まだ支払いを受け取っていない。

10日に期限を過ぎても受け取っていない場合は払い戻しで引き出すことが出来ます。

支払いを受け取る

先に購入者がNFTを受け取ると解除キーがネットワーク上に公開されます。
取引の期限内に必ず支払いを引き出して受け取ってください。
期限を過ぎると受け取り拒否となり購入者が引き出した時点で支払いを受け取れなくなります。

ロック解除を受信します。

支払いを受け取れます。

詳細をクリックします。

解除を押して支払いを受け取ります。

解除を押してパスワードを入力しOKを押します。

エラーが発生しました、最初のほうに以下のように書かれています。
Error: insufficient funds for intrinsic transaction cost

これは引き出しに必要なネットワーク手数料(MATICもしくはETH等)が足りないという事です。
取り出しには少しですがネットワーク手数料が必要です。
必ず事前に準備・確認してからご利用ください。

手数料を補充して無事完了!

スキャンで確認します。

https://polygonscan.com/tx/0xe92b4aeaecdb0b18196a0dc81e7779a6dea51948041bbd335a2e6e0cb87cbd33


3MATICが購入金額 0.6MATICはロイヤリティ

トランザクション手数料は以下でした。

Transaction Fee:
0.011174126583696138 MATIC($0.01)

以上で Nドラ・アトミックスワップになります。

事前に手数料をしっかり用意しましょう。

3MATICで購入できました!

リカバリー

購入リクエスト(オファー)送信中にエラーもしくはリロードした場合はリカバリー機能が有効になる場合があります。
※復元を保証するものではありません。
※オファー以外のステップでは1つのTransactionのみ発生しますのでリカバリーの必要はありません、再度実行してください。



オファーステップでは3つのトランザクションを送信します。

  1. 支払料金をスマートコントラクトへ送金(Transfer)

  2. スマートコントラクトに転送の許可(Approve)

  3. ハッシュロック(HTLC)

送金後にエラーが発生し中断した場合、もう一度同じ内容で購入リクエスト(オファー)を送信することでその続きから再度処理を行うことができます。
※リカバリーデータが上書きされるため他の取引を行う前に実行する必要があります。
※無視して別の取引を進める時は「オファー処理の中断を検出」をクリックしてアラートを解除してください。

無視する場合は解除

※正しくリカバリーすることでスマートコントラクトへの重複送金を防止しします。(1.2をスキップさせます)

Transferが正常に終了している時は以下のメッセージが表示されます。
スマートコントラクトへ支払いが送信済みとなり、取り出すためには別の取引を行う前(リカバリーデータが上書きされるため)にハッシュロックを完了させる必要があります。(ハッシュロックの完了後、取引期限を経過した場合に取り出せます)

リカバリーが起動する。

リカバリーの方法は失敗したオファーと全く同じ内容で再度送信してください。ステップに応じて重複処理が自動的にスキップされます。

強制リカバリーモード

購入リクエスト(オファー)トランザクション中に予期しない不具合が発生した場合に設定からリカバリーモードを選択して任意のステップからリトライすることができます。
事前にスマートコントラクトへの支払いが済んでいるのかブロックチェーンエクスプローラーで確認します。
Scanを押してブロックチェーンエクスプローラーを表示します。

3つのトランザクションが正常に処理されたパターン

上の画像ではハッシュロック・Approve・Transferと問題ない状態。

ハッシュロックに失敗しているパターン

上の画像ではApprove・Transferとハッシュロックに失敗(無い)している状態
このようにスマートコントラクトへの支払い(Transfer)が完了している場合は強制リカバリーモードを利用してハッシュロックからリトライする事で追加の支払いを回避することが出来ます。

設定を開きます。
強制リカバリーモードを選択します。

強制リカバリーモードを押す


エラーを検出

もう一度同じオファーを送ると自動で支払いをスキップします。
リカバリーは100%動作を保証するもではありません。

以上。

いいなと思ったら応援しよう!