Add a note about large UTxO limitation
May 26, 3-4 PM (18)
May 26, 4-5 PM (20)
May 26, 5-6 PM (13)
May 26, 6-7 PM (20)
May 26, 7-8 PM (12)
May 26, 8-9 PM (15)
May 26, 9-10 PM (15)
May 26, 10-11 PM (35)
May 26, 11-12 AM (30)
May 27, 12-1 AM (16)
May 27, 1-2 AM (8)
May 27, 2-3 AM (9)
May 27, 3-4 AM (5)
May 27, 4-5 AM (32)
May 27, 5-6 AM (9)
May 27, 6-7 AM (49)
May 27, 7-8 AM (65)
May 27, 8-9 AM (38)
May 27, 9-10 AM (74)
May 27, 10-11 AM (83)
May 27, 11-12 PM (30)
May 27, 12-1 PM (50)
May 27, 1-2 PM (39)
May 27, 2-3 PM (53)
May 27, 3-4 PM (37)
May 27, 4-5 PM (11)
May 27, 5-6 PM (18)
May 27, 6-7 PM (21)
May 27, 7-8 PM (25)
May 27, 8-9 PM (17)
May 27, 9-10 PM (15)
May 27, 10-11 PM (29)
May 27, 11-12 AM (27)
May 28, 12-1 AM (9)
May 28, 1-2 AM (3)
May 28, 2-3 AM (5)
May 28, 3-4 AM (2)
May 28, 4-5 AM (9)
May 28, 5-6 AM (34)
May 28, 6-7 AM (31)
May 28, 7-8 AM (84)
May 28, 8-9 AM (33)
May 28, 9-10 AM (54)
May 28, 10-11 AM (50)
May 28, 11-12 PM (21)
May 28, 12-1 PM (46)
May 28, 1-2 PM (50)
May 28, 2-3 PM (23)
May 28, 3-4 PM (43)
May 28, 4-5 PM (86)
May 28, 5-6 PM (13)
May 28, 6-7 PM (31)
May 28, 7-8 PM (43)
May 28, 8-9 PM (34)
May 28, 9-10 PM (17)
May 28, 10-11 PM (36)
May 28, 11-12 AM (32)
May 29, 12-1 AM (12)
May 29, 1-2 AM (13)
May 29, 2-3 AM (4)
May 29, 3-4 AM (3)
May 29, 4-5 AM (0)
May 29, 5-6 AM (2)
May 29, 6-7 AM (5)
May 29, 7-8 AM (16)
May 29, 8-9 AM (37)
May 29, 9-10 AM (34)
May 29, 10-11 AM (69)
May 29, 11-12 PM (25)
May 29, 12-1 PM (44)
May 29, 1-2 PM (66)
May 29, 2-3 PM (60)
May 29, 3-4 PM (25)
May 29, 4-5 PM (26)
May 29, 5-6 PM (79)
May 29, 6-7 PM (11)
May 29, 7-8 PM (19)
May 29, 8-9 PM (9)
May 29, 9-10 PM (8)
May 29, 10-11 PM (27)
May 29, 11-12 AM (7)
May 30, 12-1 AM (9)
May 30, 1-2 AM (2)
May 30, 2-3 AM (1)
May 30, 3-4 AM (5)
May 30, 4-5 AM (2)
May 30, 5-6 AM (11)
May 30, 6-7 AM (0)
May 30, 7-8 AM (2)
May 30, 8-9 AM (11)
May 30, 9-10 AM (13)
May 30, 10-11 AM (10)
May 30, 11-12 PM (5)
May 30, 12-1 PM (8)
May 30, 1-2 PM (5)
May 30, 2-3 PM (18)
May 30, 3-4 PM (5)
May 30, 4-5 PM (1)
May 30, 5-6 PM (9)
May 30, 6-7 PM (9)
May 30, 7-8 PM (1)
May 30, 8-9 PM (5)
May 30, 9-10 PM (4)
May 30, 10-11 PM (27)
May 30, 11-12 AM (12)
May 31, 12-1 AM (17)
May 31, 1-2 AM (0)
May 31, 2-3 AM (1)
May 31, 3-4 AM (1)
May 31, 4-5 AM (0)
May 31, 5-6 AM (0)
May 31, 6-7 AM (7)
May 31, 7-8 AM (4)
May 31, 8-9 AM (10)
May 31, 9-10 AM (3)
May 31, 10-11 AM (4)
May 31, 11-12 PM (4)
May 31, 12-1 PM (1)
May 31, 1-2 PM (2)
May 31, 2-3 PM (24)
May 31, 3-4 PM (16)
May 31, 4-5 PM (2)
May 31, 5-6 PM (1)
May 31, 6-7 PM (2)
May 31, 7-8 PM (2)
May 31, 8-9 PM (2)
May 31, 9-10 PM (7)
May 31, 10-11 PM (25)
May 31, 11-12 AM (11)
Jun 01, 12-1 AM (14)
Jun 01, 1-2 AM (7)
Jun 01, 2-3 AM (3)
Jun 01, 3-4 AM (10)
Jun 01, 4-5 AM (13)
Jun 01, 5-6 AM (16)
Jun 01, 6-7 AM (10)
Jun 01, 7-8 AM (14)
Jun 01, 8-9 AM (46)
Jun 01, 9-10 AM (50)
Jun 01, 10-11 AM (19)
Jun 01, 11-12 PM (27)
Jun 01, 12-1 PM (49)
Jun 01, 1-2 PM (40)
Jun 01, 2-3 PM (44)
Jun 01, 3-4 PM (34)
Jun 01, 4-5 PM (54)
Jun 01, 5-6 PM (5)
Jun 01, 6-7 PM (32)
Jun 01, 7-8 PM (37)
Jun 01, 8-9 PM (9)
Jun 01, 9-10 PM (12)
Jun 01, 10-11 PM (30)
Jun 01, 11-12 AM (22)
Jun 02, 12-1 AM (13)
Jun 02, 1-2 AM (8)
Jun 02, 2-3 AM (5)
Jun 02, 3-4 AM (14)
Jun 02, 4-5 AM (10)
Jun 02, 5-6 AM (43)
Jun 02, 6-7 AM (32)
Jun 02, 7-8 AM (58)
Jun 02, 8-9 AM (65)
Jun 02, 9-10 AM (27)
Jun 02, 10-11 AM (19)
Jun 02, 11-12 PM (14)
Jun 02, 12-1 PM (46)
Jun 02, 1-2 PM (66)
Jun 02, 2-3 PM (70)
Jun 02, 3-4 PM (11)
3,730 commits this week
May 26, 2026
-
Jun 02, 2026
test: add golden-handles regression check to full-sync skill
- golden-handles.txt: 25 commonly-known mainnet handles (cardano, hosky, minswap, bigpey, charles, ... incl. enterprise-address eth/satoshi/crypto), all verified present on mainnet. Names only — handles are transferable NFTs, so addresses are asserted by shape + round-trip, not pinned (drift-proof). - run-golden-handles.sh: forward lookup (well-formed addr1.../stake1...) + reverse-by-payment-address round-trip for each golden handle. - run-rest-spotchecks.sh: fix stdin/heredoc collision (data now passed via argv, not a pipe that the heredoc program shadowed) and switch the DB sampler to JSON output so arbitrary UTF-8 handle names parse safely; skip empty names. - SKILL.md: document the golden step and files. Validated live against the in-progress mainnet sync: golden 25/25, sample 10/10. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
[EC Api] - Added: For Andamio, attending The Linux Foundation Open Source Summit North America 2026 reinforced an important lesson: People are ready to learn more about blockchain.
Merge branch 'main' of github.com:txpipe/metis
chore: Update dbsync to make TLS optional on upstream address
ci: drop explanatory comments from slack/haddock hardening
Remove the comment block above isDraftPullRequest() in slack-message-broker.yml and the ref-validation comment in haddock-site.yml.
CPU load and GC time panels
Remove duplicate Block Forging. Added cardano-node CPU load panel. Added GC time panel.
Update docs and changelog to reflect partial fanout implementation
feat(common): add era-aware genesis certificate producer and verifier
chore: refresh yarn.lock to cardano-hw-interop-lib 3.1.0
Recent develop commits (test: network params and usedCostModelLanguages, feat: pass protocol params to transform transaction) added source code that uses 3.1.0-only exports (CostModels, PLUTUS_LANGUAGES, CostModelLanguageName) but didn't refresh yarn.lock, so CI's yarn install keeps the lockfile-pinned 3.0.2 and tsc fails. The dependency range ^3.0.2 already allows 3.1.0; this commit just re-resolves the lockfile. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
refactor: --unrestricted -> --allow-unrestricted-mode (auto-apply + assert)
Rework the user-facing API per review: - Rename the flag to --allow-unrestricted-mode. It is now a *permission*, not a request: it authorizes hw-cli to use unrestricted mode if the tx requires it, but never forces it on a tx that doesn't. - Auto-apply unrestricted mode when the tx structurally requires it (i.e. when no other mode would accept it). A new requiresUnrestrictedMode helper in util.ts encapsulates the detection; the initial trigger is a required_signers field without collateral inputs (ORDINARY and MULTISIG forbid required_signers, and PLUTUS is only auto-inferred when collateral is present). The set is extensible. - determineSigningMode no longer takes the flag; it returns UNRESTRICTED automatically when required. The permission check now lives in commandExecutor: if the inferred mode is UNRESTRICTED, refuse unless --allow-unrestricted-mode was passed, and refuse if the connected device/app does not support unrestricted signing. The previous "graceful ignore + warn" path is removed; the flag is permission so an unsupported device must fail (the tx is unsignable anywhere else). - New errors: UnrestrictedModeRequiredError and UnrestrictedModeUnsupportedByDeviceError. - README and unit tests updated for the new flag and auto-detect semantics. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Update changelog
feat(testnets): add cardano_node_governance testnet
Conway governance workload under fault injection: 2 block producers (cardano-node 11.0.1) under faults, 1 fault-excluded relay, and a sleeping gov-cli container whose composer drivers run cardano-cli governance operations against the relay. - gov-configurator: cardonnay conway_fast genesis (committee seeded) plus governance_data assets, generation-only (no nodes) - gov-cli: per-operation composer drivers (setup, create-info, vote, validators) in two interchangeable sets — bash (cardano-cli) and python (cardano-clusterlib), selected by DRIVER_LANG build arg
chore: apply fourmolu and cabal-fmt formatting
nix: add libsodium-vrf pkgconfig override for cardano-crypto-wallet
cardano-crypto-wallet links against libsodium for Argon2id KDF and XChaCha20-Poly1305 AEAD. Without this override, the Windows cross-compiled DLL links against the default system libsodium, which is not available in the Wine iserv environment (only libsodium-vrf is present there, used by all other crypto packages). This caused the iserv to crash (exit 1) at TH-module boundaries when compiling cardano-wallet for Windows/ucrt64.
fix: update tests and tools to IO-returning crypto API
- wallet-key-export.hs: pattern-match HashedCredentials instead of tuple; V2 keys exit with a clear error (no XPrv export possible) - wallet-key-export-test.hs: wrap serializeXPrv args in HashedCredentialsV1 - PersistPrivateKeySpec.hs: bind IO-returning encryptedCreate with >>= - LayerSpec.hs: remove now-redundant XPrv import (Werror) - Cardano.Wallet: use encryptedChainCode in decryptV2 to supply the missing 32-byte chain code so CC.xprv receives the full 96 bytes
chore: update cardano-crypto-wallet SRP to cb068e0 and adapt to IO API
The merged cardano-base PR changed encryptedCreateDirectWithTweak, encryptedValidatePassphrase, and encryptedKeyMaterial to return IO instead of pure Either, since they operate on locked memory. - Bump SRP tag to cb068e0 (merged HEAD of cardano-base master) - mkV2Credentials: lift to IO, bind encryptedCreateDirectWithTweak - attachPrivateKeyFromPwd: bind mkV2Credentials with <- - withRootKey: separate STM read from IO validation so encryptedValidatePassphrase can run outside atomically - migrateV1toV2: bind encryptedCreateDirectWithTweak with >>= - decryptV2: lift to IO; use mlsbToByteString + mlsbFinalize instead of BA.convert (MLockedSizedBytes has no ByteArrayAccess instance)
chore: update cardano-crypto-wallet SRP to 592fc8d
Tracks the rename from cardano-crypto-wallet-v2 to cardano-crypto-wallet and the module rename from Cardano.Crypto.WalletV2.Encrypted to Cardano.Crypto.WalletHD.Encrypted.
feat: upgrade root-key storage to v2 (Argon2id+XChaCha20-Poly1305)
Integrates the new cardano-crypto-wallet-v2 package from cardano-base,
replacing the legacy PBKDF2/ChaCha20 passphrase scheme for root key
storage with an authenticated v2 envelope format.
Key changes:
- HashedCredentials is now a sum type (V1 / V2) stored in the same DB
columns; v1 keys are the existing 128-byte XPrv blob, v2 keys are a
longer CBOR envelope distinguished by byte length on read-back.
- withRootKey opportunistically migrates v1 keys to v2 on every
successful passphrase use, atomically and silently, so no user action
or schema migration is needed.
- attachPrivateKeyFromPwd now always creates v2 credentials for new
wallets; a reattachPrivateKey helper handles wallet delete-recreate
flows (shared wallet activation) preserving the credential format.
- GET /v2/wallets/:id now includes encryption_method in the passphrase
object ("scrypt", "pbkdf2-hmac-sha512", or "argon2id-v2"), allowing
frontends to detect legacy keys and prompt for a passphrase change.
The Byron wallet handler also gains an EncryptWithArgon2idV2 branch
that was previously a silent fallthrough to Nothing.
- PassphraseScheme gains a FromText instance to support JSON round-trips
via ApiT.
Test coverage added:
- PersistPrivateKeySpec: 6 roundtrip tests covering V1 Shelley/Byron and
V2 Shelley/Byron (no-payload and with-payload) serialization, plus
column-length and empty-hash invariants for V2 keys. Uses seed
0x02*32 (a valid ed25519 extended-key seed) for deterministic V2 key
construction.
- WalletSpec: three migration scenario tests — V1→V2 upgrade on
passphrase use, rejection on wrong passphrase, and V2 idempotency.
Supporting fixes:
- WalletFlavor: added instance for TestState so DummyState satisfies
the WalletFlavor constraint needed by withRootKey and related ops.
- Credentials: added Show instance for HashedCredentials.
- DerivationSpec, LayerSpec, StoreSpec: updated to the new
HashedCredentials API (constructors, serialization signatures).
ci(haddock): harden script_ref against git argument injection
Quoting "$SCRIPT_REF" stops shell word-splitting but git still parses a standalone argument starting with '-' as an option (e.g. --upload-pack), which matters because script_ref comes from a workflow_dispatch input / github.ref_name and runs on a self-hosted runner. - Validate the ref against an allowlist (^[A-Za-z0-9_][A-Za-z0-9._/-]*$), rejecting leading '-' and stray characters. - Pass it after --end-of-options on git fetch. - Use the 'git checkout <tree-ish> -- <path>' form.