Skip to main content

OpenAPI Specs & Tooling

ProvLabs provides comprehensive OpenAPI specifications and developer tools to make integration easier. This guide covers our OpenAPI specs, code generation tools, and testing utilities.

OpenAPI Specifications​

We provide complete OpenAPI 3.0 specifications for all our APIs:

Core APIs: /api/provenance.openapi.yaml - Accounts, Assets, Vault, Trading

Node RPC: /api/noderpc.openapi.yaml - Blockchain query and transaction APIs

WebSocket APIs: Real-time data streaming specifications

Code Generation​

Generate client libraries from our OpenAPI specs:

OpenAPI Generator​

# Install OpenAPI Generator
npm install -g @openapitools/openapi-generator-cli

# Generate JavaScript client
openapi-generator-cli generate \
-i https://api.provlabs.com/provenance.openapi.yaml \
-g javascript \
-o ./provlabs-client

# Generate Python client
openapi-generator-cli generate \
-i https://api.provlabs.com/provenance.openapi.yaml \
-g python \
-o ./provlabs-client-py

Using Generated Clients​

// Generated JavaScript client
import { ProvlabsApi } from "./provlabs-client";

const api = new ProvlabsApi({
basePath: "https://api.provlabs.com",
accessToken: "your-access-token",
});

// Get accounts
const accounts = await api.getAccounts();

Testing Tools​

Postman Collection​

Import our Postman collection for easy API testing:

# Download Postman collection
curl -o provlabs-api.postman_collection.json \
https://api.provlabs.com/postman/collection.json

Insomnia Workspace​

# Download Insomnia workspace
curl -o provlabs-api.insomnia.json \
https://api.provlabs.com/insomnia/workspace.json

Interactive Documentation​

Swagger UI​

Explore our APIs interactively:

Core APIs: https://api.provlabs.com/docs
Node RPC: https://api.provlabs.com/node/docs

Redoc​

Beautiful, responsive API documentation:

Core APIs: https://api.provlabs.com/redoc
Node RPC: https://api.provlabs.com/node/redoc

Schema Validation​

JSON Schema​

Validate your requests and responses:

# Install ajv-cli
npm install -g ajv-cli

# Validate request against schema
ajv validate -s provenance.openapi.yaml -d request.json

TypeScript Types​

Generate TypeScript types from OpenAPI specs:

# Install openapi-typescript
npm install -g openapi-typescript

# Generate types
openapi-typescript https://api.provlabs.com/provenance.openapi.yaml \
-o types/provlabs-api.ts

Glossary (quick orientation)​

Before diving into the APIs, familiarize yourself with these key concepts:

Markers (Fungible Tokens)
Markers are fungible tokens on Provenance Blockchain, representing interchangeable units of value (e.g., stablecoins, utility tokens).
Types:

  • MARKER_TYPE_COIN: Standard fungible tokens with unrestricted transfers.
  • MARKER_TYPE_RESTRICTED: Permissioned tokens requiring attributes or permissions for transfers.

Scopes (Non-Fungible Assets)
Scopes are structured containers for unique assets and their on-chain records. Components:

  • Scope Specification: Defines the structure and purpose of a scope.
  • Value Owner: The address registered as the owner of the scope's value.

nhash
Provenance's base/fee token used to pay network fees.

Denom
A Denom is atToken identifier (e.g., nhash).

Fee-grant
Sponsor-pays model: granter gives grantee an allowance to pay fees.

Plus endpoints
Curated, UI-ready aggregates for balances, metadata, transfers, NAV, holders, etc.

  • Base URL: /v1/...

Net Asset Value (NAV)
NAV represents the value of an asset, used for investor reporting and dashboards.

Data access
Addresses allowed to access off-chain data linked to a scope.

Value owner
Address registered as the scope's value owner; can be updated/transferred.

Next Steps​

Now that you have the tools you need:

Choose a workflow that matches your use case

Explore our API reference for detailed documentation

Check out our solutions for common patterns


Ready to pick your workflow? Let's explore our next steps!