unWallet Enterprise 開発者向けドキュメント
unWallet Enterprise API リファレンス
概要
unWallet のクライアントアプリケーション(unWallet をアイデンティティプロバイダーとして利用するアプリケーション)のバックエンド構築をサポートする API。
注意
本 API を利用するには、unWallet Enterprise で作成したプロバイダーウォレットの API トークンが必要です。これらは各クライアントアプリケーションの秘密情報であるため、フロントエンドで保管しないようにしてください。すなわち、本 API は原則としてバックエンドから利用するようにしてください。
ベース URL
Env |
Base URL |
---|---|
mainnet |
|
testnet |
スキーマ
リクエスト・レスポンスともに、すべてのデータの Content-Type
は application/json
とする。また、すべてのタイムスタンプは UNIX time 形式で表現される。
認証
unWallet Enterprise で作成したプロバイダーウォレットの API トークンを Authorization
ヘッダに設定する。
クライアントエラー
クライアントエラーは以下の 4 タイプに分類され、それぞれに対応する HTTP ステータスコードが設定されたレスポンスが返却される。
400 Bad Request
:不正な形式の JSON が送信されたり、リクエストの内容が不正だったりした場合401 Unauthorized
:無効な認証情報で認証しようとした場合403 Forbidden
:利用可能でない(例えば、停止状態にある)アプリケーションの認証情報を用いて API を実行しようとした場合、もしくはアプリケーションに紐づくサブスクリプションが利用可能でない(例えば、停止状態にある)場合404 Not Found
:指定したリソースが見つからなかった場合
なお、すべてのエラーレスポンスのボディは以下の形式で表現される。
{ "message": "..." }
データ型
各エンドポイントのリクエストパラメータ表に記載された Type は JSON データ型であるが、一部、厳密に特定のフォーマットを要求するデータ型が存在するため、それらについて補足説明を行う。以降、これらを指す場合は、JSON データ型の名称(string など)ではなく、以下で定義する名称(address など)を使用することとする。
address
ブロックチェーンアカウントの識別子に相当する 20 バイトの値の 16 進数文字列表記。
注釈
英字に関しては大文字小文字を問いませんが、本 API のレスポンスに含まれる address には、大文字と小文字が混在した(ERC55 に準拠してエンコーディングが行われた)値が使用されます。
"0xC6Fb61820696416639fce82E00f24C5DAe63c89C"
エンドポイント一覧
POST /tokens/initialize
新規トークンを登録する。
注釈
POST /tokens/initialize を実行した時点におけるトークンの発行量は 0 です。発行は POST /tokens/mint で行います。
リクエストパラメータ
Name |
Type |
In |
Description |
---|---|---|---|
|
integer |
body |
トークンの ID |
|
string |
body |
トークンの名称 |
|
string |
body |
トークンの詳細 |
|
string |
body |
トークンの画像 URL |
注意
トークンはブロックチェーン上に存在するため、ID は(他のユーザーが発行したトークン含め)既存のトークンと重複しない値を指定する必要があります。
レスポンスボディ
{
"id": "evDYLBOy",
"providerWalletID": "epBqMBla",
"hash": null,
"status": "pending",
"updatedAt": 1231006505,
"createdAt": 1231006505
}
Name |
Type |
Description |
---|---|---|
|
string |
トランザクション情報の ID |
|
string |
トランザクションを発行したプロバイダーウォレットの ID |
|
string |
トランザクションのハッシュ(ブロックチェーンに対して送信されるまでは |
|
string |
トランザクションのステータス( |
|
integer |
トランザクション情報の最終更新日時 |
|
integer |
トランザクション情報の登録日時 |
POST /tokens/mint
トークンを発行する。
注意
POST /tokens/mint を実行する前に、POST /tokens/initialize を実行してトークンを登録する必要があります。
リクエストパラメータ
Name |
Type |
In |
Description |
---|---|---|---|
|
integer |
body |
トークンの ID |
|
address |
body |
トークンの発行先アドレス |
|
integer |
body |
トークンの発行量 |
レスポンスボディ
{
"id": "evDYLBOy",
"providerWalletID": "epBqMBla",
"hash": null,
"status": "pending",
"updatedAt": 1231006505,
"createdAt": 1231006505
}
Name |
Type |
Description |
---|---|---|
|
string |
トランザクション情報の ID |
|
string |
トランザクションを発行したプロバイダーウォレットの ID |
|
string |
トランザクションのハッシュ(ブロックチェーンに対して送信されるまでは |
|
string |
トランザクションのステータス( |
|
integer |
トランザクション情報の最終更新日時 |
|
integer |
トランザクション情報の登録日時 |
GET /tokens
API の実行主体であるプロバイダーウォレットが登録したトークンの一覧を取得する。
リクエストパラメータ
なし
レスポンスボディ
[
{
"id": 1,
"providerWalletID": "epBqMBla",
"name": "Token1",
"description": "Token 1",
"image": "https://dummyimage.com/256x256/0092a5/ffffff.png",
"updatedAt": 1231006505,
"createdAt": 1231006505
},
{
"id": 2,
"providerWalletID": "epBqMBla",
"name": "Token2",
"description": "Token 2",
"image": "https://dummyimage.com/256x256/0092a5/ffffff.png",
"updatedAt": 1231006505,
"createdAt": 1231006505
}
]
Name |
Type |
Description |
---|---|---|
|
integer |
トークンの ID |
|
string |
トークンを発行したプロバイダーウォレットの ID |
|
string |
トークンの名称 |
|
string |
トークンの詳細 |
|
string |
トークンの画像 URL |
|
integer |
トークンの(メタデータの)最終更新日時 |
|
integer |
トークンの登録日時 |
GET /tokens/{id}
指定したトークンを取得する
リクエストパラメータ
Name |
Type |
In |
Description |
---|---|---|---|
|
integer |
path |
トークンの ID |
レスポンスボディ
{
"id": 1,
"providerWalletID": "epBqMBla",
"name": "Token1",
"description": "Token 1",
"image": "https://dummyimage.com/256x256/0092a5/ffffff.png",
"updatedAt": 1231006505,
"createdAt": 1231006505
}
Name |
Type |
Description |
---|---|---|
|
integer |
トークンの ID |
|
string |
トークンを発行したプロバイダーウォレットの ID |
|
string |
トークンの名称 |
|
string |
トークンの詳細 |
|
string |
トークンの画像 URL |
|
integer |
トークンのメタデータの最終更新日時 |
|
integer |
トークンの登録日時 |
PATCH /tokens/{id}
指定したトークンのメタデータを更新する。
リクエストパラメータ
Name |
Type |
In |
Description |
---|---|---|---|
|
integer |
path |
トークンの ID |
|
string |
body |
トークンの名称 |
|
string |
body |
トークンの詳細 |
|
string |
body |
トークンの画像 URL |
レスポンスボディ
{
"id": 1,
"providerWalletID": "epBqMBla",
"name": "Token1",
"description": "Token 1",
"image": "https://dummyimage.com/256x256/0092a5/ffffff.png",
"updatedAt": 1231006505,
"createdAt": 1231006505
}
Name |
Type |
Description |
---|---|---|
|
integer |
トークンの ID |
|
string |
トークンを発行したプロバイダーウォレットの ID |
|
string |
トークンの名称 |
|
string |
トークンの詳細 |
|
string |
トークンの画像 URL |
|
integer |
トークンのメタデータの最終更新日時 |
|
integer |
トークンの登録日時 |
POST /metaTransactions
指定したコントラクトウォレットアカウントから指定した処理を実行する。
リクエストパラメータ
Name |
Type |
In |
Description |
---|---|---|---|
|
address |
body |
処理を実行するコントラクトウォレットアカウントのアドレス |
|
string |
body |
処理の内容 |
|
string |
body |
処理の内容に対する電子署名 |
注釈
signature
は、executor
のオーナーであるブロックチェーンアカウントによって作成されたものである必要があります。
リクエストパラメータを用意する方法については unWallet client-side SDK のドキュメントを参照してください。
レスポンスボディ
{
"id": "evDYLBOy",
"providerWalletID": "epBqMBla",
"hash": null,
"status": "pending",
"updatedAt": 1231006505,
"createdAt": 1231006505
}
Name |
Type |
Description |
---|---|---|
|
string |
トランザクション情報の ID |
|
string |
トランザクションを発行したプロバイダーウォレットの ID |
|
string |
トランザクションのハッシュ(ブロックチェーンに対して送信されるまでは |
|
string |
トランザクションのステータス( |
|
integer |
トランザクション情報の最終更新日時 |
|
integer |
トランザクション情報の登録日時 |
GET /transactions/{id}
指定したトランザクション情報を取得する。
リクエストパラメータ
Name |
Type |
In |
Description |
---|---|---|---|
|
string |
path |
トランザクション情報の ID |
レスポンスボディ
注意
レスポンスに含まれる hash
は変わる可能性がありますので、ご注意ください。なお、status
が "success"
もしくは "failure"
になった後で変わることはありません。
hash
の変更は基本的には発生しませんが、トランザクションがブロックチェーンに取り込まれやすくなるよう、unWallet Enterprise がトランザクションの nonce や gas 関連パラメータを調整した際に発生します。
{
"id": "evDYLBOy",
"providerWalletID": "epBqMBla",
"hash": "0xe3695a90fa745eedd4d16d54eb9e2b013ba7a48b00758edecc734c2d9013753c",
"status": "pending",
"updatedAt": 1231006505,
"createdAt": 1231006505
}
Name |
Type |
Description |
---|---|---|
|
string |
トランザクション情報の ID |
|
string |
トランザクションを発行したプロバイダーウォレットの ID |
|
string |
トランザクションのハッシュ(ブロックチェーンに対して送信されるまでは |
|
string |
トランザクションのステータス( |
|
integer |
トランザクション情報の最終更新日時 |
|
integer |
トランザクション情報の登録日時 |
GET /chain/identities/{address}/tokenBalances
指定したブロックチェーンアカウントが保有するトークンの残高の一覧を取得する。
リクエストパラメータ
Name |
Type |
In |
Description |
---|---|---|---|
|
address |
path |
ブロックチェーンアカウントのアドレス |
レスポンスボディ
[
{
"id": 1,
"amount": 1
},
{
"id": 2,
"amount": 1
}
]
Name |
Type |
Description |
---|---|---|
|
integer |
トークンの ID |
|
integer |
トークンの残高 |
GET /chain/identities/{address}/badgeBalances
指定したブロックチェーンアカウントが保有するバッジの残高の一覧を取得する。
リクエストパラメータ
Name |
Type |
In |
Description |
---|---|---|---|
|
address |
path |
ブロックチェーンアカウントのアドレス |
レスポンスボディ
[
{
"id": 1,
"amount": 1
},
{
"id": 2,
"amount": 1
}
]
Name |
Type |
Description |
---|---|---|
|
integer |
バッジ ID |
|
integer |
バッジ残高 |