🏙️
unWallet Enterprise v2
  • はじめに
  • 技術仕様
    • HTTP エンドポイント
      • 基本情報
      • インターフェース
        • ブロックチェーン関連
        • 認証クライアント関連
    • クライアントサイド SDK
      • 基本情報
      • インターフェース
  • ユースケース
    • unWallet 認証を組み込む
    • NFT を発行する
    • unWallet ユーザーに対して電子署名をリクエストする
    • unWallet ユーザーに対してトランザクション送信をリクエストする
Powered by GitBook
On this page
  • authorize
  • 引数
  • 実行例
  • 実行結果
  • sign
  • 引数
  • 実行例
  • 実行結果例
  • signEIP712TypedData
  • 引数
  • 実行例
  • 実行結果例
  • sendTransaction
  • 引数
  • 実行例
  • 実行結果例
  1. 技術仕様
  2. クライアントサイド SDK

インターフェース

authorize

unWallet ユーザーに対して、ID トークン(JWT)の発行をリクエストします。

引数

必須
型
説明

responseMode

No

string

ID トークンのレスポンス方式。"fragment" もしくは "form_post" を指定してください。デフォルト値は "fragment" です。

redirectURL

Yes

string

ユーザーが unWallet で ID トークンの発行を認可した後のコールバック先となる URL。

nonce

No

string

リプレイアタックを防ぐための任意の文字列。指定した値は ID トークンに含められます。

isVirtual

No

boolean

リクエスト時にユーザーが unWallet にサインインしていない場合、サインイン方式をバーチャルサインインにするかどうか。デフォルト値は true です。

chainID

No

number

ユーザーに接続を促したいブロックチェーンのチェーン ID。

バーチャルサインインは unWallet へのサインイン方式の 1 つです。この方式では、コントラクトウォレットやそれに対応する秘密鍵のセットアップがスキップされるため、サインイン時に MFA が要求されません。

実行例

unWallet.authorize({
  redirectURL: "https://example.com/callback",
  nonce: "0AbvXkwAv67DIRyQEMXZgC8SneZX56WX",
});

実行結果

responseMode が "fragment" の場合

redirectURL にリダイレクトされます。ID トークンは URL フラグメントとして付帯します。

responseMode が "form_post" の場合

redirectURL に POST リクエストが送信されます。ID トークンはフォームパラメータ(id_token)として付帯します。

sign

unWallet ユーザーに対して、指定したメッセージに対する電子署名をリクエストします。

引数

必須
型
説明

message

Yes

string

電子署名の対象となるメッセージ。

ticketToken

Yes

string

電子署名チケットトークン。

実行例

const result = await unWallet.sign({
  message: "message to be signed",
  ticketToken:
    "eyJhbGciOiJFUzI1NiIsImtpZCI6IjEiLCJ0eXAiOiJKV1QifQ.eyJhcGlDbGllbnRJRCI6IlFWQkpRMnhwWlc1ME9qRT0iLCJjbGllbnRJRCI6IkNYcWxKcEtZaVhMelZ1cTNtVTQ5VVk1VUZuMk4zVVJWdCIsImV4cCI6MTcyMTIwNzA2MCwiaWF0IjoxNzIxMjA2NzYwLCJpZCI6IjYxNWEwZGMzNjk2MTI5NjZhYTk5OGIxY2RiZTk4MDQyNDI5NmNhNTE4ODI3OTNmNmU4NWQyODEyMmVmZGY1ZjIiLCJzaWduYXR1cmVNZXNzYWdlIjoibWVzc2FnZSB0byBiZSBzaWduZWQiLCJzaWduYXR1cmVTaWduZXJBZGRyZXNzIjoiMHhkMTIyOUVlMkIwY0Y5NzhEQTc3MDdBRDVEMDI1MzAxMjBmMDRhOUYxIn0.lDSA60K4KlixyU2Vh937i1RIw0kH0QdC2Zyey5pDmuxShH0mzyH3DEuG_h_6U6xHf1pbCwtivDBaK-KQlZtiTA",
});

実行結果例

{
  "digest": "0xc0f4c2c0633d048d72c13778562f37b49bfa2999fec3e286bce7248e51f9d337",
  "signature": "0x020d4c8b71c7aa69848f1ef28b8ecd0e13b19155931e1518445f4d5b1bf1292b0e95a5df9d27383ee62045a56806d8d48a0e53881513c16e3114e2088193b1c71b"
}

signEIP712TypedData

引数

必須
型
説明

typedData

Yes

object

ticketToken

Yes

string

電子署名チケットトークン。

実行例

const result = await unWallet.signEIP712TypedData({
  typedData: {
    types: {
      EIP712Domain: [
        { name: "name", type: "string" },
        { name: "version", type: "string" },
        { name: "chainId", type: "uint256" },
        { name: "verifyingContract", type: "address" },
      ],
      Person: [
        { name: "name", type: "string" },
        { name: "wallet", type: "address" },
      ],
      Mail: [
        { name: "from", type: "Person" },
        { name: "to", type: "Person" },
        { name: "contents", type: "string" },
      ],
    },
    primaryType: "Mail",
    domain: {
      name: "Ether Mail",
      version: "1",
      chainId: 1,
      verifyingContract: "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC",
    },
    message: {
      from: {
        name: "Cow",
        wallet: "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826",
      },
      to: {
        name: "Bob",
        wallet: "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB",
      },
      contents: "Hello, Bob!",
    },
  },
  ticketToken:
    "eyJhbGciOiJFUzI1NiIsImtpZCI6IjEiLCJ0eXAiOiJKV1QifQ.eyJhcGlDbGllbnRJRCI6IlFWQkpRMnhwWlc1ME9qSXkiLCJjbGllbnRJRCI6IkNYcWxKcEtZaVhMelZ1cTNtVTQ5VVk1VUZuMk4zVVJWdCIsImV4cCI6MTc0NzgyMjE2MiwiaWF0IjoxNzQ3ODIxODYyLCJpZCI6ImI5YTFjOGJjOTlkMmVhNTcxNWIwN2U4NzE5YWEyNmQ2Y2M3YzM1N2JiNzNhYTcxNDc2NjJhODBjNzEyMzYzYzgiLCJzaWduYXR1cmVEaWdlc3QiOiIweGJlNjA5YWVlMzQzZmIzYzRiMjhlMWRmOWU2MzJmY2E2NGZjZmFlZGUyMGYwMmU4NjI0NGVmZGRmMzA5NTdiZDIiLCJzaWduYXR1cmVTaWduZXJBZGRyZXNzIjoiMHhkMTIyOUVlMkIwY0Y5NzhEQTc3MDdBRDVEMDI1MzAxMjBmMDRhOUYxIn0.VqCfO3Dh_BsBACqpr2bYOX47TIkJy3EXGy_l6SouW1sBc6XsZE1996gIJ9jwHIswye1F_YrovV4EU0iHrHk8_g",
});

実行結果例

{
  "digest": "0xbe609aee343fb3c4b28e1df9e632fca64fcfaede20f02e86244efddf30957bd2",
  "signature": "0xebdb66458c40c2b052c8d4abb32ffb7b82ddaa43fa4fa90220d6137716e627130aea57283de1823f1f44d227510817aa44bff499b9edb298d7f1bee3b2e6ac011c"
}

sendTransaction

unWallet ユーザーに対して、指定したトランザクションの送信をリクエストします。

引数

必須
型
説明

chainID

Yes

number

トランザクションの送信先となるブロックチェーンのチェーン ID。

toAddress

Yes

string

トランザクションの対象となるブロックチェーンアドレス。

value

No

string

トランザクションによって送付されるネイティブトークンの量(0x から始まる 16 進数文字列)。

data

No

string

トランザクションデータ(0x から始まる 16 進数文字列)。

ticketToken

Yes

string

トランザクションチケットトークン。

実行例

const result = await unWallet.sendTransaction({
  chainID: 137,
  toAddress: "0xd1229Ee2B0cF978DA7707AD5D02530120f04a9F1",
  value: "0xde0b6b3a7640000",
  ticketToken:
    "eyJhbGciOiJFUzI1NiIsImtpZCI6IjEiLCJ0eXAiOiJKV1QifQ.eyJhcGlDbGllbnRJRCI6IlFWQkpRMnhwWlc1ME9qRT0iLCJjaGFpbklEIjoxMzcsImNsaWVudElEIjoiQ1hxbEpwS1lpWEx6VnVxM21VNDlVWTVVRm4yTjNVUlZ0IiwiZXhwIjoxNzIxMjA3MjE1LCJpYXQiOjE3MjEyMDY5MTUsImlkIjoiMmQ5NGU4MDZkYjU4Yzk1YjAwYzQyYTM3ZjM0NGY1NmNkYjliZWJjYTQyNmUxM2FlOGY1MzM3NDA1MTE4MzhlMCIsInBheW1lbnRUeXBlIjoidXNlciIsInRyYW5zYWN0aW9uRGF0YSI6IjB4IiwidHJhbnNhY3Rpb25Gcm9tQWRkcmVzcyI6IjB4ZDEyMjlFZTJCMGNGOTc4REE3NzA3QUQ1RDAyNTMwMTIwZjA0YTlGMSIsInRyYW5zYWN0aW9uVG9BZGRyZXNzIjoiMHhkMTIyOUVlMkIwY0Y5NzhEQTc3MDdBRDVEMDI1MzAxMjBmMDRhOUYxIiwidHJhbnNhY3Rpb25WYWx1ZSI6IjB4ZGUwYjZiM2E3NjQwMDAwIn0.3RXhgkmMaMJKXSlpco5tuBAVOvVsQ9PRygogvkgKXDDRt22gt9zvCWdJvC2puk7B5oaxrAGyG0gkxfFmkHr9fw",
});

実行結果例

{
  "transactionID": "UXVldWVkVHJhbnNhY3Rpb246MQ=="
}
Previous基本情報Nextユースケース

Last updated 10 days ago

電子署名チケットトークンは を利用して発行してください。

unWallet ユーザーに対して、指定した 構造化データに対する電子署名をリクエストします。

電子署名の対象となる 構造化データ。

電子署名チケットトークンは を利用して発行してください。

トランザクションチケットトークンは を利用して発行してください。

EIP-712
EIP-712
POST /issueSignatureTicket
POST /issueSignatureTicket
POST /issueTransactionTicket