目的

従来のMonacardは card.mona.jp の管理者による中央集権的なサービスです。カード情報や画像データが消える可能性があります。
Monacard2.0は中央集権からの脱却とデータの永続化を目指して策定されました。


概要

画像の保存先をimgurからIPFSに変更することにより分散します。カード情報を card.mona.jp への登録からトークンのdescriptionへの書き込みへ変更します。descriptionへの書き込みはモナコインチェーンへの書き込みなのでデータが消失しません。


descriptionの書き込み形式

書き込みはJSON形式で行います。
{
    "monacard": {
        "name": "MONACARD2.0",
        "owner": "モナカード公式",
        "desc": "このカードは新しい方式で登録されました。",
        "tag": "公式,test,2.0",
        "cid": "bafkrmibgvyv6gr4rgnscfffllralzdh3fcfsqoqawcmfnlu4heel3rwu4i",
        "ver": "2"
    }
}

  • name: カード名(必須)
  • owner: 発行者名(必須)
  • desc: カード説明(必須)
  • tag: タグ(複数指定の場合はカンマ区切り)
  • cid: IPFSへアップロードした画像のCID(必須)(sha3-256推奨)
  • ver: "2"を固定で入力(必須)

他のアプリの情報をdescriptionに書き込みたい場合は次のように追加してください。
{
    "monacard": {
        "name": "MONACARD2.0",
        "owner": "モナカード公式",
        "desc": "このカードは新しい方式で登録されました。",
        "tag": "公式,test,2.0",
        "cid": "bafkrmibgvyv6gr4rgnscfffllralzdh3fcfsqoqawcmfnlu4heel3rwu4i",
        "ver": "2"
    },
    "monamonbattle(例)": {
        "hp": 500,
        "attack": 200,
        "type": "kusa"
    }
}

実際に書き込む際には、スペースや改行がない以下のような形式にすると手数料の削減になるのでおすすめです。スペースや改行があってもJSONが正しければ問題ありません。
{"monacard":{"name":"MONACARD2.0","owner":"モナカード公式","desc":"このカードは新しい方式で登録されました。","tag":"公式,test,2.0","cid":"bafkrmibgvyv6gr4rgnscfffllralzdh3fcfsqoqawcmfnlu4heel3rwu4i","ver":"2"},"monamonbattle":{"hp":500,"attack":200,"type":"kusa"}}


IPFSへの画像アップロード方法

IPFSへのアップロードは card.mona.jp を通す必要があります。これはIPFSへの浸透や保持する時間が曖昧なため、各々が好きな方法でアップロードし画像を見失うリスクを排除するためです。 将来的にはどこからアップロードしても問題ないようにしたいと思いますが、しばらくはこの方式になります。 実際にアップロードする方法の詳細については card.mona.jpの「API」のページを参照してください。


画像の仕様

画像は 横560px縦800px または 横840px縦1200px, 横1260px縦1800px。PNGまたはJPEG。10MB未満です。


カード登録と更新方法

新規発行したトークンまたは発行済みのトークンのdescriptionに上記のJSONを書き込みます。上記の仕様を満たしていればMonacard2.0の登録が完了します。 情報の変更が必要な場合は新しいJSONをdescriptionに書き込むことで更新が完了します。従来の方式でモナカードに登録されている場合でもMonacard2.0の仕様を満たした場合はMonacard2.0として扱います。

Monacard2.0への登録は単にJSONを書き込むことで完了しますが、実際には card.mona.jp のようなサイトが収集しAPI化された情報が使われる可能性が高いです。そのため、アプリへの反映は card.mona.jp などの収集完了が前提になる場合があります。