結合的權杖架構包裝程式 API 套裝程式

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

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

包裝函式 API

registerOrg
原始方法名稱:registerOrg
此 POST 方法會在系統中登錄組織。只有記號管理員才能呼叫此方法。
有效負載:
{
    "orgId": "{{bc-org-id}}",
    "orgName": "org_name value",
    "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • orgName: string – (選擇性) 組織的名稱。
  • endorsers: string[] – 必須為交易背書的對等體陣列 (例如 peer1peer2)。
傳回值範例:
{
    "assetType": "oorgregistry",
    "org_registry_id": "orgregistry",
    "registered_orgs": [
        {
            "org_id": "Org1MSP",
            "org_name": "Organization name"
        }
    ]
}
getAllRegisteredOrgs
原始方法名稱:getAllRegisteredOrgs
此 GET 方法會擷取所有已註冊組織的詳細資料。只有記號管理員才能呼叫此方法。
查詢:
/getAllRegisteredOrgs
參數:
傳回值範例:
[
    {
        "org_id": "Org1MSP",
        "org_name": "Organization name"
    }
]
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 – 以太坊代幣的價格。
  • 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。資產和關聯的性質會儲存在狀態資料庫中。此交易的來電者必須有權杖帳戶。此交易的呼叫者會成為 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 RTF 查詢,而且只能在連線至遠端 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 RTF 查詢,而且只能在連線至遠端 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 豐富查詢,而且只能在連線至遠端 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 陣列是必要參數。
傳回值:
  • 成功時,訊息沒有有效負載 (Payload)。
傳回值範例:
{

}
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 方法會在批次作業中建立 (mints) 多個記號。此方法只會建立有趣的記號或小數的不可行記號。

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

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

您無法使用此方法來提示整個不可執行的記號。

有效負載:
{
 "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"
        }
    ]
}
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"
}