# Asset issuance API ## Description This is version `0.0.2` of this API documentation. Last update on Apr 21, 2021. This is draft documentation for Bitbond tokenisation API. ## Authorization API clients are authorized with bearer tokens. Tokens can be generated in the admin panel as a key/secret pair. Secret are used to build HMAC-SHA1 signatures on a client side. **Signature generation pseudo code** ``` /** * HMAC a hashing function using SHA1 algorythm * @param {String} secret The secret used to hash the message * @param {String} message Message to be hashed * @return {Bin} Binary digest */ HMAC = func(secret, message) /** * signatureKey returns derived key * @param {String} secret The secret from tokens key/secret pair. * @param {String} date UTC request date in YYYY-MM-DD format * @param {String} method Request method POST, GET, DELETE etc * @param {String} path Request path, e.g. /api/v1/access_tokens * @return {Bin} Derived key used to generate payload signature */ signatureKey = func(secret, date, method, path) { HMAC(HMAC(HMAC("bitbond" + secret, date), method), path) } /** * signature returns request signature * @param {String} key The secret from tokens key/secret pair. * @param {String} payload Raw request body * @return {String} Request signature */ signature = func(key, payload) { HMAC(key, payload).toString() } ``` **Example in JavaScript** ``` import hmacSHA1 from 'crypto-js/hmac-sha1'; let generateSigningKey = (secret, dateStamp, method, path) => { let key = hmacSHA1(dateStamp, `bitbond${secret}`) key = hmac(method, key) key = hmac(path, key) return key } let dateStamp = (new Date()).toISOString().substring(0, 10) let method = request.method let path = request.url.getPath() let body = request.body && request.body.raw || '' let signingKey = generateSigningKey(secret, dateStamp, method, path) let signature = hmacSHA1(body, signingKey).toString() ``` ### Headers To authorize API access this header needs to be added to the request. ``` Authorization: Bearer [token] X-Signature: Request signature ``` ## Servers ## Authentication ## Endpoints and operations ### [Assets](https://assets-api-docs.bitbond.com/group/endpoint-assets.md) - [List of assets](https://assets-api-docs.bitbond.com/operation/operation-get-assets.md) - [Create a new asset](https://assets-api-docs.bitbond.com/operation/operation-post-assets.md) - [Single asset](https://assets-api-docs.bitbond.com/operation/operation-get-assets-parameter.md) - [Update an asset](https://assets-api-docs.bitbond.com/operation/operation-patch-assets-parameter.md) - [Create issuing account](https://assets-api-docs.bitbond.com/operation/operation-post-assets-parameter-issuing_account.md) - [Locks the issuing account](https://assets-api-docs.bitbond.com/operation/operation-delete-assets-parameter-issuing_account.md) - [Sync issuing account](https://assets-api-docs.bitbond.com/operation/operation-patch-assets-parameter-issuing_account.md) - [Allocate orders](https://assets-api-docs.bitbond.com/operation/operation-post-assets-parameter-allocate.md) - [Tokenise asset](https://assets-api-docs.bitbond.com/operation/operation-post-assets-parameter-tokenise.md) ### [Account holders](https://assets-api-docs.bitbond.com/group/endpoint-account-holders.md) - [List of all account holders](https://assets-api-docs.bitbond.com/operation/operation-get-account_holders.md) - [Create new account holder profile](https://assets-api-docs.bitbond.com/operation/operation-post-account_holders.md) - [Individual account holder](https://assets-api-docs.bitbond.com/operation/operation-get-account_holders-parameter.md) ### [Accounts](https://assets-api-docs.bitbond.com/group/endpoint-accounts.md) - [List of accounts](https://assets-api-docs.bitbond.com/operation/operation-get-account_holders-parameter-accounts.md) - [Create new account](https://assets-api-docs.bitbond.com/operation/operation-post-account_holders-parameter-accounts.md) - [Single account](https://assets-api-docs.bitbond.com/operation/operation-get-account_holders-parameter-accounts-parameter.md) ### [Orders](https://assets-api-docs.bitbond.com/group/endpoint-orders.md) - [List of orders](https://assets-api-docs.bitbond.com/operation/operation-get-assets-parameter-orders.md) - [Create a new order](https://assets-api-docs.bitbond.com/operation/operation-post-assets-parameter-orders.md) - [Single order](https://assets-api-docs.bitbond.com/operation/operation-get-assets-parameter-orders-parameter.md) - [Status update](https://assets-api-docs.bitbond.com/operation/operation-patch-assets-parameter-orders-parameter.md) [Powered by Bump.sh](https://bump.sh)