API Reference
ODATANO registers three OData V4 services in your CAP application. All services support $filter, $select, $expand, $top, $skip, $count, and $orderby.
CardanoODataService
Path: /odata/v4/cardano-odata/
Read-only access to Cardano blockchain data via lazy on-demand indexing with TTL-based refresh.
Entities
| Entity | Description |
|---|
NetworkInformation | Network info, genesis parameters |
Blocks | Block data (height, hash, slot, epoch, time) |
Epochs | Epoch info and protocol parameters |
Transactions | Transaction metadata |
TransactionInputs | Input UTxOs per transaction |
TransactionOutputs | Output UTxOs per transaction |
TransactionInputAssets | Native assets in inputs |
TransactionOutputAssets | Native assets in outputs |
TransactionMetadata | CIP-20 and arbitrary metadata |
Addresses | Address details and balance |
AddressAssets | Native assets held by an address |
AddressUTxOs | UTxO set for an address |
AddressTransactions | Transaction history for an address |
UTxOAssets | Assets within a specific UTxO |
Pools | Stake pool info and metrics |
Accounts | Stake account / delegation info |
Dreps | Governance DRep information |
LedgerProtocolParameters | Current protocol parameters |
Actions (POST)
| Action | Parameters | Returns |
|---|
GetTransactionByHash | hash | Transactions |
GetAddressByBech32 | address | Addresses |
GetUTxOsByAddress | address | AddressUTxOs[] |
GetAssetsByAddress | address | AddressAssets[] |
GetMetadataByTxHash | tx_hash | TransactionMetadata[] |
GetPoolById | poolId | Pools |
GetAccountByStakeAddress | stakeAddress | Accounts |
GetDrepById | drepId | Dreps |
GetTransactionsByAddress | address | AddressTransactions[] |
GetAssetHistory | unit | Asset history |
GetUTxOByRef | txHash, outputIndex | AddressUTxOs |
GetInputsByTxHash | hash | TransactionInputs[] |
GetOutputsByTxHash | hash | TransactionOutputs[] |
GetInputAssetsByTxHash | hash | TransactionInputAssets[] |
GetOutputAssetsByTxHash | hash | TransactionOutputAssets[] |
OData Query Examples
# Latest block
GET /odata/v4/cardano-odata/Blocks?$orderby=height desc&$top=1
# Read by key
GET /odata/v4/cardano-odata/Transactions('<64-hex-hash>')
GET /odata/v4/cardano-odata/Addresses('addr_test1...')
# Filter with select
GET /odata/v4/cardano-odata/Blocks?$filter=epoch eq 500&$select=hash,height,time
CardanoTransactionService
Path: /odata/v4/cardano-transaction/
Build, track, and submit Cardano transactions. Supports two builder backends: csl and buildooor.
Entities
| Entity | Description |
|---|
TransactionBuilds | Pending/completed transaction builds |
TransactionSubmissions | Submission records and status |
BuildInputs | UTxO inputs used in a build |
BuildOutputs | Outputs in a build |
BuildAssets | Native assets in a build |
BuildMetadata | Metadata attached to a build |
ProtocolParametersCache | Cached protocol parameters |
NetworkParametersCache | Cached network parameters |
Actions (POST)
| Action | Description |
|---|
BuildSimpleAdaTransaction | ADA transfer between two addresses |
BuildMultiAssetTransaction | Transfer native assets |
BuildTokenMintTransaction | Mint new native tokens |
BuildMetadataTransaction | Attach CIP-20 metadata |
SubmitSignedTransaction | Submit a signed transaction (CBOR) |
GetBuildStatus | Check build/submission status |
GetTransactionStatus | Check on-chain confirmation |
CancelBuild | Cancel a pending build |
RebuildTransaction | Rebuild a failed transaction |
EstimateFee | Estimate transaction fees |
ValidateAddresses | Validate address format |
CardanoSignService
Path: /odata/v4/cardano-sign/
External signing workflow — ODATANO never holds private keys. Signing requests are created server-side and fulfilled by external signers.
Entities
| Entity | Description |
|---|
SigningRequests | Pending signing requests |
SigningAuditLog | Immutable audit trail of signing events |
HsmConfigurations | HSM device configurations |
VerifiedTransactions | Successfully verified and submitted txs |
SigningPolicies | Authorization policies for signing |
Actions (POST)
| Action | Description |
|---|
CreateSigningRequest | Create a signing request from a buildId |
SubmitVerifiedTransaction | Submit after external signing |
SignWithHsm | Trigger HSM signing (PKCS#11) |
VerifySignature | Verify a signature without submitting |
GetSigningRequest | Retrieve a signing request by ID |
CancelSigningRequest | Cancel a pending signing request |
ListPendingRequests | List all open signing requests |
GetAuditLog | Retrieve signing audit trail |
Supported Signers
| Signer Type | signerType value | Notes |
|---|
| CIP-30 browser wallet | browser-wallet | Nami, Eternl, Lace, Yoroi |
| Cardano CLI | cardano-cli | Response includes CLI command |
| YubiHSM | hsm | PKCS#11 via SignWithHsm |
| AWS CloudHSM | hsm | PKCS#11 via SignWithHsm |
| Thales Luna HSM | hsm | PKCS#11 via SignWithHsm |
Technology Stack
| Component | Technology |
|---|
| Framework | SAP CAP 9.x |
| Language | TypeScript 5.x |
| Runtime | Node.js 20.x / 22.x |
| Database | SQLite (dev) / SAP HANA (prod) |
| Blockchain APIs | Blockfrost, Koios, Ogmios |
| TX Builders | CSL (Cardano Serialization Library), Buildooor |
| Testing | Jest — 1122 tests, 99% coverage |
| License | Apache 2.0 |