# 波波錢包-空投 NFT API 技術串接文件 [TOC] ## 驗證方式 - [波波錢包-API 驗證方法](https://hackmd.io/@PoWallet/HJjAULtGi) - 驗證用之 `.crt`&`.key`、IP 位置白名單、`ut_host` 等 config:後續提供 ## APIs ### 1. 取得NFT詳細資料 Get NFT Collection Information **API Endpoint** - UT url: `{{ut_host}}/blockchain/nft/information/{{project_id}}/{{collection_id}}` - UAT url: `{{uat_host}}/blockchain/nft/information/{{project_id}}/{{collection_id}}` - Production url:`{{prod_host}}/blockchain/nft/information/{{project_id}}/{{collection_id}}` **HTTP REQUEST METHOD** - GET **REQUEST HEADERS** | Header | Description | | - | - | | Content-Type | `application/json` | | Accept | `application/json` | **GET PARAMETERS** | Parameter | DataType | Description | | - | - | - | | project_id | `String` | | | collection_id | `String` | | **RESPONSE HTTP STATUS CODE** | Status Code | Description | | - | - | | 200 | 成功取得 NFT 類別 Metadata | | 400 | 請求錯誤 | | 401 | 請求未授權 | | 404 | 找不到資源 | **RESPONSE BODY** ```json= { "project_id": "string", "project_name": "專案名", "project_description": "專案介紹", "collection_id": "string", "name": "Collection名", "description": "Collection介紹", "image_url": "string", "banner_image_url": "string", "token_standard": "string", "is_use_blind_box": false, "is_use_utility": false, "in_stock_count": 0, // 剩餘數量 "categories": [ { "category_id": "string", "name": "NFT名", "description": "string", "rarity": 1, "rank": "common", "empowerment": "string", "notice": "string", "usage": "string", "media_type": "image", "image_url": "string", "animation_url": "string", "type": "data", "current_seq": 0 },{...} ] } ``` ### 2. 以手機號碼取得錢包地址 Get Wallet Address By Phone Number **API Endpoint** - UT url: `{{ut_host}}/blockchain/wallet/{{phone}}` - UAT url: `{{uat_host}}/blockchain/wallet/{{phone}}` - Production url:`{{prod_host}}/blockchain/wallet/{{phone}}` **HTTP REQUEST METHOD** - GET **REQUEST HEADERS** | Header | Description | | - | - | | Content-Type | `application/json` | | Accept | `application/json` | **GET PARAMETERS** | Parameter | Description | | - | - | | phone | 手機號碼,須已經過驗證確認有效,正則表達格式為`/^09[0-9]{8}$/` | **RESPONSE HTTP STATUS CODE** | Status Code | Description | | - | - | | 200 | 成功取得錢包地址 | | 201 | 成功建立錢包地址 | | 400 | 請求錯誤 | | 401 | 請求未授權 | **RESPONSE BODY** | Parameter | Description | | - | - | | wallet_address | 以 `0x` 開頭的 Ethereum 格式錢包地址 | ```json= { "wallet_address": "0x0xa7e742f0eca4fb47a004a2d2e55b7897b3f77546" // 錢包地址 } ``` ### 3. 空投特定 NFT 給使用者 Airdrop Specific Category of NFT **API Endpoint** - UT url: `{{ut_host}}/blockchain/nft/airdrop/category` - UAT url: `{{uat_host}}/blockchain/nft/airdrop/category` - Production url:`{{prod_host}}/blockchain/nft/airdrop/category` **HTTP REQUEST METHOD** - POST **REQUEST HEADERS** | Header | Description | | - | - | | Content-Type | `application/json` | | Accept | `application/json` | **REQUEST BODY** | Parameter | DataType | Description | | - | - | - | | phone | `String` | 手機號碼,須已經過驗證確認有效,正則表達格式為`/^09[0-9]{8}$/` | | project_id | `String` | | | collection_id | `String` | | | category_id | `String` | | | event_type | `String` | `purchase_brand` | **BODY EXAMPLE** ```json= { "phone": "0900000002", "project_id": "1701", "collection_id": "powalletexample01", "category_id": "1", "event_type":"purchase_brand" } ``` **RESPONSE HTTP STATUS CODE** | Status Code | Description | | - | - | | 200 | 已執行空投成功 | | 400 | 請求錯誤 | | 401 | 請求未授權 | | 403 | 區塊鏈交易忙碌 | | 404 | 找不到欲空投的 NFT 資料 | | 409 | 數量/狀態控制衝突,已售罄 | | 500 | 請求失敗 | ### 4. 空投系列內隨機 NFT 給使用者 Airdrop Random Category in Collection of NFT **API Endpoint** - UT url: `{{ut_host}}/blockchain/nft/airdrop/random_category` - UAT url: `{{uat_host}}/blockchain/nft/airdrop/random_category` - Production url:`{{prod_host}}/blockchain/nft/airdrop/random_category` **HTTP REQUEST METHOD** - POST **REQUEST HEADERS** | Header | Description | | - | - | | Content-Type | `application/json` | | Accept | `application/json` | **REQUEST BODY** | Parameter | DataType | Description | | - | - | - | | phone | `String` | 手機號碼,須已經過驗證確認有效,正則表達格式為`/^09[0-9]{8}$/` | | project_id | `String` | | | collection_id | `String` | | | event_type | `String` | `purchase_brand` | **BODY EXAMPLE** ```json= { "phone": "0900000002", "project_id": "1701", "collection_id": "powalletexample01", "event_type":"purchase_brand" } ``` **RESPONSE HTTP STATUS CODE** | Status Code | Description | | - | - | | 200 | 已執行空投成功 | | 400 | 請求錯誤 | | 401 | 請求未授權 | | 403 | 區塊鏈交易忙碌 | | 404 | 找不到欲空投的 NFT 資料 | | 409 | 數量/狀態控制衝突,已售罄 | | 500 | 請求失敗 |