組合記號架構包裝程式 API 套件

Oracle Blockchain Platform Digital Assets Edition 包含一個包裝函式 API 套件,可延伸 REST API 以支援可收集 NFT 市集特定的作業。

包裝程式 API 套件使用 API 閘道服務和 OCI 函數來部署專為可收集市集應用程式設計的 API 路由。不可行的權杖架構包裝函式 API 套件可從 Oracle Blockchain Platform 主控台下載,並包含下列元件。
  • NFTCollectiblesWithERC1155WrapperAPI.zip,包含包裝函式 API 套件的封存檔案,包含部署所需的 Terraform 指令碼。您可以將此檔案部署到 Oracle Cloud Infrastructure (OCI) 上的資源管理程式堆疊,以為包裝函式 API 建立必要的 Oracle 資源。
  • NFTCollectiblesWithERC1155_WrapperAPI.postman_collection.json - Postman 集合,可讓您測試已部署的包裝函式 API。此集合包含預先設定的要求,其端點和有效負載與包裝函式 API 套裝程式中定義的 API 相對應。

包裝函式 API

activateAccount
原始方法名稱:activateAccount
此 POST 方法會啟用權杖帳戶。只有管理員或帳戶擁有者可以呼叫此方法。對於在分類帳中找不到 accountStatus 的現有科目,該方法會傳回狀態設為 activeaccountStatus 物件。
有效負載:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
參數:
  • tokenId: string – 記號的 ID。
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值:
  • 成功時,會顯示功能變數替代字帳戶之已更新帳戶狀態物件的 JSON 表示法。
傳回值範例:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
addTokenAdmin
原始方法名稱:addTokenAdmin
此 POST 方法會將使用者新增為鏈碼的 Token Admin。只有鏈碼的 Token Admin 才能呼叫此方法。
有效負載:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值:
  • 成功時,包含以鏈碼 Token Admin 新增之使用者明細的訊息。
傳回值範例:
{
  "msg": "Successfully added Admin (OrgId: appDev, UserId: user1)"
}
addRole
原始方法名稱:addRole
此 POST 方法會將角色新增至指定的使用者與記號。只有鏈碼的 Token Admin 才能呼叫此方法。tokenDetails 參數「有趣」記號需要 tokenId 值作為輸入。非有趣的記號需要 tokenName 作為輸入,以便使用 tokenDetail 參數以不同方式指定有趣和不可行記號的詳細資訊。
有效負載:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "role": "role minter/burner"
    "tokenDetails": "{"tokenName": "token name value"}"
    "endorsers": {{endorsers}}
}
參數:
  • tokenId: string – 記號的 ID。
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • role: string – 要新增至指定使用者的角色名稱。
  • tokenDetails: TokenDetail – 指定記號的詳細資訊。對於有趣的記號,請使用下列格式:
    {"tokenId":"token1"}
    對於非可行的記號,請使用下列格式:
    {"tokenName":"artCollection"}
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值範例:
{
  "msg": "Successfully added role 'minter' to Account Id: oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a 
(Org-Id: appdev, User-Id: user2)"
}
associateFungibleTokenToAccount
原始方法名稱: associateFungibleTokenToAccount
此 POST 方法會將使用者之有趣的記號帳戶與指定的記號建立關聯。
有效負載:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
參數:
  • tokenId: string – 記號的 ID。
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值範例:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 1,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
      "tokenId": "tokenOne"
    }
  ],
  "associatedNftAccount": ""
}
buyWithEthCoin
原始方法名稱:buyWithEthCoin
任何帳戶擁有者都可以使用此 POST 方法,使用 Ethereum 購買 NFT,並將忠誠度權杖移轉為獎勵點數。
有效負載:
{
   "fromOrgId":"from_org_id value",
   "fromUserId":"from_user_id value",
   "toOrgId":"to_org_id value",
   "toUserId":"to_user_id value",
   "nftId":"[\"nft_id value\"]",
   "loyaltyId":"[\"loyalty_id value\"]",
   "ethQty":"[eth_qty value]",
   "loyaltyRewardQuantity":"[loyalty_reward_quantity value]",
   "endorsers":{{"endorsers"}}
}
參數:
  • fromOrgId: string – 目前組織中寄件者 (所有者) 的成員身分服務提供者 (MSP) ID。
  • fromUserId: string – 寄件者 (擁有者) 的使用者名稱或電子郵件 ID。
  • toOrgId: string – 目前組織中接收者的成員身分服務提供者 (MSP) ID。
  • toUserId: string – 接收者的使用者名稱或電子郵件 ID。
  • nftId: string – 要購買之記號的 ID。
  • loyaltyId: string – 代表忠誠度點數之有趣變數替代字的 ID。
  • ethQty: number – Ethereum 中的記號價格。
  • loyaltyRewardQuantity: string – 要移轉的忠誠度點數數量。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值範例:
{
  "msg": "Token ID : 'artcollection1' has been successfully transferred to UserID : 'user1'"
}
balanceOfBatch
原始方法名稱:balanceOfBatch
此 GET 方法會完成取得權杖帳戶餘額的批次作業。只有鏈碼的 Token Admin 或帳戶擁有者才能呼叫此方法。
查詢:
/balanceOfBatch?orgIds=["{{bc-org-id}}"]&userIds=["{{bc-user-id}}"]&tokenIds=["{{bc-token-id}}"]
參數:
  • orgIds: string[] – 目前組織中的成員身分服務提供者 (MSP) ID 清單。
  • userIds: string[] – 使用者名稱或電子郵件 ID 的清單。
  • tokenIds: string[] – 記號 ID 的清單。
傳回值範例:
[
    {
        "orgId": "AppBldFFFFMay22",
        "userId": "user2",
        "userAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "tokenAccountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
        "tokenId": "FNFT",
        "balance": 100
    },
    {
        "orgId": "AppBldFFFFMay22",
        "userId": "user2",
        "userAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "tokenAccountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
        "tokenId": "FT",
        "balance": 50
    },
    {
        "orgId": "AppBldFFFFMay22",
        "userId": "example_minter",
        "userAccountId": "ouaccount~9501bb774c156eb8354dfe489250ea91f757523d70f08ee494bda98bb352003b",
        "tokenAccountId": "oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446",
        "tokenId": "FNFT",
        "balance": 10
    }
]
batchTransferFrom
原始方法名稱:batchTransferFrom
此 POST 方法會完成批次作業,將記號 ID 清單中指定的記號從某個使用者傳輸給另一個使用者。任何使用者都可以呼叫這個方法。
有效負載:
{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "toOrgId": "toOrgId value",
 "toUserId": "toUserId value",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "endorsers": {{endorsers}}
}
參數:
  • fromOrgId: string – 寄件者的成員身分服務提供者 (MSP) ID。
  • fromUserId: string – 寄件者的使用者 ID。
  • toOrgId: string – 接收者的成員身分服務提供者 (MSP) ID。
  • toUserId: string – 接收者的使用者 ID。
  • tokenIds: string[] – 要傳輸之記號的記號 ID 清單。
  • quantity: number[] – 與記號 ID 陣列對應的要傳輸的記號數量清單。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值:
  • 成功時,會顯示包含每個記號傳輸詳細資訊的訊息。
傳回值範例:
[
    {
        "msg": "Successfully transferred NFT token: 'FNFT' of '10' quantity from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: AppBldFFFFMay22, User-Id: example_minter)"
    },
    {
        "msg": "Successfully transferred 10 FT token: 'FT' from Account-Id: oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c (Org-Id: AppBldFFFFMay22, User-Id: example_minter)"
    },
    {
        "msg": "Successfully transferred NFT token: 'NFT' from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: AppBldFFFFMay22, User-Id: example_minter)"
    }
]
burnBatch
原始方法名稱:burnBatch
此 POST 方法會停用或燒錄指定的有趣和不有趣的記號。任何具有燒錄機角色的使用者都可以呼叫這個方法。
有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "sameOrgEndorser": true
}
參數:
  • orgId: string – 目前組織中的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者名稱或電子郵件 ID。
  • tokenIds: string[] – 要燒錄的記號 ID 清單
  • quantity: number[] – 要燒錄的記號數量清單,對應至記號 ID 陣列。
  • sameOrgEndorser: boolean – 布林值,指出交易背書是否必須來自與要求者相同的組織。
傳回值:
  • 成功時,內含燒錄操作詳細資訊的訊息。
傳回值範例:
[
  {
    "msg": "Successfully burned NFT token: 'art' from Account-Id: oaccount~76cb672eeb1bd535899562a840d0c15a356db89e24bc8b43ac1dba845a4282c6 (Org-Id: appdev, User-Id: user2)"
  },
  {
    "msg": "Successfully burned 5 tokens of tokenId: tokenOne from Account-ID oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: user2)"
  },
  {
    "msg": "Successfully burned 2 token share of tokenId: FNFT from Account-ID oaccount~87bcb699d507368ee3966cd03ee6d7736ffc55dde8c0f0e16b14866334ac504a (Org-Id: AutoF1377358917, User-Id: user2)"
  }
]
burnNFT
原始方法名稱:burnNFT
此 POST 方法會停用或燒錄指定的不可見記號,並傳回記號物件和記號歷史記錄。任何具有燒錄機角色的使用者都可以呼叫這個方法。
有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenId": "{{bc-token-id}}",
 "sameOrgEndorser": true
}
參數:
  • orgId: string – 目前組織中的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者名稱或電子郵件 ID。
  • tokenId: string – 要燒錄之不可行記號的 ID
  • sameOrgEndorser: boolean – 布林值,指出交易背書是否必須來自與要求者相同的組織。
傳回值:
  • 成功時,包含燒錄作業相關訊息的 JSON 陣列。
傳回值範例:
{
    "msg": "Successfully burned NFT token: 'art' from Account-Id: oaccount~76cb672eeb1bd535899562a840d0c15a356db89e24bc8b43ac1dba845a4282c6 (Org-Id: appdev, User-Id: user2)"
  }
createAccount
原始方法名稱:createAccount
此 POST 方法會為指定的使用者和關聯的記號帳戶建立有趣或不可行記號的帳戶。必須為任何需要記號的使用者建立帳戶。使用者帳戶會追蹤使用者持有的 NFT 帳戶和有趣的記號帳戶。使用者必須擁有網路中的帳號,才能完成記號相關的作業。只有鏈碼的 Token Admin 才能呼叫此方法。

使用者帳戶具有唯一 ID,由 orgId 參數的 SHA-256 雜湊和 userId 參數組成。

使用者可以有多個具有唯一帳戶 ID 的可行權杖帳戶。有趣的記號帳戶 ID 是由 orgId 參數的 SHA-256 雜湊、userId 參數、以波狀符號 (~) 區隔的常數字串 ft,以及代表正由波狀符號 (~) 區隔之有趣帳戶索引的計數器編號所組成。

使用者只能有一個不可執行的權杖帳戶。非可行的記號帳戶 ID 是唯一的,由 orgId 參數的 SHA-256 雜湊、userId 參數以及以波狀符號 (~) 區隔的常數字串 nft 組成。使用者擁有的所有非可行權杖 (不論是全部或小數) 都會連結至此帳戶。

使用者帳戶 ID 開頭為 ouaccount~。記號帳戶 ID 開頭為 oaccount~

有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "ftAccount": true,
 "nftAccount": true,
 "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • ftAccount: boolean – 若為 true,則會建立有趣的記號帳戶並與使用者帳戶建立關聯。
  • nftAccount: boolean – 若為 true,則會建立與使用者帳戶相關聯的不可行記號帳戶。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值範例:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~cf20877546f52687f387e7c91d88b9722c97e1a456cc0484f40c747f7804feae",
  "userId": "user1",
  "orgId": "appdev",
  "totalAccounts": 2,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b",
      "tokenId": ""
    }
  ],
  "associatedNftAccount": "oaccount~73c3e835dac6d0a56ca9d8def08269f83cefd59b9d297fe2cdc5a9083828fa58"
}
createArtCollectionToken
原始方法名稱:createArtCollectionToken
此 POST 方法會建立 NFT (mints)。資產和關聯的特性會儲存在狀態資料庫中。此交易的呼叫者必須具有權杖帳戶。此交易的來電者會成為 NFT 的擁有者。如果記號設定檔案包含 behaviorsroles 區段和 rolesminter_role_name 特性,則交易的呼叫者必須具有 minter 角色。否則,任何來電者都可以提示 NFT。
有效負載:
{
 "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"tokenUri\":\"tokenUri value\",\"tokenMetadata\":{\"Painting_Name\":\"Painting_Name value\",\"Description\":\"Description value\",\"Painter_Name\":\"Painter_Name value\"},\"Price\":999,\"On_Sale_Flag\":true}",
 "quantity": 1,
 "sameOrgEndorser": true
}
參數:
  • tokenAsset: <Token Class> – 要提示的記號資產。如需記號資產特性的詳細資訊,請參閱輸入設定檔案。
  • quantity: number – 要提示的單詞數目。此參數的唯一支援值為 1
  • sameOrgEndorser: boolean – 布林值,指出交易背書是否必須來自與要求者相同的組織。
傳回值範例:
{
            "tokenMetadata": {
                "ISIN": "ISIN value",
                "Segment": "Segment value",
                "Issuer": "Issuer value",
                "FaceValue": 999,
                "IssueSize": 999,
                "CouponRate": 999,
                "InterestPaymentType": "simple",
                "InterestFrequency": "monthly",
                "IssueDate": "2023-03-28T15:16:36.000Z",
                "MaturityDate": "2023-03-28T15:16:36.000Z"
            },
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "tokenName": "bond",
            "tokenDesc": "tokenDesc value",
            "tokenStandard": "erc1155+",
            "tokenType": "nonfungible",
            "tokenUnit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter",
                "burner_role_name": "burner"
            },
            "mintable": {
                "max_mint_quantity": 0
            },
            "quantity": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "created"
}
createLoyaltyToken
原始方法名稱:createLoyaltyToken
此 POST 方法會建立記號。每個定義的記號都有自己的建立方法。只有鏈碼的 Token Admin 才能呼叫此方法。
有效負載:
{
 "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"Token_Name\":\"Token_Name value\",\"Token_to_Currency_Ratio\":999}",
 "sameOrgEndorser": true
}
參數:
  • tokenAsset: <Token Class> – 權杖資產。資產的特性是在模型檔案中定義。
  • sameOrgEndorser: boolean – 布林值,指出交易背書是否必須來自與要求者相同的組織。
傳回值範例:
{
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "tokenName": "loyalty",
            "tokenDesc": "tokenDesc value",
            "tokenStandard": "erc1155+",
            "tokenType": "fungible",
            "tokenUnit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter",
                "burner_role_name": "burner"
            },
            "mintable": {
                "max_mint_quantity": 0
            },
            "quantity": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "created"
}
createTokenAccount
原始方法名稱:createTokenAccount
此 POST 方法會建立有趣或不可行的權杖帳戶,以與使用者帳戶關聯。

使用者可以有多個具有唯一帳戶 ID 的可行權杖帳戶。有趣的記號帳戶 ID 是由 orgId 參數的 SHA-256 雜湊、userId 參數、以波狀符號 (~) 區隔的常數字串 ft,以及代表正由波狀符號 (~) 區隔之有趣帳戶索引的計數器編號所組成。

使用者只能有一個不可執行的權杖帳戶。非可行的記號帳戶 ID 是唯一的,由 orgId 參數的 SHA-256 雜湊、userId 參數以及以波狀符號 (~) 區隔的常數字串 nft 組成。使用者擁有的所有非可行權杖 (不論是全部或小數) 都會連結至此帳戶。

只有鏈碼的 Token Admin 才能呼叫此方法。

有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenType": "nonfungible",
 "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • tokenType: TokenType – 要建立的記號帳戶類型。唯一支援的記號類型為 nonfungiblefungible
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值:
  • 成功時,所建立權杖帳戶的 JSON 物件。
傳回值範例:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 1,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
      "tokenId": ""
    }
  ],
  "associatedNftAccount": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a"
}
createUserAccount
原始方法名稱:createUserAccount
此 POST 方法會為指定的使用者建立帳戶。必須為任何需要記號的使用者建立帳戶。使用者帳戶會追蹤使用者擁有的 NFT 帳戶和有趣的記號帳戶。使用者必須擁有網路中的帳號,才能完成記號相關的作業。

帳戶 ID 是 orgId 參數和 userId 參數的 SHA-256 雜湊。只有鏈碼的 Token Admin 才能呼叫此方法。

有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值:
  • 成功時,所建立使用者帳戶的 JSON 物件。
傳回值範例:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 0,
  "totalFtAccounts": 0,
  "associatedFtAccounts": [],
  "associatedNftAccount": ""
}
deleteAccount
原始方法名稱:deleteAccount
此 POST 方法會刪除記號帳戶。帳戶刪除後,帳戶處於最終狀態,無法更新或變更為任何其他狀態。若要刪除帳戶,帳戶餘額必須為零。只有鏈碼的 Token Admin 才能呼叫此方法。
有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值:
  • 成功時,代表權杖帳戶狀態的 JSON。
傳回值範例:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}
exchangeToken
原始方法名稱:exchangeToken
此方法會在指定的帳戶之間交換記號。此方法僅支援在 NFT、真菌記號或真菌記號與 NFT 之間交換。NFT 可為整體或分數。只有帳戶擁有者才能呼叫此方法。
有效負載:
{
 "fromTokenId": "fromTokenId value",
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "fromTokenQuantity": 1,
 "toTokenId": "toTokenId value",
 "toOrgId": "toOrgId value",
 "toUserId": "toUserId value",
 "toTokenQuantity": 1,
 "endorsers": {{endorsers}}
}
參數:
  • fromTokenId: string – 寄件者所擁有之記號的 ID。
  • fromOrgId: string – 目前組織中寄件者的成員身分服務提供者 (MSP) ID。
  • fromUserId: string – 寄件者的使用者名稱或電子郵件 ID。
  • fromTokenQuantity: number – 傳送者與接收者交換的記號數量。
  • toTokenId: string – 接收者所擁有之記號的 ID。
  • toOrgId: string – 目前組織中接收者的成員身分服務提供者 (MSP) ID。
  • toUserId: string – 接收者的使用者名稱或電子郵件 ID。
  • toTokenQuantity: number – 接收者與寄件者交換的記號數量。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值:
  • 成功時,含有記號交換詳細資訊的訊息。
傳回值範例:
{
    "msg": "Succesfully exchanged 10 tokens of type nonfungible with tokenId: [r1] from Account oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (OrgId: AppBldFFFFMay22, UserId: user2) to 10 tokens of type fungible with tokenId: [loy1] from Account oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c (OrgId: AppBldFFFFMay22, UserId: example_minter)"
}
getAccount
原始方法名稱:getAccount
此 GET 方法會傳回指定使用者的權杖帳戶詳細資訊。只有鏈碼的 Token Admin 或帳戶的 Account Owner 才能呼叫此方法。
查詢:
/getAccount?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,包含記號帳戶詳細資訊的 JSON 物件。
傳回值範例
{
    "assetType": "oaccount",
    "accountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
    "userId": "user2",
    "orgId": "AppBldFFFFMay22",
    "tokenType": "nonfungible",
    "noOfNfts": 3
}
getAccountDetailsByUser
原始方法名稱:getAccountDetailsByUser
此 GET 方法會傳回指定使用者的帳戶詳細資訊。只有鏈碼的 Token Admin 或帳戶的 Account Owner 才能呼叫此方法。
查詢:
/getAccountDetailsByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值範例:
{
    "userAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
    "associatedFTAccounts": [
        {
            "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
            "tokenId": "FT",
            "balance": 50
        }
    ],
    "associatedNFTAccount": {
        "accountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
        "associatedNFTs": [
            {
                "nftTokenId": "FNFT",
                "tokenShare": 100
            },
            {
                "nftTokenId": "FNFT2",
                "tokenShare": 110
            },
            {
                "nftTokenId": "NFT"
            }
        ]
    }
}
getAccountHistory
原始方法名稱:getAccountHistory
此 GET 方法會傳回指定權杖帳戶的帳戶歷史記錄。若為 NFT 帳戶,tokenId 參數必須空白。只有鏈碼的 Token Admin 或帳戶擁有者才能呼叫此方法。
查詢:
/getAccountHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}&tokenId={{bc-token-id}}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • tokenId: string – 不良記號的 ID。
傳回值範例:
[
    {
        "trxId": "a2cfc6fc064334d6b9931cdf67193711ec2ff5c50a4714f11855fe7384f00e35",
        "timeStamp": "2023-06-06T14:44:31.000Z",
        "value": {
            "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
            "assetType": "oaccount",
            "balance": 100,
            "orgId": "AppBldFFFFMay22",
            "tokenId": "loy1",
            "tokenName": "loyalty",
            "tokenType": "fungible",
            "userId": "user2"
        }
    },
    {
        "trxId": "de483cf7505ae4e7018c4b604c3ab9327c2fb1f802d9408e22735667c1d6997f",
        "timeStamp": "2023-06-06T14:43:23.000Z",
        "value": {
            "assetType": "oaccount",
            "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
            "userId": "user2",
            "orgId": "AppBldFFFFMay22",
            "tokenType": "fungible",
            "tokenId": "loy1",
            "tokenName": "loyalty",
            "balance": 0
        }
    },
    {
        "trxId": "db053e653d3ad9aa5b7b6e04b7cd51aacfbb413272d857a155b60d2a6a12bf4d",
        "timeStamp": "2023-06-05T16:59:08.000Z",
        "value": {
            "assetType": "oaccount",
            "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
            "userId": "user2",
            "orgId": "AppBldFFFFMay22",
            "tokenType": "fungible",
            "tokenId": "",
            "balance": 0
        }
    }
]
getAccountStatus
原始方法名稱:getAccountStatus
此 GET 方法會擷取權杖帳戶的目前狀態。鏈碼的 Token Admin 或權杖帳戶擁有者可以呼叫此方法。
查詢:
/getAccountStatus?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,代表權杖帳戶狀態的 JSON。
傳回值範例:
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
原始方法名稱:getAccountStatusHistory
此 GET 方法會擷取帳戶狀態的歷史記錄。鏈碼的 Token Admin 或權杖帳戶擁有者可以呼叫此方法。
查詢:
/getAccountStatusHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,會有 JSON 格式的帳戶狀態歷史記錄。
傳回值範例:
[
  {
    "trxId": "d5c6d6f601257ba9b6edaf5b7660f00adc13c37d5321b8f7d3a35afab2e93e63",
    "timeStamp": "2022-12-02T10:39:14.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "suspended"
    }
  },
  {
    "trxId": "e6c850cfa084dc20ad95fb2bb8165eef3a3bd62a0ac867cccee57c2003125183",
    "timeStamp": "2022-12-02T10:37:50.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "active"
    }
  }
]
getAccountTransactionHistory
原始方法名稱:getAccountTransactionHistory
此 GET 方式會傳回科目交易歷史記錄。只有鏈碼的 Token Admin 或帳戶擁有者才能呼叫此方法。
查詢:
/getAccountTransactionHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值範例:
[
    {
        "transactionId": "otransaction~3a6b23c3003626f3947e990eddbd7ac23398d2200e2eb3eac745e6ddfae140bc~7c88c736df38d5622512f1e8dcdd50710eb47c953f1ecb24ac44790a9e2f475b",
        "timestamp": "2023-06-06T14:48:08.000Z",
        "tokenId": "FNFT",
        "transactedAmount": 10,
        "triggeredByUserAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "transactedAccount": "oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446",
        "transactionType": "DEBIT",
        "balance": 90
    },
    {
        "transactionId": "otransaction~3a6b23c3003626f3947e990eddbd7ac23398d2200e2eb3eac745e6ddfae140bc~178e3730bc5bee50d02f1464a4eebf733a051905f651e5789039adb4a3edc114",
        "timestamp": "2023-06-06T14:48:08.000Z",
        "tokenId": "NFT",
        "triggeredByUserAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "transactedAccount": "oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446",
        "transactionType": "DEBIT"
    },
    {
        "transactionId": "otransaction~c369929e28e78de06c72d020f1418c9a154a7dd280b2e22ebb4ea4485e249124~a7cefb22ff39ee7e36967be71de27da6798548c872061a62dabc56d88d50b930",
        "timestamp": "2023-06-06T14:47:08.000Z",
        "tokenId": "NFT",
        "triggeredByUserAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "transactedAccount": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
        "transactionType": "MINT"
    },
    {
        "transactionId": "otransaction~114a1bc78d04be48ee6dc140c32c042ee9481cb118959626f090eec744522422~e4eb15d9354f694230df8835ade012100d82aa43672896a2c7125a86e3048f9f",
        "timestamp": "2023-06-05T17:17:57.000Z",
        "tokenId": "FNFT",
        "transactedAmount": 100,
        "triggeredByUserAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "transactedAccount": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
        "transactionType": "MINT",
        "balance": 100
    }
]
getAccountsByRole
原始方法名稱:getAccountsByRole
此方法會傳回指定角色的所有帳戶 ID 清單。只有鏈碼的 Token Admin 才能呼叫此方法。
查詢:
/getAccountsByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
參數:
  • role: string – 要搜尋的角色名稱。
  • tokenDetails: TokenDetail – 指定記號的詳細資訊。對於有趣的記號,請使用下列格式:
    {"tokenId":"token1"}
    對於非可行的記號,請使用下列格式:
    {"tokenName":"artCollection"}
傳回值範例:
{
  "accounts": [
    "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
    "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b"
  ]
}
getAllAccounts
原始方法名稱:getAllAccounts
此 GET 方法會傳回所有使用者帳戶的詳細資訊。只有鏈碼的 Token Admin 才能呼叫此方法。
查詢:
/getAllAccounts
參數:
傳回值:
  • 成功時,所有帳戶的 JSON 陣列。
傳回值範例:
[
        {
            "assetType": "ouaccount",
            "accountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
            "userId": "user2",
            "orgId": "AppBldFFFFMay22",
            "totalAccounts": 2,
            "totalFtAccounts": 1,
            "associatedFtAccounts": [
                {
                    "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
                    "tokenId": "loy1"
                }
            ],
            "associatedNftAccount": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371"
        },
        {
            "assetType": "ouaccount",
            "accountId": "ouaccount~9501bb774c156eb8354dfe489250ea91f757523d70f08ee494bda98bb352003b",
            "userId": "example_minter",
            "orgId": "AppBldFFFFMay22",
            "totalAccounts": 2,
            "totalFtAccounts": 1,
            "associatedFtAccounts": [
                {
                    "accountId": "oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c",
                    "tokenId": "loy1"
                }
            ],
            "associatedNftAccount": "oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446"
        },
    ]
getAllTokenAdmins
原始方法名稱:getAllTokenAdmins
此 GET 方法會傳回屬於鏈碼之 Token Admin 的所有使用者清單。只有鏈碼的 Token Admin 才能呼叫此方法。
查詢:
/getAllTokenAdmins
參數:
傳回值:
  • 成功時,會有 JSON 格式的 admins 陣列,其中包含 orgIduserId 物件。
傳回值範例:
{
  "admins": [
    {
      "orgId": "appdev",
      "userId": "user2"
    },
    {
      "orgId": "appdev",
      "userId": "user1"
    }
  ]
}
getAllTokens
原始方法名稱:getAllTokens
此 GET 方法會傳回儲存在狀態資料庫中的所有記號資產。只有鏈碼的 Token Admin 才能呼叫此方法。此方法使用 Berkeley DB SQL Rich Query,而且只有在連線至遠端 Oracle Blockchain Platform 網路時才能呼叫。
查詢:
/getAllTokens
參數:
傳回值範例:
[{
            "tokenMetadata": {
                "ISIN": "ISIN value",
                "Segment": "Segment value",
                "Issuer": "Issuer value",
                "FaceValue": 999,
                "IssueSize": 999,
                "CouponRate": 999,
                "InterestPaymentType": "simple",
                "InterestFrequency": "monthly",
                "IssueDate": "2023-03-28T15:16:36.000Z",
                "MaturityDate": "2023-03-28T15:16:36.000Z"
            },
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "tokenName": "bond",
            "tokenDesc": "tokenDesc value",
            "tokenStandard": "erc1155+",
            "tokenType": "nonfungible",
            "tokenUnit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter",
                "burner_role_name": "burner"
            },
            "mintable": {
                "max_mint_quantity": 0
            },
            "quantity": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "status value"
}]
getAllTokensByUser
原始方法名稱:getAllTokensByUser
此 GET 方法會傳回指定使用者擁有的所有權杖資產。此方法使用 Berkeley DB SQL Rich Query,而且只有在連線至遠端 Oracle Blockchain Platform 網路時才能呼叫。只有鏈碼的 Token Admin 或帳戶擁有者才能呼叫此方法。
查詢:
/getAllTokensByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • org_id: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • user_id: string – 使用者的使用者名稱或電子郵件 ID。
傳回值範例:
[{
            "tokenMetadata": {
                "ISIN": "ISIN value",
                "Segment": "Segment value",
                "Issuer": "Issuer value",
                "FaceValue": 999,
                "IssueSize": 999,
                "CouponRate": 999,
                "InterestPaymentType": "simple",
                "InterestFrequency": "monthly",
                "IssueDate": "2023-03-28T15:16:36.000Z",
                "MaturityDate": "2023-03-28T15:16:36.000Z"
            },
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "tokenName": "bond",
            "tokenDesc": "tokenDesc value",
            "tokenStandard": "erc1155+",
            "tokenType": "nonfungible",
            "tokenUnit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter",
                "burner_role_name": "burner"
            },
            "mintable": {
                "max_mint_quantity": 0
            },
            "quantity": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "status value"
}]
getTokenById
原始方法名稱:getTokenById
如果憑證存在於狀態資料庫中,則此 GET 方法會傳回記號物件。只有鏈碼或記號擁有者的 Token Admin 才能呼叫此方法。若為分數 NFT,回應會包含記號擁有者的清單。
查詢:
/getTokenById?tokenId={{bc-token-id}}
參數:
  • tokenId: string – 要取得之記號的 ID。
傳回值範例:
[{
            "tokenMetadata":{
               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "assetType":"otoken",
            "events":true,
            "tokenId":"bond1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"posted"
         }
]
getTokenDecimal
原始方法名稱:getTokenDecimal
此方法會傳回指定記號的小數位數。只有鏈碼的 Token Admin 才能呼叫此方法。
查詢:
/getTokenDecimal?tokenId={{bc-token-id}}
參數:
  • tokenId: string – 記號的 ID。
傳回值範例:
{
    "msg": "Token Id: tokenOne has 2 decimal places."
}
getTokenHistory
原始方法名稱:getTokenHistory
此 GET 方法會傳回指定記號 ID 的歷史記錄。任何人都可以呼叫這個方法。
/getTokenHistory?tokenId={{bc-token-id}}
參數:
  • tokenId: string – 記號的 ID。
傳回值範例:
[{
            "tokenMetadata":{
               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "assetType":"otoken",
            "events":true,
            "tokenId":"bond1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"posted"
         }
]
getTokensByName
原始方法名稱:getTokensByName
此 GET 方法會傳回指定權杖名稱的所有權杖資產。此方法使用 Berkeley DB SQL Rich Query,且只能在連線至遠端 Oracle Blockchain Platform 網路時呼叫。只有鏈碼的 Token Admin 才能呼叫此方法。
查詢:
/getTokensByName?tokenName=tokenName value
參數:
  • tokenName: string – 記號的名稱。
傳回值範例:
[
  {
    "key": "tokenOne",
    "valueJson": {
      "assetType": "otoken",
      "tokenId": "tokenOne",
      "tokenName": "moneytok",
      "tokenStandard": "erc1155+",
      "tokenType": "fungible",
      "tokenUnit": "fractional",
      "behaviors": [
        "divisible",
        "mintable",
        "transferable",
        "roles"
      ],
      "roles": {
        "minter_role_name": "minter",
        "burner_role_name": "burner"
      },
      "mintable": {
        "max_mint_quantity": 1000
      },
      "divisible": {
        "decimal": 2
      }
    }
  },
  {
    "key": "tokenTwo",
    "valueJson": {
      "assetType": "otoken",
      "tokenId": "tokenTwo",
      "tokenName": "moneytok",
      "tokenStandard": "erc1155+",
      "tokenType": "fungible",
      "tokenUnit": "fractional",
      "behaviors": [
        "divisible",
        "mintable",
        "transferable",
        "roles"
      ],
      "roles": {
        "minter_role_name": "minter",
        "burner_role_name": "burner"
      },
      "mintable": {
        "max_mint_quantity": 1000
      },
      "divisible": {
        "decimal": 2
      }
    }
  }
]
getTransactionById
原始方法名稱:getTransactionById
此 GET 方法會傳回指定交易 ID 的交易歷史記錄。此為非同步方法。任何使用者都可以呼叫這個方法。
查詢:
/getTransactionById?transactionId=transactionId value
參數:
  • transactionId: string – 交易的 ID,其為前置碼 otransaction~,後面接著十六進位格式的 64 位元雜湊。
傳回值範例:
{
  "transactionId": "otransaction~9ea7b05ab099f7ff4db8342b8c3609031f1d54f11205906e7f1fe88661fe3cbe~33b59ce0c89e96c1e16449f24301581e8e71954f38ad977c7eb6f065e87f2a53",
  "history": [
    {
      "trxId": "9ea7b05ab099f7ff4db8342b8c3609031f1d54f11205906e7f1fe88661fe3cbe",
      "timeStamp": "2022-12-08T09:01:28.000Z",
      "value": {
        "assetType": "otransaction",
        "transactionId": "otransaction~9ea7b05ab099f7ff4db8342b8c3609031f1d54f11205906e7f1fe88661fe3cbe~33b59ce0c89e96c1e16449f24301581e8e71954f38ad977c7eb6f065e87f2a53",
        "tokenId": "tokenOne",
        "fromAccountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
        "toAccountId": "",
        "transactionType": "BURN",
        "amount": 5,
        "timestamp": "2022-12-08T09:01:28.000Z",
        "triggeredByUserAccountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc"
      }
    }
  ]
}
getUserByAccountId
原始方法名稱:getUserByAccountId
此 GET 方法會傳回指定帳戶 ID 的組織 ID 和使用者 ID。
查詢:
/getUserByAccountId?accountId=accountId value
參數:
  • accountId: string – 帳戶的 ID。
傳回值範例:
{
    "orgId": "AppBldFFFFMay22",
    "userId": "user2"
}
getUsersByRole
原始方法名稱:getUsersByRole
此 GET 方法會傳回指定角色的所有使用者清單。
查詢:
/getUsersByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
參數:
  • role: string – 要搜尋的角色名稱。
  • tokenDetail: TokenDetail – 指定記號的詳細資訊。對於有趣的記號,請使用下列格式:
    {"tokenId":"token1"}
    對於非可行的記號,請使用下列格式:
    {"tokenName":"artCollection"}
傳回值範例:
{
    "users": [
        {
            "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
            "orgId": "appdev",
            "userId": "user2"
        },
        {
            "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b",
            "orgId": "appdev",
            "userId": "user1"
        }
    ]
}
init
原始方法名稱:init
部署鏈碼時,會呼叫此 POST 方法。使用者資訊會儲存為鏈碼的 Token Admin
有效負載:
{
 "adminList": "[{\"orgId\":\"{{bc-org-id}}\",\"userId\":\"{{bc-user-id}}\"}]"
}
參數:
  • adminList array – 指定記號管理員清單的 {user_id, org_id} 資訊陣列。adminList 陣列是必要參數。
傳回值:
  • 成功時,會顯示不含有效負載的訊息。
傳回值範例:
{

}
isInRole
原始方法名稱:isInRole
此 GET 方法會傳回布林值,指示使用者是否具有指定的角色。只有鏈碼的 Token Admin 或帳戶的 Account Owner 才能呼叫此方法。
查詢:
/isInRole?orgId={{bc-org-id}}&userId={{bc-user-id}}&role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • role: string – 要搜尋的角色名稱。
  • tokenDetail: TokenDetail – 指定記號的詳細資訊。對於有趣的記號,請使用下列格式:
    {"tokenId":"token1"}
    對於非可行的記號,請使用下列格式:
    {"tokenName":"artCollection"}
傳回值範例:
{
    "result": true,
    "msg": "Account Id oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: user2) has minter role"
}
isTokenAdmin
原始方法名稱:isTokenAdmin
如果函數的呼叫程式是 Token Admin,則此 GET 方法會傳回布林值 true,否則會傳回 false。只有鏈碼的 Token Admin 才能呼叫此方法。
查詢:
/isTokenAdmin?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 如果呼叫程式是 Token Admin,此方法會傳回 true,否則會傳回 false
傳回值範例:
{
  "result": true
}
mintBatch
原始方法名稱:mintBatch
此 POST 方法會在批次作業中建立 (分鐘) 多個記號。此方法只會建立有趣的記號或分數非有趣的記號。

對於有趣的記號,如果在規格檔案中定義了 minter 角色,則具有 minter 角色的任何使用者都可以呼叫此方法。如果不是,任何使用者都可以使用此方法來提示記號。如果在建立或更新記號時指定了該特性,您就不能超出記號的 max_mint_quantity 特性。

對於非有趣的記號,如果在規格檔案中定義了 minter 角色,則具有 minter 角色的任何使用者都可以呼叫此方法。如果不是,任何使用者都可以使用此方法來提示記號。此外,呼叫者也必須是記號的建立者。部分不可行記號的數量沒有上限,無法加以提示。

您無法使用此方法來鑄造整個不適用的記號。

有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "sameOrgEndorser": true
}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • tokenIds: string[] – 提示記號的記號 ID 清單。
  • quantity: number[] – 對應至記號 ID 陣列的記號數量清單。
  • sameOrgEndorser: boolean – 布林值,指出交易背書是否必須來自與要求者相同的組織。
傳回值:
  • 成功時,包含提示記號詳細資訊的 JSON 物件。
傳回值範例:
{
    "msg": "Successfully minted batch of tokens for User-Account-Id ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38 (Org-Id: AppBldFFFFMay22, User-Id: user2).",
    "details": [
        {
            "msg": "Successfully minted 100 tokens of fractional tokenId: plot55 to Org-Id: AppBldFFFFMay22, User-Id: user2"
        },
        {
            "msg": "Successfully minted 100 tokens of tokenId: loyalty to Token-Account-Id oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e"
        }
    ]
}
name
原始方法名稱:name
此 GET 方法會傳回記號類別的名稱。任何人都可以呼叫這個方法。
查詢:
/name?tokenId={{bc-token-id}}
參數:
  • tokenId: string – 記號的 ID。
傳回值範例:
{
    "tokenName": "artcollection"
}
ownerOf
原始方法名稱:ownerOf
此 GET 方法會傳回指定權杖 ID 之擁有者的帳戶 ID。任何人都可以呼叫這個方法。
查詢:
/ownerOf?tokenId={{bc-token-id}}
參數:
  • tokenId: string – 記號的 ID。
傳回值:
  • 擁有者帳戶 ID 的 JSON 物件。
傳回值範例:
[
    {
        "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
        "orgId": "Org1MSP",
        "userId": "admin"
    },
    {
        "accountId": "oaccount~74108eca702bab6d8548e740254f2cc7955d886885251d52d065042172a59db0",
        "orgId": "Org1MSP",
        "userId": "user"
    }
]
post
原始方法名稱:post
此 POST 方法會張貼指定價格的銷售權杖。
有效負載:
{
 "tokenId": "{{bc-token-id}}",
 "sellingPrice": 1,
 "endorsers": {{endorsers}}
}
參數:
  • tokenId: string – 記號的 ID。
  • sellingPrice: number – 記號的價格。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值範例:
{
  "msg": "Token ID : 'artCollection1' has been posted for selling in the marketplace"          
}
removeRole
原始方法名稱:removeRole
此方法會從指定的使用者移除角色。只有鏈碼的 Token Admin 才能呼叫此方法。
有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "role": "role value (for example minter / burner)",
 "tokenDetail": "{\"tokenName\":\"tokenName value\"}",
 "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • role: string – 要從指定使用者移除的角色名稱。
  • tokenDetail: TokenDetail – 指定記號的詳細資訊。對於有趣的記號,請使用下列格式:
    {"tokenId":"token1"}
    對於非可行的記號,請使用下列格式:
    {"tokenName":"artCollection"}
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值範例:
{
  "msg": "Successfully removed role 'minter' from Account Id: oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b (Org-Id: appdev, User-Id: user1)"
}
removeTokenAdmin
原始方法名稱:removeTokenAdmin
此 POST 方法會移除使用者作為鏈碼的 Token Admin。只有鏈碼的 Token Admin 才能呼叫此方法。管理員無法移除自己。
有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "sameOrgEndorser": true
}
參數:
  • org_id: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • user_id: string – 使用者的使用者名稱或電子郵件 ID。
  • sameOrgEndorser: boolean – 布林值,指出交易背書是否必須來自與要求者相同的組織。
傳回值範例:
{
  "msg": "Successfully removed Admin (OrgId: appDev, UserId: user1)"
}
safeBatchTransferFrom
原始方法名稱:safeBatchTransferFrom
此 POST 方法會將指定記號的所有權從呼叫程式轉移到另一個帳戶。此方法的呼叫程式必須是記號的傳送者,而且必須擁有指定的記號。對於分數 NFT,如果使用者將其所有共用轉移給另一位使用者,則會失去該記號的所有權。
有效負載:
{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "toOrgId": "toOrgId value",
 "toUserId": "toUserId value",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "endorsers": {{endorsers}}
}
參數:
  • fromOrgId: string – 目前組織中寄件者與記號擁有者的成員身分服務提供者 (MSP) ID。
  • fromUserId: string – 寄件者與記號擁有者的使用者名稱或電子郵件 ID。
  • toOrgId: string – 目前組織中接收者的成員身分服務提供者 (MSP) ID。
  • toUserId: string – 接收者的使用者名稱或電子郵件 ID。
  • tokenIds: string[] – 要傳輸之記號的 ID 陣列。
  • quantity: number[] – 與記號 ID 陣列對應的要傳輸的記號數量清單。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值範例:
[
    {
        "msg": "Successfully transferred NFT token: 'FNFT' of '10' quantity from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: AppBldFFFFMay22, User-Id: example_minter)"
    },
    {
        "msg": "Successfully transferred 10 FT token: 'FT' from Account-Id: oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c (Org-Id: AppBldFFFFMay22, User-Id: example_minter)"
    },
    {
        "msg": "Successfully transferred NFT token: 'NFT' from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: AppBldFFFFMay22, User-Id: example_minter)"
    }
]
suspendAccount
原始方法名稱:suspendAccount
此 POST 方法會暫停有趣的權杖帳戶。如果在分類帳中找不到 accountStatus 值,則會發出錯誤。只有鏈碼的 Token Admin 才能呼叫此方法。
有效負載:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的成員身分服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值範例:
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
totalNetSupply
原始方法名稱:totalNetSupply
此 GET 方法會傳回有提示的記號總數減去已燒錄的記號數目。只有鏈碼的 Token Admin 才能呼叫此方法。
查詢 (有趣的權杖):
/totalNetSupply?tokenDetail={"tokenId":"{{bc-token-id}}"}
查詢 (非可行權杖):
/totalNetSupply?tokenDetail={"tokenName":"tokenName value"}
參數:
  • tokenDetail: TokenDetail – 指定記號的詳細資訊。對於有趣的記號,請使用下列格式:
    {"tokenId":"token1"}
    對於非可行的記號,請使用下列格式:
    {"tokenName":"artCollection"}
傳回值範例:
{
    "totalNetSupply": 105
}
totalSupply
原始方法名稱:totalSupply
此 GET 方法會傳回提示的記號總數。只有鏈碼的 Token Admin 才能呼叫此方法。
查詢 (有趣的權杖):
/totalSupply?tokenDetail={"tokenId":"{{bc-token-id}}"}
查詢 (非可行權杖):
/totalSupply?tokenDetail={"tokenName":"tokenName value"}
參數:
  • tokenDetail: TokenDetail – 指定記號的詳細資訊。對於有趣的記號,請使用下列格式:
    {"tokenId":"token1"}
    對於非可行的記號,請使用下列格式:
    {"tokenName":"artCollection"}
傳回值範例:
{
    "totalSupply": 110
}
updateArtCollectionToken
原始方法名稱:updateArtCollectionToken
此 POST 方法會更新記號特性。只有記號擁有者可以呼叫此方法。若為 NFT,權杖描述資料和權杖 URI 在提示之後便無法更新。
有效負載:
{
 "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"tokenUri\":\"tokenUri value\",\"status\":\"status value\", \"tokenMetadata\":{\"ISIN\":\"ISIN value\",\"Segment\":\"Segment value\",\"Issuer\":\"Issuer value\",\"FaceValue\":999,\"IssueSize\":999,\"CouponRate\":999,\"InterestPaymentType\":\"InterestPaymentType value\",\"InterestFrequency\":\"InterestFrequency value\",\"IssueDate\":\"2023-03-28T15:16:36+00:00\",\"MaturityDate\":\"2023-03-28T15:16:36+00:00\"},\"status\":\"status value\"}",
 "sameOrgEndorser": true
}
參數:
  • tokenAsset: <Token Class> – 要更新的記號資產。如需記號資產特性的詳細資訊,請參閱輸入設定檔案。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值範例:
{
            "tokenMetadata": {
                "ISIN": "ISIN value",
                "Segment": "Segment value",
                "Issuer": "Issuer value",
                "FaceValue": 999,
                "IssueSize": 999,
                "CouponRate": 999,
                "InterestPaymentType": "simple",
                "InterestFrequency": "monthly",
                "IssueDate": "2023-03-28T15:16:36.000Z",
                "MaturityDate": "2023-03-28T15:16:36.000Z"
            },
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "tokenName": "bond",
            "tokenDesc": "tokenDesc value",
            "tokenStandard": "erc1155+",
            "tokenType": "nonfungible",
            "tokenUnit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter",
                "burner_role_name": "burner"
            },
            "mintable": {
                "max_mint_quantity": 0
            },
            "quantity": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "created"
}
updateLoyaltyToken
原始方法名稱:updateLoyaltyToken
此 POST 方法會更新記號特性。只有記號擁有者可以呼叫此方法。若為 NFT,權杖描述資料和權杖 URI 在提示之後便無法更新。
有效負載:
{
 "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"Token_Name\":\"Token_Name value\",\"Token_to_Currency_Ratio\":999}",
 "sameOrgEndorser": true
}
參數:
  • tokenAsset: <Token Class> – 要更新的記號資產。如需記號資產特性的詳細資訊,請參閱輸入設定檔案。
  • endorsers: string[] – 必須為交易背書的對等陣列 (例如 peer1peer2)。
傳回值範例:
{
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "tokenName": "loyalty",
            "tokenDesc": "tokenDesc value",
            "tokenStandard": "erc1155+",
            "tokenType": "fungible",
            "tokenUnit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter",
                "burner_role_name": "burner"
            },
            "mintable": {
                "max_mint_quantity": 0
            },
            "quantity": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "created"
}
URI
原始方法名稱:URI
此 GET 方法會傳回指定記號的 URI。只有記號建立者可以呼叫此方法。
Query - 查詢
/URI?tokenId={{bc-token-id}}
參數:
  • tokenId: string – 記號的 ID。
傳回值範例:
{
    "tokenUri": "example.com"
}