1.0.0 • Published 5 years ago

casp_api v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
5 years ago

unbound_casp_api

UnboundCaspApi - a JavaScript client for unbound_casp_api

Unbound's Crypto Asset Security Platform ("CASP") provides the advanced technology and the architecture to secure crypto asset transactions. The crypto asset solution contains the CASP service and different end points (humans or BOTs).

CASP provides the framework to create Accounts, which hold multiple Vaults where secrets are stored. Access control is managed by the Quorum Policy for all of the Participants.

The CASP system manages the following entities:

  • Accounts - a container for a set of vaults and participants that manage these vaults.
  • Participants - a human within the account or a BOT taking part in cryptoasset transactions. Each participant owns a share of the cryptographic material that is part of the different transactions.
  • Vaults - a secure container for the cryptographic material used to protect a crypto asset (i.e. the seed or private key).
  • Quorum vault - shares the responsibility of executing a transaction between many different participants in a structure defined by the vault policy.

CASP is a collaboration service, where different participants collaborate to perform crypto asset transactions. As such, it has inherent support for asynchronous operation. When an operation is triggered, it is located in a queue and completed when the relevant set of participants complete their part. CASP supports triggering asynchronous operations, notifying the relevant participants on required actions, and checking the status of operations.

For more information about the CASP SDK, see:

For more information, please visit https://www.unboundtech.com/

Installation

For Node.js

npm

To publish the library as an npm, please follow the procedure in "Publishing npm packages".

Then install it via:

npm install unbound_casp_api --save
Local development

To use the library locally without publishing to a remote npm registry, first install the dependencies by changing into the directory containing package.json (and this README), which we call JAVASCRIPT_CLIENT_DIR. Then run:

npm install

Next, link it globally in npm with the following (also in JAVASCRIPT_CLIENT_DIR):

npm link

Finally, switch to the directory you want to use your unbound_casp_api from, and run:

npm link /path/to/<JAVASCRIPT_CLIENT_DIR>

You should now be able to require('unbound_casp_api') in JavaScript files from the directory where you ran the link command.

git

If the library is hosted in a git repository, e.g. https://github.com/GIT_USER_ID/GIT_REPO_ID then install it via:

    npm install GIT_USER_ID/GIT_REPO_ID --save

Browser Environments

The library also works in the browser environment via npm and browserify. After following the above steps with Node.js and installing browserify with npm install -g browserify, perform the following (assuming main.js is your entry file, where you actually use this library):

browserify main.js > bundle.js

Then include bundle.js in the HTML pages.

Webpack Configuration

Using Webpack you may encounter the following error: "Module not found: Error: Cannot resolve module". You should disable the AMD loader and then add/merge the following section to your webpack config:

module: {
  rules: [
    {
      parser: {
        amd: false
      }
    }
  ]
}

Getting Started

Please follow the installation instructions and execute the following JS code:

var UnboundCaspApi = require('unbound_casp_api');

var defaultClient = UnboundCaspApi.ApiClient.instance;

// Configure OAuth2 access token for authorization: ApiKeyAuth
var ApiKeyAuth = defaultClient.authentications['ApiKeyAuth'];
ApiKeyAuth.accessToken = "YOUR ACCESS TOKEN"

var api = new UnboundCaspApi.AccountsApi()

var body = new UnboundCaspApi.Body(); // {Body} Create accounts request

api.createAccount(body).then(function(data) {
  console.log('API called successfully. Returned data: ' + data);
}, function(error) {
  console.error(error);
});

Documentation for Authorization

ApiKeyAuth

  • Type: OAuth
  • Flow: password
  • Authorization URL:
  • Scopes:
    • /mng: admin manage

Bearer

  • Type: API key
  • API key parameter name: Bearer
  • Location: HTTP header

basicAuth

  • Type: HTTP basic authentication