npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@odatano/core

v0.3.26

Published

SAP CAP plugin for Cardano blockchain OData V4 integration

Downloads

2,634

Readme

alt text

Enterprise OData Services for the Cardano Blockchain

ODATANO is an SAP CAP–based service that exposes the Cardano blockchain via a standardized OData V4 interface, enabling seamless enterprise-grade read and write access. It provides unified REST/OData access to on-chain data while supporting native transaction building and submission directly from business applications. By abstracting blockchain complexity behind familiar SAP integration patterns, ODATANO allows enterprises to integrate Cardano into core processes securely, auditable, and at scale.

Tests Coverage TypeScript CAP License npm version

Project Status

Funded by Cardano Catalyst Fund 14: Official Proposal

Milestone 1 (Completed January 2026) ✅

Cardano read operations with multi-provider failover (Blockfrost → Koios), 18 Entities defining Cardano Core Components & 15 Blockchain Read Actions with comprehensive input validation, full OData V4 query support, lazy on-demand indexing with TTL-based refresh, 340 tests across 11 test suites, CI/CD with Codecov integration

Milestone 1: OData Service Foundation & Blockchain Read Access

Milestone 2 (Completed February 2026) ✅

Cardano transaction building with dual-builder architecture (CSL & Buildooor), 4 transaction types (simple transfers, token minting, multi-asset transfers, metadata), Ogmios live backend for protocol parameters & UTxO queries, 6 Transaction Actions with external signing workflow, full Build → Sign → Submit flow, 327 new tests & 6 new test suites, end-to-end Preview testnet examples & Postman collection

Milestone 2: Transaction Build & Submit

Milestone 3 (Completed March 2026) ✅ - pending approval

Extension of the transaction module & external workflow to export unsigned Cardano transactions via OData, enabling deterministic external signing (e.g. Cardano CLI or browser wallets) with full key separation and no private-key handling in the CAP service. Includes Plutus smart contract support (BuildPlutusSpendTransaction, SetCollateral), end-to-end external signer integration, SAP S/4HANA business process examples, enterprise use cases, a sample Fiori wallet viewer app, and comprehensive automated integration and security tests.

Milestone 3: External Signing & SAP Integration

Final Milestone (Upcoming April/May 2026)

A demonstration-mode video of the Wallet Viewer Fiori App illustrating audit, compliance, and sustainability use cases, accompanied by transparent community announcements. The milestone is closed with a formal Catalyst close-out report and a short end-to-end video summarizing results, lessons learned, and future plans.

Final Milestone: Finalization, Advanced Use Cases & Project Close-Out

Key Features

  • OData V4 Protocol: Full query support ($filter, $select, $expand, $top, $skip, $count, $orderby)
  • Multi-Network Support: Mainnet, Preview, and Preprod configurations
  • Multi-Provider Architecture: Blockfrost + Koios + Ogmios with automatic failover
  • Transaction Building: Cardano Serialization Library (CSL) & Buildooor for minting, ADA or Token transfers, and metadata transactions
  • Lazy On-Demand Indexing: TTL-based refresh for changing blockchain data for performance optimization
  • Enterprise-Grade Validation: Strict input validation and error handling
  • HSM Signing: Optional server-side transaction signing via PKCS#11 Hardware Security Modules (YubiHSM, AWS CloudHSM, Thales Luna)
  • Comprehensive Testing: 1122 tests across 29 test suites, 99% statement coverage

Architecture Overview

alt text

Quick Start

Use as CAP Plugin (Recommended)

Add ODATANO to any existing SAP CAP project:

npm install @odatano/core @cap-js/sqlite

Configure in your package.json:

{
  "cds": {
    "requires": {
      "db": { "kind": "sqlite" },
      "odatano-core": {
        "network": "preview",
        "backends": ["blockfrost"],
        "blockfrostApiKey": "preview_YOUR_KEY"
      }
    }
  }
}
cds watch
# → CardanoODataService + CardanoTransactionService + CardanoSignService auto-registered
# → /odata/v4/cardano-odata/, /odata/v4/cardano-transaction/, /odata/v4/cardano-sign/ ready

Docker (Standalone)

git clone https://github.com/ODATANO/ODATANO && cd ODATANO
cp .env.example .env  # Add your BLOCKFROST_KEY
docker-compose up -d

Service runs at http://localhost:4004

Local Development (Standalone)

git clone https://github.com/ODATANO/ODATANO && cd ODATANO
npm ci
cp .env.example .env  # Add your BLOCKFROST_KEY
cds deploy --to sqlite
npm run cds:watch

See Quick Start Guide for detailed setup instructions.

Usage Examples

Read Operations (M1):

# Query transaction
curl "http://localhost:4004/odata/v4/cardano-odata/Transactions('tx_hash')"

# Address with OData expand for assets
curl "http://localhost:4004/odata/v4/cardano-odata/Addresses('addr_test1...')?\$expand=assets"

Transaction Operations (M2):

# Build ADA transfer (returns buildId and unsigned CBOR)
curl -X POST http://localhost:4004/odata/v4/cardano-transaction/BuildSimpleAdaTransaction \
  -H "Content-Type: application/json" \
  -d '{"senderAddress":"addr_test1...","recipientAddress":"addr_test1...","lovelaceAmount":10000000}'

# Submit signed transaction (using buildId from build response)
curl -X POST http://localhost:4004/odata/v4/cardano-transaction/SubmitTransaction \
  -H "Content-Type: application/json" \
  -d '{"buildId":"uuid-from-build-response","signedTxCbor":"84a400..."}'

External Signing Operations (M3):

# Create signing request (returns signing instructions and CLI commands)
curl -X POST http://localhost:4004/odata/v4/cardano-sign/CreateSigningRequest \
  -H "Content-Type: application/json" \
  -d '{"buildId":"uuid-from-build-response"}'

# Verify and submit externally signed transaction
curl -X POST http://localhost:4004/odata/v4/cardano-sign/SubmitVerifiedTransaction \
  -H "Content-Type: application/json" \
  -d '{"signingRequestId":"signing-request-id","signedTxCbor":"84a400..."}'

HSM Signing Operations (M3):

# Check HSM connection status
curl -X POST http://localhost:4004/odata/v4/cardano-sign/GetHsmStatus \
  -H "Content-Type: application/json" -d '{}'

# Sign and submit with HSM in one step (automated, no external signer needed)
curl -X POST http://localhost:4004/odata/v4/cardano-sign/SignAndSubmitWithHsm \
  -H "Content-Type: application/json" \
  -d '{"buildId":"uuid-from-build-response"}'

See User Guide for complete API reference.

Testing

npm test                    # Run all 1122 tests
npm run test:coverage       # With coverage report
npm run test:integration    # Integration tests only
npm run test:unit           # Unit tests only

See Test Documentation for details.

Documentation

| Guide | Description | |-------|-------------| | Quick Start | Get running in 5 minutes | | User Guide | API usage, entities, and examples | | Developer Guide | Architecture and development | | Transaction Workflow | Build → Sign → Submit flow (M2/M3) | | Security Guide | Authentication, signing security, HSM | | Docker Deployment | Container deployment | | Data Model | Entity relationships | | Error Handling | Error codes and handling | | Test Documentation | Test suite overview (1122 tests) |

Postman Collections:

API Overview

Read Service (/odata/v4/cardano-odata) - M1

18 Entities: NetworkInformation, Blocks, Epochs, Transactions, TransactionInputs, TransactionOutputs, TransactionInputAssets, TransactionOutputAssets, TransactionMetadata, Addresses, AddressAssets, AddressUTxOs, AddressTransactions, UTxOAssets, Pools, Accounts, Dreps, LedgerProtocolParameters

15 Actions: GetNetworkInformation, GetBlockByHash, GetEpochByNumber, GetTransactionByHash, GetMetadataByTxHash, GetAddressByBech32, GetUTxOsByAddress, GetAssetsByAddress, GetPoolById, GetAccountByStakeAddress, GetDrepById, GetLatestTransactionsByAddress, GetLatestBlock, GetLatestEpoch, GetLedgerProtocolParameters

Transaction Service (/odata/v4/cardano-transaction) - M2

8 Entities: TransactionBuilds, TransactionBuildInputs, TransactionBuildOutputs, TransactionBuildInputAssets, TransactionBuildOutputAssets, TransactionSubmissions, TransactionSubmissionErrors, AddressTransactionBuilds

11 Actions: BuildSimpleAdaTransaction, BuildTransactionWithMetadata, BuildMultiAssetTransaction, BuildMintTransaction, SubmitTransaction, SubmitSignedTransaction, GetBuildDetails, CheckSubmissionStatus, BuildPlutusSpendTransaction, SetCollateral, GetTransactionBuildsByAddress

Signing Service (/odata/v4/cardano-sign) - M3

5 Entities: SigningRequests, SignatureVerifications, AddressSigningRequests, TransactionBuilds, TransactionSubmissions

8 Actions: CreateSigningRequest, GetSigningRequest, GetSigningRequestsByAddress, VerifySignature, SubmitVerifiedTransaction, SignWithHsm, SignAndSubmitWithHsm, GetHsmStatus

See User Guide for complete API reference with parameters.

npm Package

Published as @odatano/core on npm. See the Developer Guide for detailed plugin architecture documentation.

Technology Stack

SAP CAP 9.x | TypeScript 5.9 | Node.js 20.x/22.x | SQLite | Jest | Blockfrost | Koios | Ogmios | CSL | Buildooor | Docker

License

Apache License 2.0 - see LICENSE

Support