PHPackages                             slowbeardigger/xmr-pay - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. slowbeardigger/xmr-pay

ActiveLibrary[Payment Processing](/categories/payments)

slowbeardigger/xmr-pay
======================

Non-custodial Monero payment verification in pure PHP — view-key only, no monero-wallet-rpc, no server. The PHP engine behind xmr-pay, mirroring the npm library.

v0.1.1(3w ago)231MITPHPPHP &gt;=7.4

Since Jun 23Pushed 3w agoCompare

[ Source](https://github.com/SlowBearDigger/xmr-pay-php)[ Packagist](https://packagist.org/packages/slowbeardigger/xmr-pay)[ Docs](https://github.com/SlowBearDigger/xmr-pay-php)[ RSS](/packages/slowbeardigger-xmr-pay/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (2)DependenciesVersions (3)Used By (1)

xmr-pay (PHP)
=============

[](#xmr-pay-php)

Non-custodial **Monero payment verification in pure PHP** — view-key only, **no `monero-wallet-rpc`, no daemon on your box required, no server**. This is the PHP engine behind [xmr-pay for WooCommerce](https://github.com/SlowBearDigger/xmr-pay-woocommerce), extracted as a standalone Composer package so any PHP project can accept Monero: Laravel, Symfony, Joomla, PrestaShop, Magento, OpenCart, or a plain checkout.

It is the exact mirror of the [xmr-pay JavaScript library](https://github.com/SlowBearDigger/xmr-pay)— same money math, same invoice state machine — pinned by shared conformance vectors.

How it differs from `monero-integrations/monerophp`
---------------------------------------------------

[](#how-it-differs-from-monero-integrationsmonerophp)

`monerophp` is a crypto toolbox + RPC clients (the building blocks). This package is the **layer on top**: it answers *"is this order paid?"* — it derives a per-order subaddress, detects the output against your view key, verifies the RingCT amount commitment, checks confirmations and time-locks, dedupes the 2018 burning bug, and runs the invoice state machine. It builds on monerophp's primitives (see `third-party/monero/ATTRIBUTION.md`); it does not reimplement them.

Requirements
------------

[](#requirements)

- PHP 7.4+
- ext-gmp (the money math) and ext-bcmath (base58)
- a Monero node to read the chain (a public one is fine; for serious money run your own or require two to agree). No wallet-rpc.

Install
-------

[](#install)

```
composer require slowbeardigger/xmr-pay

```

What's here
-----------

[](#whats-here)

- `XmrPay\Util` — money math, the invoice state machine (`to_invoice_state`), claim-link expiry, multi-transaction payment aggregation (`summarize_payments`), CSV safety. Pure, no network.
- `XmrPay\Scanner` — the verification engine: fetch a tx from a node, detect a payment to your address/subaddress, decode + verify the amount, report confirmations / lock / double-spend. HTTP works out of the box via PHP streams (no WordPress); inside WordPress it transparently uses `wp_safe_remote_*`.

Adapters
--------

[](#adapters)

Connecting a platform is thin: the engine does the Monero work, an adapter just maps the platform's order flow onto a handful of calls. See [docs/WRITING-AN-ADAPTER.md](docs/WRITING-AN-ADAPTER.md) for the full contract and a minimal skeleton. Reference adapters:

- [xmr-pay for WooCommerce](https://github.com/SlowBearDigger/xmr-pay-woocommerce) — PHP inside WordPress.
- [xmr-pay for Laravel](https://github.com/SlowBearDigger/xmr-pay-laravel) — a service + facade + config.

WHMCS, Joomla, PrestaShop, OpenCart, and others are good next adapters and welcome contributions.

Security model
--------------

[](#security-model)

- **View key only.** The package never asks for or holds a spend key. It can read incoming payments; it can never move funds.
- **The amount is proven, not claimed** (RingCT commitment check). It fails closed: commitment, confirmations, no time-lock, and no double-count must all pass, or the payment is not credited.
- **You trust the node you point it at.** Use your own, or require agreement across nodes.

Status
------

[](#status)

Extracted from the WooCommerce plugin (the proven engine). Pure-logic tests (`tests/`: state, util, aggregation, refund, crypto) run under plain `php` with no Composer:

```
composer test          # or: php tests/aggregation.test.php

```

The WooCommerce plugin will be refactored to consume this package (dogfood), so there is one engine, not two copies.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance95

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity25

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~21 days

Total

2

Last Release

23d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c40780b079864c2a0ef2d3dee8e1a49d9514047f30a178902720cf41b9caec1a?d=identicon)[SlowBearDigger](/maintainers/SlowBearDigger)

---

Top Contributors

[![SlowBearDigger](https://avatars.githubusercontent.com/u/240974587?v=4)](https://github.com/SlowBearDigger "SlowBearDigger (5 commits)")

---

Tags

composercryptocurrencylaravelmoneromonero-integrationnon-custodialpayment-gatewayphpview-keywoocommercexmrpaymentscryptocurrencypayment gatewayserverlessMoneronon-custodialXMRview-key

### Embed Badge

![Health badge](/badges/slowbeardigger-xmr-pay/health.svg)

```
[![Health](https://phpackages.com/badges/slowbeardigger-xmr-pay/health.svg)](https://phpackages.com/packages/slowbeardigger-xmr-pay)
```

###  Alternatives

[cybersource/rest-client-php

Client SDK for CyberSource REST APIs

40975.8k6](/packages/cybersource-rest-client-php)[hexters/coinpayment

CoinPayment is a Laravel package for handling cryptocurrency transactions through CoinPayments.net (create transaction, transaction history, IPN, balances, withdrawals).

7162.7k](/packages/hexters-coinpayment)[razorpay/magento

Razorpay Magento 2.0 plugin for accepting payments.

3080.1k1](/packages/razorpay-magento)[musahmusah/laravel-multipayment-gateways

A Laravel Package that makes implementation of multiple payment Gateways endpoints and webhooks seamless

882.2k1](/packages/musahmusah-laravel-multipayment-gateways)[victorybiz/laravel-crypto-payment-gateway

GoUrl.io Crypto Payment Gateway for Laravel

642.6k](/packages/victorybiz-laravel-crypto-payment-gateway)[shurjomukhi/shurjopay-plugin-php

shurjoPay is a online payment gateway and easy payment solution

141.1k](/packages/shurjomukhi-shurjopay-plugin-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
