APIについて

このサイトだけではサービスがスケールアップしないことは分かっているので、他の開発者の方にも使っていただけるようにAPIを用意しました。 使いにくい箇所やご要望がありましたらできるだけ協力したいと考えていますのでご気軽にご相談下さい。


カード化トークン名一覧取得

http://card.mona.jp/api/card_list


カード詳細情報取得(GET)

詳細情報を取得するカードを複数の方法で指定できます。

http://card.mona.jp/api/card_detail?assets=アセット名1,アセット名2,アセット名N...

http://card.mona.jp/api/card_detail?tag=タグ名(複数指定できません)

http://card.mona.jp/api/card_detail?update_time=時間(指定したUnixtime以降に更新されたカード)

  • id: 変更されることのないカード番号
  • asset_common_name: 一般的なトークン名(UNAGI, UNAGI.AFTERなど)
  • asset: Counterblock apiで使う識別子。親トークンならasset_common_nameと同じ、子トークンの場合は「A10770391013707819263」のような文字列
  • asset_longname: 子トークン名 (親トークンの場合はnull)
  • assetgroup: TrueNFTのグループ名 (TrueNFTでない場合はnull)
  • card_name: カード名 ※サニタイズ
  • owner_name: 登録者名 ※サニタイズ
  • imgur_url: imgurまたは画像配信サーバーのURL(mcspare.nachatdayo.com) 互換性のために残します。下記の「画像へのアクセス」による参照を推奨します。 ※サニタイズ
  • add_description: カードの説明 ※サニタイズ
  • tw_id: 登録者Twitterの固有ID ※サニタイズ
  • tw_name: 登録者Twitter名 ※サニタイズ
  • tag: タグ情報(カンマ区切り) ※サニタイズ
  • cid: IPFSのCID
  • ver: "1", "2", "FULLONCHAIN"の3種類。1は従来のMonacard, 2はMonacard2.0, FULLONCHAINは未実装
  • is_good_status: 規約に違反している場合「false」, 問題ない場合は「true」
  • regist_time: 情報の登録日
  • update_time: 情報の更新日

カード詳細情報取得(POST)

上記の詳細情報取得APIのPOST版です。URLが長くなりすぎるような場合は、ブラウザなどの仕様で取得に失敗するのでこちらをご利用ください。基本的な仕様はGETと同じです。

URL: http://card.mona.jp/api/card_detail_post
Parameter名: assets, tag, update_timeの中から選択
Parameter値: GETの仕様と同じ


カード登録

モナカードの登録はブロックチェーン上で行います。トークンのdescriptionにMonacard2.0仕様を満たした情報を書き込むことで登録が行われます。
画像のIPFSへのアップロードは当サイトのAPIを通して行いCIDを取得してください。このCIDを使ってMonacard2.0仕様のJSONを作成しトークンのdescriptionに書き込んでください。Monacard2.0の詳しい仕様は以下のリンクを参照してください。

Monacard2.0仕様について


カード更新

「カード登録」を行った時に、既に登録されていれば更新処理になります。


画像へのアクセス

IPFSから画像を取得するのには時間がかかるので、画像配信サーバーを設置しました。

mcspare.nachatdayo.com/image_server/img/{cid}{suffix} でアクセスできます。例えば https://mcspare.nachatdayo.com/image_server/img/bafybmifgkg474344kmv3rrbj6uy4h2vzqa73f5x4bpugvdt24vnqgi4jeim のようにアクセスします。

suffixは l, m, tから選べます。何も指定しない場合はオリジナルサイズになります。各画像サイズはimgurの仕様準拠で、l: 448x640px, m: 224x320px, t: 112x160px になります。

画像にアクセスする際はなるべく表示サイズに合ったsuffixでアクセスをお願いします。


IPFSへの画像アップロード

ファイルのPOSTはいろいろな方式がありややこしいのですが、https://card.mona.jp/tool/make_json で実際にこのAPIに対してhtmlのフォームを使って画像をPOSTしているのでこの方式と同じにしてください。
テストする場合をのぞき、モナカードと関係ない画像は絶対に登録しないでください。

URL: http://card.mona.jp/api/upload_image
Parameter名: image
Parameter値: 画像ファイル
返り値: {"success":{"cid":"bafkrmibgvyv6gr4rgnscfffllralzdh3fcfsqoqawcmfnlu4heel3rwu4i"}} の形式


IPFSのCID一覧

IPFSのファイルをPINしていただける場合基本的にこののAPIを使ってください。上記の「カード詳細情報取得API」の場合余計な情報も入りますがCIDの項目があるので使えます。

http://card.mona.jp/api/cid_list

http://card.mona.jp/api/cid_list?update_time=時間(指定したUnixtime以降に更新されたカードの情報)

  • cid: IPFSファイルのCID
  • update_time: カードが更新されたunixtime(カードが更新されてもCIDは変更されていない場合があります)

エラーの場合

ここでエラーを実験できます。
全てのAPIのエラーはこの形式で出力されます。


サニタイズ仕様

XSSを防ぐためにAPIで出力される値は以下の通りにエスケープ処理されます。

  • &: &
  • ": "
  • ': '
  • <: &lt;
  • >: &gt;
例えば「"モナコインちゃん"の日常」の場合は「&quot;モナコインちゃん&quot;の日常」と出力されます。
どのパラメーターがサニタイズされるかは「カード詳細情報取得(GET)」の各パラメーターに記載しています。