Skip to content

Missing LICENSE file — MIT is declared but no copyright holder is named

Hi — thanks for publishing this. I've built a small standalone PHP storefront around the verification core (not WordPress), and it's been solid. More on that below, but first the actual issue.

The problem

nodewatch-monero.php declares:

 * License: MIT

But the repository has no LICENSE file, and no copyright holder is named anywhere.

That's a problem for anyone downstream, because the MIT licence text is built around a specific line:

Copyright (c) <year> <copyright holders>

...

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

With no copyright holder named, there is literally no notice to include — so downstream users can't satisfy the one obligation MIT imposes, even when they want to. In practice this means anyone whose legal review touches this repo will bounce it, which is a shame given what the code does.

The fix

Add a LICENSE file at the repo root with the standard MIT text and your name or handle:

MIT License

Copyright (c) 2026 <your name or handle>

Permission is hereby granted, free of charge, to any person obtaining a copy
...

GitHub will then also display "MIT" in the sidebar, which it currently doesn't.

Worth noting: the vendored vendor/monero/ files do carry their notice (Copyright (c) 2018, Monero Integrations), so that part is already fine — it's just the plugin's own code that has nothing.

Unrelated, but worth saying

The fail-closed commitment check in classify_tx is well designed. When require_commitment is on and the commitment can't be fetched, it returns commitment_ok: false with a message explicitly naming the pruned-node case rather than silently treating the payment as unverified-but-present.

I hit exactly that: I was about to run against a pruned node to save disk. Reading that code stopped me. On a pruned node the scanner would have correctly identified a real payment as mine and then refused to settle it — the customer's XMR gone, the order stuck. That's the worst possible failure mode for a merchant, and you anticipated it and made it loud instead of silent.

Thanks for that. Happy to open a PR with the LICENSE file if it's easier.