NAV Navbar
shell

Introduction

Provide is an enterprise low-code application platform for distributed systems that makes it quick and easy to add blockchain to your organization's technology stack. This documentation describes the Provide architecture and a holistic suite of APIs made available by Provide for organizations and developers to build, test and scale Web3 applications and distributed systems.

Platform Overview

This overview provides an inventory of core APIs which are suitable for building all kinds of Web3 applications. The APIs enable users to orchestrate public and permissioned peer-to-peer infrastructure, connect that infrastructure with legacy systems and build sophisticated applications in a low-code environment.

Infrastructure APIs

Core APIs

Composite APIs

Client Libraries

The following open-source client libraries are available on GitHub:

Provide has a web UI and CLI to manage and consume our APIs. Note that the web UI is meant only for developers at this time.

Authorization

Provide requires the presence of a bearer API token to authorize most API calls. A bearer API token is an encoded JWT which contains a subject claim (sub) which references the authorized entity (i.e., a User or Application). The encoded JWT token will, in most cases, include an expiration (exp) after which the token is no longer valid. Tokens issued without an expiration date (i.e., certain machine-to-machine API tokens) can be explicitly revoked. The standard and application-specific JWT claims are signed using the RS256 algorithm. The authorized entity may use the signed bearer Token to access one or more platform resources for which the Token was authorized. Unless otherwise noted, all API requests must include a header such as: Authorization: bearer <JWT>.

The bearer Authorization header is scoped to an authorized platform User or an Application as described above.

The encoded JWT is signed using the RS256 (RSA Signature with SHA-256) algorithm. The following public key can be used to verify the signature:

-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0yqdJMBej1X8WwMMkMZw
DV6zZzup4RHLcln0xfGSm6dMPBDM1G96fuHhOwH5+uU5MQHJP7RqW71Bu5dLIG8Z
RX+XyUtb0sxCV/7X27Nm/bKpDysaSWQ36reAmw5wVaB1SoFeN519FY5rhoCWmH3W
auBAHTzpjg57p7uR0XynYXf8NSGXlysWHppkppqwrPH64G6UZaB7SMl1PFfkJeqZ
zJpzBGYWsixdF1EjXn+Yz0mhUZO2OSPWifOuN7cpn3BuNqegg4iVdz5HDoQhJW7N
uRhf3buKd/mjat8XA3e2Rkrr2h835GloScJkj7I4BZUNkzKQuEK6C9xW/zJtbPqQ
RYEq84A1hMfSZ3G5HFe2JkqiyvXkFwS3qMc5Pur8tZSzBj6AYMoJJso/aOdphpR8
6MaaWXWTwvwfpZbMRqehOcsmQcNLF2gLJPuHzR5WtVCnWrDgvjsWyeDD1WISKusi
aOeHxZjS3Bjl4Imq48l1wi2eI/11F/Xg70F4FJaMYLVHJA2nsmBuuQ9UDYHHq876
clKvIvgIItzJcv9lnmjl1Jks1DwCUF3qF2ugYcs9A3EoEcNzhMgZNJ2j5OUzfx1E
bzVKkqoC9MQpZWXgqV0KQqKK4I3rMY+1hLqk4S4eF9ZAVlT33qfMzlf0qWTOcP1Z
i2dsm0fy4NxWxknlEn5/LhMCAwEAAQ==
-----END PUBLIC KEY-----

Pagination

Collection endpoints which return large datasets support the following pagination query parameters:

Query Param Description
page The 1-based page number being requested
rpp The results per page being requested

When no page and rpp parameters are provided in the query, sane defaults (i.e., page=1&rpp=25 will be applied based on the resource being requested.

An X-Total-Results-Count header is provided in the response as a hint indicating how many total results exist for the requested resource, all filters applied.

The Range and Content-Range entity headers are not currently supported for pagination.

Status Codes

The following status codes describe Provide API responses:

Status Code Meaning
200 OK The request was successful
201 Created The request was successful and a new entity was created
202 Accepted The request was successfully accepted and processing will complete asynchronously
204 No Content The request was successful but did not return a response
401 Unauthorized The request required an API Authorization header, or one was provided which could not be authenticated
403 Forbidden The supplied API Authorization header does not have permission to access the requested resource
404 Not Found Platform did not find the requested resource
429 Too Many Requests The request was not accepted due to exceeding the rate limit
500 Internal Server Error The request resulted in an internal error during processing
501 Not Implemented The requested resource is not implemented by the platform
503 Service Unavailable The request cannot be fulfiled due to temporary unavailability of a backend service

Rate Limits

We reserve the right to enforce rate limits on certain API calls in the future.