ブロックチェーンエンジニアが解説|コントラクトアドレスのエラー解消

「宛先アドレスがコントラクトアドレスのため、送信ができませんでした」

「コントラクトアドレスはご登録できません」

イーサリアムを利用してICOトークンを購入したり、海外取引所でマイナーコインを買う時など、上記のようなエラーが表示された経験はありませんか?そうしたコントラクトアドレスの送金エラーは「MyEtherWallet(マイイーサウォレット)」を利用することで解決可能です。 


1. コントラクトアドレスとは

コントラクトアドレスとは、分散型アプリケーション・プラットフォームを提供する仮想通貨のシステムに組み込まれた宛先のことです。分散型アプリケーション・プラットフォームは主にイーサリアムで採用されています。イーサリアムは他の仮想通貨と同じくブロックチェーンに取引情報を残しますが、まずは「契約」と呼ばれる情報を書き込んだ後、「実行」という情報を使って送金処理を済ませるのです。この「契約」情報は「コントラクト」と言い、11つのコントラクトにはアドレス(宛先)が付与されています。この宛先が「コントラクトアドレス」です。

コントラクトアドレスと送金アドレスは全く別物

「コントラクトアドレス」とは、実は「送金アドレス」とは全く異なります。送金アドレス(EOA)は送金の際に利用される宛先(メールアドレスのようなもの)なので、送金アドレスがないとお金が送れないのはイメージしやすいでしょう。一方、コントラクトアドレスはシステム上のものなので、当然ですがコントラクトアドレス宛にお金を送ってもデータは反映されません。


2. 「コントラクトアドレスはご登録いただけません」|解決方法は?

ICOセールでトークンを購入する、もしくは海外取引所でマイナーコインを買う多くの場合にイーサリアム通貨を利用します。イーサリアムは国内取引所でも購入できるため送金の利便性が高いですが、一方で時たま現れるのが以下のようなエラー。

「宛先アドレスがコントラクトアドレスのため、送信ができませんでした」

「コントラクトアドレスはご登録できません」

答えは「イーサリアム専用ウォレットを使う」ことです。

2-1. イーサリアム専用ウォレットを使う

ここでは、マイイーサウォレット(MyEtherWallet)を中心に紹介しています。

マイイーサウォレットからイーサリアムを送金する画面は上のものです。

宛先アドレス イーサリアムを送金する相手のアドレス番号
送出数量 送金するイーサリアムの数量
ガスリミット 送金手数料を指し送金スピードに影響を与える。通常は初期値の「21000」を使用
データ  ICO参加時に必要なデータを入力(指定された場合のみ)

マイイーサウォレットはセキュリティが高い

イーサリアムを保管しておけるウォレットはマイイーサウォレットだけではありません。他にもメタマスク(MetaMask)というウォレットも存在します。では、なぜメタマスクではなくマイイーサウォレットを利用した方が良いのでしょうか?実は、同じイーサリアムを預けておくウォレットでもマイイーサウォレットとメタマスクでは少しだけ特徴が異なるのです。

  • メタマスク:基本はオンライン上で資産管理
  • マイイーサウォレット:オンラインの他、オフライン状態でも資産管理が行える

メタマスクはGoogleChromeやFireFoxなどインターネットブラウザにインストールして、そのままオンライン上で通貨の保管ができます。一方のマイイーサウォレットは、パソコン内部(ローカル)にインストール後は基本的にオフライン状態でも秘密鍵を保管しておけるのです。常にオンライン状態でしか資産管理ができないとハッキングや不正アクセスの危険性が高まります。そのため、オフラインでも秘密鍵の保管や入力のできるマイイーサウォレットの方が安全性が確保されていると言えるでしょう。

2-2. エラーの原因は取引所からの送金

国内取引所から海外取引所へ、もしくはICOの専用ウォレットへイーサリアムを送金する場合、コントラクトアドレスのエラーが発生してしまいます。この理由は、国内取引所に保有している専用のウォレットから送金しているからです。一方、マイイーサウォレットは取引所から独立した完全に自分だけのウォレット。マイイーサウォレットから海外取引所に送る場合や、ICOの専用ウォレットに送る場合は、コントラクトアドレスではなく送金アドレスに送金することができます。

エラーは複数の取引所で発生

「国内取引所からイーサリアムを送るとコントラクトアドレス宛に送金されてしまう。」これはシステム上のエラーで、bitFlyer(ビットフライヤー)やZaif(ザイフ)、coincheck(コインチェック)などでも多々発生しています。そのため、ここでは送金エラーを解消するためにはマイイーサウォレットを利用するということだけ覚えておいてください。

2-3. イーサリアムの送金ミスをなくす方法

コントラクトアドレスは送金アドレスとは別なので、国内取引所から送金してもデータが反映されないと紹介しました。しかし、送金ミスを解決する方法があります。

イーサリアムのコントラクトアドレスは秘密鍵が付与された状態であれば送金手続きが可能です。秘密鍵は送金時のセキュリティコードのようなもので、仮想通貨ウォレットを利用する際に付与されます。つまり、コントラクトアドレスのエラー解消方法は「自分のウォレットから海外口座へイーサリアムを送る」ことです。ここではコールドウォレットとしても使用可能な、安全なマイイーサウォレットで説明していきます。仮想通貨ウォレットから海外口座へ送金する手順は以下の通りです。

海外口座へ送金する手順

①マイイーサウォレットを開設
②マイイーサウォレットからイーサリアムを送金する
③送金データの反映を確認

ここから先はそれぞれの方法を詳しく解説していきましょう。

2-3-1. マイイーサウォレットの開設方法

まずはマイイーサウォレットの公式サイトへアクセスします。

トップページにウォレット作成画面が表示されます。画面中央のパスワード入力欄にお好きな文字列を入力してください。できるだけ他者に推測されないランダム英数字の組み合わせを作成しましょう。

パスワードの入力が終われば「お財布の作成」をクリックします。

次に上の画面が表示されると、「ダウンロードKeystoreファイル」をクリックしてデータをダウンロードします。後ほどマイイーサウォレットを使用する際にKeystoreファイルをアップロードするため、できるだけ安全な場所に保管しておきましょう。

ダウンロードが終わると、「わかりました。続けます。」をクリックします。

 

今度は画面内に秘密鍵の情報が表示されました。秘密鍵はマイイーサウォレットにログインする際に必要です。また、秘密鍵を紛失したり、第三者に知られると資産を盗まれてしまう可能性があります。しっかりと保管するようにしましょう。

秘密鍵の保存が終わると、画面下にある「アドレスを保存してください」をクリックします。すると、今度はマイイーサウォレットのアンロック画面が表示されます。アンロックはマイイーサウォレットにログインすること、と覚えてください。アンロック方法は「Keystoreをアップロード」を選択します。Keystoreのアップロードはオフライン状態でも可能なので、秘密鍵でアンロックするよりも安全性は高いと言えるでしょう。

左側のメニューより「Keystore/JSON File」を選択します。すると、右側に「お財布ファイルを選択」というボタンが表示されますのでクリックしてください。ここで先ほど保存したKeystoreファイルをローカルフォルダから選択します。後は画面中央のパスワード入力欄に、マイイーサウォレット登録時に作成したパスワードを入力し、最後に「アンロック」のボタンをクリックしましょう。Keystoreでアンロックが済むと画面下にウォレット情報が現れます。

海外口座に送金する前にマイイーサウォレットに入金しておく必要があります。上の画面の「あなたのアドレス」が送金先となるので、外部のウォレットや取引所から送金を行ってください。これでマイイーサウォレットの登録は全て完了です。

2-3-2. マイイーサウォレットの送金方法

マイイーサウォレットで送金する方法は、トップ画面上部にあるメニューから「Ether/トークンの送出」を選んでください。

ロック解除を行うために、先ほどと同じく「秘密鍵」の項目を選び、右側に秘密鍵コードを入力します。その後、「開錠」ボタンを押しましょう。

今度は送金画面が表示されます。「送出先アドレス」、「送出数量」を入力します。「ガスリミット」は数値が高いほど処理速度が速まりますが、特に指定がない限りは初期値の「21000」のままで構いません。最後に「トランザクションを生成」をクリックしましょう。これでマイイーサウォレットの送金処理は完了です。

2-3-3. 送金データの確認方法「Etherscan」について

マイイーサウォレットから送金を行うことでコントラクトアドレス宛でも情報が反映されます。ただ、念のために送金が完了したか確認は行っておきましょう。イーサリアムの送金情報は全てEtherscanというサイトで確認することができますので、送金が完了したかチェックするために利用してください。まずは、Etherscan公式サイトへアクセスします。

トップページ右上にある検索窓に自分のマイイーサウォレットアドレスを入力しましょう。

すると上のように過去の取引履歴が並ぶので、先ほど送金した内容が表示されていれば送金は完了しています。


3. コントラクトアドレスのよくある疑問

コントラクトアドレスとは一体どのような仕組みなのか、なぜイーサリアムだけ送金ミスが多くなってしまうのか、ここではコントラクトアドレスに関するよくある疑問についてお答えしていきます。

3-1. 送金ミスをしたら仮想通貨はどこへ消える?

コントラクトアドレスで送金ミスが発生してしまった場合、送ったお金はどうなってしまうのでしょうか?

国内取引所から海外取引所、もしくはICOの専用ウォレットへ送金後、コントラクトアドレスのエラーが発生すると手続きはキャンセルとなります。国内取引所の画面には「宛先アドレスがコントラクトアドレスのため、送信ができませんでした」などと表示され、そもそも送金自体が無かったことになるのです。ただし、万が一間違ったアドレス宛に送金してしまうと資産消失の可能性もあります。たとえば、国内取引所の多くは誤送金に対して下の図のような処理を行っています。

仮に送金先アドレスが間違ってしまった場合でも、上図のようにその取引所自体の口座であれば問題ありません。誤送金情報を無かったものとして処理を行ってもらえます。一方、ある取引所から別の取引所口座へ送金したり、外部ウォレットへ資金を移す場合は注意です。万が一アドレスを間違って送金してしまうと回復措置の対象外となり、送金した金額を取り戻せないことも考えられます。

3-2. なぜイーサリアムで送金トラブルが起きやすいのか?

コントラクトアドレスはあくまで契約情報を書き込んでいるに過ぎず、送金アドレスとは関係ありません。本来なら送金アドレス宛に通貨を送りますが、コントラクトアドレス宛に送金しても情報が反映されないのです。イーサリアムはシステム上、「コントラクトアドレス」と「送金アドレス」の2種類の宛先を持っています。基本的にイーサリアムでも送金アドレスを指定すればエラーは発生しません。国内取引所から別の国内取引所へイーサリアムを移動する、または国内取引所からウォレットへイーサリアムを送金する場合は宛先が「送金アドレス」なのでエラーが起きないのです。

3-3. どんな時にコントラクトアドレスのエラーが起きる?

コントラクトアドレスでエラーが起きる場合は主に以下の3点です。

コントラクトアドレスのエラー原因

  • 取引所のイーサリアム指定口座がコントラクトアドレスになっている

  • ICOのイーサリアム指定口座がコントラクトアドレスになっている

  • ICOのトークン発行時に取引所アドレスを入力してしまう

取引所やICOのイーサリアム指定口座がコントラクトアドレスになっている

イーサリアムを送金した際に、受け手となる取引所やICOの指定先口座がコントラクトアドレスになっているケースです。一般的に国内取引所の多くは指定先口座が送金アドレスになっているため、たとえばビットフライヤーからザイフにイーサリアムを送った場合はエラーが発生しません。しかし、海外取引所の多くは指定先口座がコントラクトアドレスになっているので、仮にビットフライヤーからBinance(バイナンス)に送金した場合などはエラーが起こってしまうのです。ICOの指定先口座の多くもコントラクトアドレスなので送金時の対策が必要になります。

ICOのトークン発行時に取引所アドレスを入力してしまう

ICOの指定口座にイーサリアムを入金した後、代わりにトークンを受け取る際にエラーが発生してしまうことです。

ICOトークンの受け取り方は以下のように3種類存在します。

  • ICOトークン発行者の指定口座にイーサリアム着金後、同時にウォレットにトークン送金
  • ICOセール終了後、期日になるとトークンが送金される
  • トークン受取用の口座を指定後に送金される

イーサリアム着金と同時にトークン排出、期日になるとトークンが受け取れる方法は自動的に処理されるので口座を指定する必要がありません(登録しておいたウォレットにトークンが送金されます)。

一方、こちらでトークン受取口座を指定する際、取引所に持っているご自身の口座を指定するとエラーが発生します。取引所への送金アドレスは投資家個別のものではないので、トークンを受け取ろうにも誰宛に送金されたものか判別ができないからです。

トークン受取口座を取引所に指定してしまうと、得られたはずのトークンが消失してしまうので気をつけましょう。

こうした送金トラブルは全て次の項目で紹介する方法で解決可能です。


4. 仮想通貨ウォレットを作っておくと他にもメリットが! 

仮想通貨ウォレットを作ると、今回のようにコントラクトアドレスのエラー対策にもなり、更に以下3つのメリットがあります。

  • 安全な資産管理
  • 効率的な資産管理
  • 送金の手間解消

では、これより詳しく解説していきます。

4-1. 安全に資産管理ができる

Ethereumを保管するマイイーサウォレットはコールドウォレットです。オフライン状態でも通貨を保管しておけるので、ハッキングや不正アクセスの脅威を抑えられます。特に取引所に仮想通貨を預けっぱなしの人は注意しましょう。取引所はオンライン状態で資産を管理するホットウォレットが基本なので、悪意のある第三者に狙われると簡単に資産が吹き飛んでしまうでしょう。

4-2. 効率的な資産管理が可能

コインごとにウォレットを作っておくと資産管理が簡単です。たとえば、bitFlyerEthereumを購入し、その後ZaifでもEthereumを買ったとしましょう。どちらのコインもマイイーサウォレットに移動しておけば、Ethereumの残高も一目で分かります。

4-3. 送金に手間がかからない

マイイーサウォレットを利用すればコントラクトアドレスのエラーは発生しません。また、送金処理が瞬時に完了するため、送金に要する手間が不要です。

【注意】送金手数料には気をつけよう!

マイイーサウォレットには送金時の項目に「ガスリミット」が存在します。ガスリミットとは、Ethereumの送金処理時間を決める数値のことで、数量が多いほどより速く処理を行えるのです。ただし、ガスリミットは送金手数料のことでもあり、数値が高いほど費用も高額になります。基本的にガスリミットは送金量に応じて自動計算されますが、初期値の「21000」を変更する必要はありません。2018820日のレートでは、ガスリミット「21000」の手数料は約2030円程度です。ただし、Ethereumの取引があまりにも多くなってきた時は、「Warning Error—Out of Gas」のエラー表示が出ます。この際は、少しずつガスリミットの数値を上げ、エラーの出ない所で手続きすると良いでしょう。


まとめ

今回はコントラクトアドレスのエラー解決方法をお伝えしました。海外取引所でオルトコイン(アルトコイン)を購入したり、ICOセールに参加してトークンを買う場合にはイーサリアム通貨を利用することがほとんど。しかし、イーサリアムには「コントラクトアドレス」と「送金アドレス」に分かれており、国内取引所からは送金できない仕様です。そこで専用ウォレットであるマイイーサウォレットを利用することで、コントラクトアドレスの送金エラーを解消できます。マイイーサウォレットから送金した場合でも、Etherscanを使って取引履歴を確認しておくようにしましょう。

Coincheck(コインチェック)からイーサリアムに投資してみよう

\アプリダウンロード数国内No1! 初心者でも使いやすい/
コインチェック

■世界のニュース

Google ニュース 「世界」
Google ニュース 「日本」
Google ニュース 「ビジネス」 
Google ニュース 「科学&テクノロジー」
Google Cloud スタートアップ

■価格情報

TradingView「ビットコイン/JPY」
coinbase「ビットコイン/USD」
CME「ビットコイン 先物」

■監督官庁

金融庁

■研究機関

ビットコイン
 bitcoin.org
イーサリアム
 ethereum.org
 Go Ethereum
 web3.js
 Truffle
 solidity
 ethereum/EIPs
 Vitalik Buterin’s website
XRP
 ripple.com
その他
 Litecoin.org
 Bitcoincash.org
 nem.io
 Stellar.org
 monacoin.org
 blockchain.com

■苦情相談等

金融サービス利用者相談室
国民生活センター

■自主規制機関

日本仮想通貨交換業協会

■関連省庁等公式Twitter

日本政策金融公庫【公式】Twitter
厚生労働省【公式】Twitter
日本年金機構【公式】Twitter
内閣府政府広報オンライン【公式】Twitter
国民生活センター【公式】Twitter
金融庁【公式】Twitter
法務省【公式】Twitter
消費者庁【公式】Twitter
首相官邸【公式】Twitter
内閣官房【公式】Twitter
国税庁【公式】Twitter
警察庁【公式】Twitter

本サイトは情報提供を目的としたものであり、特定の商品、サービスについての売買の勧誘や売買の推奨を目的としたものではありません。
また、掲載内容は信頼できると思われる各種データをもとに作成されていますが、その正確性、完全性を保証するものではありません。
投資を行う際は、お客様ご自身の判断でなさるようお願いいたします。