IOstamp API Documentation

Store Data Hashes Permanently on the Bitcoin SV Blockchain

Quick Start

Store your first hash in seconds:

# Set your API key as environment variable
export IOSTAMP_API_KEY="your-api-key-here"

curl -X POST https://api.iostamp.com/store-file-hash \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $IOSTAMP_API_KEY" \
  -d '{"fileData": "My important document data"}'

Base URL

Environment URL
Production https://api.iostamp.com

Authentication

Protected endpoints require an API key sent in the request header.

⚠️ Security Best Practice: Never hardcode your API key in source code. Store it in an environment variable.

Step 1: Create a .env file:

IOSTAMP_API_KEY=your-api-key-here

Step 2: Include the key in the X-API-Key header.

PROTECTED

POST /store-file-hash
POST /store-data-onchain
POST /store-merkle-batch

PUBLIC

GET /health
GET /verify/{txid}
POST /verify/{txid}/data

Store Data Hash — POST /store-file-hash

Store a SHA256 hash of your data permanently on the Bitcoin SV blockchain.

Headers

Header Required Description
Content-Type Yes application/json
X-API-Key Yes Your API key

Body

Field Type Description
fileData string The data to hash and store

Example (Python)

import os
import requests
from dotenv import load_dotenv

load_dotenv()

response = requests.post(
    'https://api.iostamp.com/store-file-hash',
    headers={
        'Content-Type': 'application/json',
        'X-API-Key': os.getenv('IOSTAMP_API_KEY')
    },
    json={'fileData': 'My important document data'}
)
print(response.json())

Success Response

{
  "message": "Transaction broadcasted successfully!",
  "txid": "d77fdf46a060901c...",
  "fileHash": "3d298c392052bd7f...",
  "explorer": "https://whatsonchain.com/tx/..."
}

Store Raw Data (B://) — POST /store-data-onchain

Store full payloads formatting conforming to the B:// protocol so it is easily accessible by smart contracts and off-chain indexers.

Body

Field Type Description
data string The raw data/json to store on-chain
mimeType string MIME type of the data (default application/json)
encoding string Character encoding (default utf-8)

Success Response

{
  "message": "Data stored on-chain successfully!",
  "txid": "d7...",
  "dataSize": 1024,
  "mimeType": "application/json",
  "protocol": "B://",
  "explorer": "https://whatsonchain.com/tx/d7..."
}

Batch Merkle Stamping — POST /store-merkle-batch

Batch 1-10 items into a single transaction utilizing a Merkle tree root hash for high-volume efficiency.

Body

Field Type Description
items array Array containing objects with {"data": "string"}

Success Response

{
  "message": "Merkle batch stamped on-chain successfully!",
  "txid": "d7...",
  "merkleRoot": "cf84...",
  "merkleReceipts": [ ... ]
}

Verify Transaction — GET /verify/{txid}

Retrieve the stored hash and transaction details from the blockchain.

curl https://api.iostamp.com/verify/d77fdf46a060901c...

Response Fields

Field Description
txid Transaction ID
blockHeight Block number
confirmations Number of confirmations
opReturn.hash The stored SHA256 hash

Verify Data Match — POST /verify/{txid}/data

Compare your original data against the hash stored on the blockchain.

Request Body

Field Type Description
data string Original data to verify

Response

Field Description
verified true if matches, false if tampered
blockchainHash Hash stored on blockchain
calculatedHash Hash of provided data

Official Node.js SDK

A robust SDK mapped to all IOStamp APIs.

npm install @iostamp/sdk

Usage

import { IOStamp } from '@iostamp/sdk';

const client = new IOStamp({ apiKey: process.env.IOSTAMP_API_KEY });
const receipt = await client.stamp({ data: 'Hello World' });
console.log('Stamped Tx:', receipt.txHash);

Smart Contract Builder

The IOStamp dashboard features an integrated full-feature Smart Contract Builder using sCrypt (TypeScript).

Developers can write, compile, and seamlessly prepare TypeScript-based BSV smart contracts utilizing the data structures stored via the IOstamp API to automate industrial settlements on-chain.

Health Check — GET /health

curl https://api.iostamp.com/health

Response

{
  "status": "running",
  "version": "2.0.0",
  "uptime": { "seconds": 86400, "formatted": "1d 0h 0m" },
  "endpoints": { "store": "POST /store-file-hash", ... },
  "rateLimit": { "store": "10 requests/minute", "global": "100 requests/15 minutes" }
}

Rate Limits

Endpoint Limit
POST /store-file-hash 100 requests per minute
All endpoints 1000 requests per 15 minutes

Version: 2.0.0 | Last Updated: February 2026