68cb535c0f
v0.2: README rewrite + docs/minting-workflow.md cold-signer runbook
...
README status table moves everything green except the TradeCraft compat
shim (still yellow, documented sunset path). Adds a migration guide
section mapping every old services/cardano_*.py import to its new
cardano_checkout.* equivalent so TradeCraft can adopt in one atomic
diff once the SQLAlchemyInvoiceStore adapter lands.
docs/minting-workflow.md: step-by-step runbook for the cold-signer
pattern — hot host builds UnsignedMint, operator ships three CBOR hex
files to Lucy, offline signer produces a signed tx, hot host submits
via submit_signed_tx. Covers the tx-id sanity check, skey hygiene
rules, time-locked-policy TTL clamp, and the preprod dry-run
requirement for every new policy.
2026-04-23 20:00:49 -07:00
dc6378eda6
v0.1.0-dev: initial extraction from TradeCraft + new abstractions
...
Sulkta Coop's Python SDK for merchant-side Cardano payments +
NFT certificate-of-authenticity minting. Zero-custody by design.
Extracted from TradeCraft's services/cardano_*.py (2,400+ lines of
production Cardano-mainnet code) and restructured as an installable
Python package.
Package layout (cardano_checkout/):
- addresses.py — lifted verbatim: CIP-1852 HD derivation, pure pycardano
- oracles.py — lifted from cardano_price.py: Koios ADA/USD feed w/ 5m cache
- monitor.py — lifted verbatim (SQLAlchemy-coupled; v0.2 refactors to Store)
- scheduler.py — lifted verbatim (same refactor note)
- invoice.py — NEW: framework-agnostic Invoice dataclass + lifecycle enum
- store.py — NEW: InvoiceStore Protocol for pluggable persistence
- mint.py — NEW: CIP-25 v2 metadata builder (works); tx submission stub for v0.2
- ipfs.py — NEW: kubo HTTP client with primary-pin + mirror-pin pattern
- txbuild.py — NEW: v0.2 stub for PyCardano / Ogmios tx construction
Design:
- Consumers provide xpub + InvoiceStore impl. SDK provides everything else.
- IPFS: local kubo for upload + serve, optional mirror pins for archival.
Chromaticcraft pattern: Rackham kubo primary, Lucy kubo mirror.
- NFT: single native-script policy per merchant studio (CIP-25 v2, not CIP-68
— full wallet coverage, no mutability needed for static certs). Policy skey
stays under Sulkta cold-custody (Lucy pattern); signing is an external
hand-off like ADAMaps payouts.
Tests: pure-module smoke tests pass for invoice, store-protocol, CIP-25
metadata envelope, IPFS client import, txbuild stub module. Address
derivation tests ship but require pycardano + will exercise in CI.
LICENSE: Apache-2.0 (matches upstream Cardano tooling).
Next (v0.2 scope):
- Refactor monitor + scheduler around InvoiceStore (drop SQLAlchemy coupling)
- Wire mint.mint_nft_cert to PyCardano + local Ogmios on Rackham
- txbuild: Ogmios chain-context + cold-signer hand-off shape
- chromaticcraft Phase 2 imports the SDK as its first external consumer
2026-04-23 18:04:00 -07:00