Title: WCP Blockchain Authenticity Certificates
Author: woochainpro
Published: <strong>September 14, 2026</strong>
Last modified: September 14, 2026

---

Search plugins

![](https://ps.w.org/wcp-blockchain-authenticity-certificates/assets/banner-772x250.
png?rev=3694613)

![](https://ps.w.org/wcp-blockchain-authenticity-certificates/assets/icon-256x256.
png?rev=3694613)

# WCP Blockchain Authenticity Certificates

 By [woochainpro](https://profiles.wordpress.org/woochainpro/)

[Download](https://downloads.wordpress.org/plugin/wcp-blockchain-authenticity-certificates.7.4.2.zip)

 * [Details](https://wordpress.org/plugins/wcp-blockchain-authenticity-certificates/#description)
 * [Reviews](https://wordpress.org/plugins/wcp-blockchain-authenticity-certificates/#reviews)
 *  [Installation](https://wordpress.org/plugins/wcp-blockchain-authenticity-certificates/#installation)
 * [Development](https://wordpress.org/plugins/wcp-blockchain-authenticity-certificates/#developers)

 [Support](https://wordpress.org/support/plugin/wcp-blockchain-authenticity-certificates/)

## Description

Customers opt in at checkout, choose a network, connect a wallet, and receive a

certificate of authenticity for their purchase. The certificate is written to a 
public blockchain, so it stays verifiable by anyone, forever, and does not depend
on your store — or this plugin — continuing to exist.

Watch the full setup walkthrough:

**How it works**

 1. You connect a wallet and deploy a smart contract for your shop.
 2. Customers see an optional certificate box at checkout.
 3. When an order reaches the status you choose, a certificate is issued to the
     customer’s
    wallet.

**Opt-in by design.** A customer who ignores the option checks out exactly as
 before
and is charged nothing extra.

**Permanent seller rights.** When your contract is created you choose whether
 your
shop may freeze, revoke, or force-transfer certificates. Those choices are written
into the contract permanently and are shown to every customer before they agree.
Most shops should choose none of them.

**Supported networks:** Optimism, Arbitrum, Solana.

#### What this plugin sends to an external service

This plugin is a client for the WooChain Pro platform, a paid third-party
 service
that performs the blockchain operations. **The plugin cannot work without it. You
will need an account.

Data sent to the platform, and when:

 * **When you connect your shop** — your shop domain, admin email address, and
    
   the wallet address you connect. You sign a message to prove you control the wallet;
   no private key is ever transmitted, and signing costs no gas.
 * **When a customer opts in at checkout** — the wallet address they provide and
   
   the selected network, so the address can be validated before an order is placed.
 * **When an order qualifies for a certificate** — the order number, the
    customer’s
   wallet address, product names, SKUs, batch numbers and the product image URL.
   This is the information written into the certificate.
 * **Periodically** — your subscription status, balance and contract state, so
    
   the dashboard and checkout can show whether certificates are currently available.

Customer names, billing and shipping addresses, email addresses, phone numbers
 
and payment details are **not** sent.

Service: WooChain Pro — https://woochainpro.com
 Terms of service: https://woochainpro.
com/terms Privacy policy: https://woochainpro.com/privacy

#### Costs

Issuing a certificate costs blockchain network fees, plus a platform
 commission.
You pre-fund a USDC balance with the service and each certificate draws from it.
Separately, you decide what (if anything) to charge your own customer at checkout—
it can be more than your cost, the same, or zero.

#### Third-party libraries

 * qr-scanner 1.4.2 by Nimiq (MIT) — reads a wallet address from a QR code.
    Bundled
   in `assets/vendor/qr-scanner/` with its original source and licence. Upstream:
   https://github.com/nimiq/qr-scanner
 * qrcode-generator 1.4.4 by Kazuhiko Arase (MIT) — renders the payment QR code
   
   in the shop dashboard. Bundled in `assets/vendor/qrcode-generator/` as original
   unminified source. Upstream: https://github.com/kazuhikoarase/qrcode-generator

### Connect With Us

 * **Website & support:** https://woochainpro.com/contact-support/
 * **YouTube:** https://www.youtube.com/@WoochainproPlugin
 * **LinkedIn:** https://www.linkedin.com/in/woochainpro-authenticity-689723434

## Screenshots

[⌊The dashboard after connecting your wallet — status ready and domain verified.⌉⌊
The dashboard after connecting your wallet — status ready and domain verified.⌉[

The dashboard after connecting your wallet — status ready and domain verified.

[⌊The plugin Settings page.⌉⌊The plugin Settings page.⌉[

The plugin Settings page.

[⌊The Setup & Help page.⌉⌊The Setup & Help page.⌉[

The Setup & Help page.

[⌊The Easy Guide Setup walkthrough.⌉⌊The Easy Guide Setup walkthrough.⌉[

The Easy Guide Setup walkthrough.

[⌊The certificate in a MetaMask wallet after issuance.⌉⌊The certificate in a MetaMask
wallet after issuance.⌉[

The certificate in a MetaMask wallet after issuance.

[⌊Successful contract verification.⌉⌊Successful contract verification.⌉[

Successful contract verification.

[⌊Certificate metadata.⌉⌊Certificate metadata.⌉[

Certificate metadata.

[⌊A verified certificate.⌉⌊A verified certificate.⌉[

A verified certificate.

[⌊The Check a Certificate page, where anyone can search shops and their deployment
history.⌉⌊The Check a Certificate page, where anyone can search shops and their 
deployment history.⌉[

The Check a Certificate page, where anyone can search shops and their deployment
history.

[⌊A shop's certificate history.⌉⌊A shop's certificate history.⌉[

A shop’s certificate history.

## Installation

 1. Upload the plugin and activate it.
 2. Go to **WCP  Settings** and enter your platform URL.
 3. Go to **WCP  Dashboard** and connect your wallet.
 4. Add credit, choose a plan, and deploy a contract.
 5. Tick **Offer certificates at checkout** in Settings.

Full setup notes are under **WCP  Setup & Help** inside your admin.

## FAQ

### Do customers have to use this?

No. It is entirely optional at checkout. Customers who skip it pay nothing
 extra
and check out normally.

### Can I change the seller rights later?

No. They are written into the smart contract permanently when it is created —
 that
is what makes the promise shown to customers meaningful. To change them you would
deploy a new contract, which does not affect certificates already issued.

### What happens if a customer enters the wrong wallet address?

On Optimism and Arbitrum, addresses carry a checksum, so most typos are
 detected
and rejected before the order is placed. Solana addresses have no checksum: a typo
usually produces another valid-looking address, and a certificate sent there cannot
be recovered by anyone. Connecting a wallet is always safer than pasting.

### Can one order produce two certificates?

No. This is prevented in four independent places, including the smart contract
 
itself, so a retry, a network fault or a restored database backup cannot produce
a duplicate.

### What happens if I stop paying, or uninstall the plugin?

Certificates already issued are unaffected — they live on the blockchain, not
 on
our servers or in your database. The checkout option simply stops appearing.

### Does this work with the block-based checkout?

Yes, and with the classic shortcode checkout.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“WCP Blockchain Authenticity Certificates” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ woochainpro ](https://profiles.wordpress.org/woochainpro/)

[Translate “WCP Blockchain Authenticity Certificates” into your language.](https://translate.wordpress.org/projects/wp-plugins/wcp-blockchain-authenticity-certificates)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/wcp-blockchain-authenticity-certificates/),
check out the [SVN repository](https://plugins.svn.wordpress.org/wcp-blockchain-authenticity-certificates/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/wcp-blockchain-authenticity-certificates/)
by [RSS](https://plugins.trac.wordpress.org/log/wcp-blockchain-authenticity-certificates/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 7.4.2

 * FIXED: the download button threw an error and did nothing.
 * FIXED: the flattened source was missing most of its dependencies, so
    block explorers
   could not compile it.

#### 7.4.1

 * FIXED: the “Download all as .zip” button did nothing.
 * FIXED: contracts on a test network were reported as not matching our
    template,
   and their explorer links pointed at the wrong network.

#### 7.4.0

 * The verification panel now shows the Standard JSON Input and the flattened
    source,
   each with a copy button, plus a download of the whole package.
 * The block explorer link now goes to the test explorer for a contract on a
    test
   network, where its address actually exists.

#### 7.3.0

 * Renamed to WCP Blockchain Authenticity Certificates.
 * The verification package now contains a Standard JSON Input file and a
    flattened
   source, so your contract can actually be verified on a block explorer. The plain
   source file never could.

#### 7.2.1

 * FIXED: a critical error on every admin page after updating.

#### 7.2.0

 * New guided setup that walks through connecting, verifying, funding and
    deploying,
   doing each step for you and pausing for your approval.
 * The seller rights are still chosen by you: they are permanent, so nothing
    is
   pre-selected and the setup will not proceed until you decide.

#### 7.1.0

 * Certificates now show a QR code that opens the public verification page,
    so 
   a buyer can check an item without typing a contract address.

#### 7.0.1

 * FIXED: the plugin could not be activated.

#### 7.0.0

 * Renamed to Blockchain Authenticity Certificates. Your settings, wallet
    connection
   and existing certificates carry over automatically.
 * The plugin no longer contacts our servers until you have connected your
    shop.
   Activating it does nothing on its own.
 * All internal names now carry a longer, unique prefix.
 * Diagnostic logs moved into the uploads directory.
 * The [wcp_badge] shortcode keeps working; new installs should use
    [bacert_badge].

#### 6.3.0

 * Sites that block automated requests — behind a firewall, bot protection or
    a
   JavaScript-rendered theme — are no longer paused by mistake. WordPress now reports
   when the badge has rendered on your front page.

#### 6.2.0

 * The badge is now recognised wherever your theme places it — a footer
    widget,
   a block template part, a sidebar. It no longer has to be inside a

<

footer> element.
 * The badge carries a stable machine-readable marker, so detection
no longer depends on theme markup, class names or wording. * Pages are fetched with
cache-busting, so a cached copy from before you added the badge cannot cause a false
alarm.

#### 6.1.0

 * Your dashboard now tells you clearly if certificates have been paused
    because
   the badge is missing, with a button to re-check as soon as you have added it.

#### 6.0.0

 * First public release.
 * “Check this independently” on the badge now opens a page showing the
    contract,
   its verification status and a link to the block explorer.
 * Badge enforcement corrected: once we have confirmed the badge is missing
    from
   your site, the countdown starts from that moment.
 * Removing the plugin now clears every setting, cache and credential it
    created.
   Certificates and order records are untouched.

#### 5.9.2

 * FIXED: shops that have connected more than one wallet could show a badge
    claiming
   they held no rights over certificates when they did.

#### 5.9.1

 * FIXED: after deploying a contract, the footer badge could keep showing the
    previous
   contract’s rights.
 * A suspended contract is now unsuspended immediately when the badge is
    restored,
   instead of waiting for the next hourly check.

#### 5.9.0

 * The guided tour now runs on the Dashboard, Settings and Help pages, each
    starting
   automatically the first time you open it.
 * The badge check now detects a badge that is present but hidden or moved
    off-
   screen, and reports exactly what it found.

#### 5.8.1

 * FIXED: the “Show me around” button did nothing on the Settings page.
 * The badge must now be in your footer and actually visible, not merely
    present
   in the page source.

#### 5.8.0

 * The badge now reports the rights your contract actually holds, read from
    the
   blockchain rather than from our records.
 * The badge must appear on your homepage, not only on a page customers do
    not 
   visit.
 * The setup tour starts automatically the first time you open the dashboard
    and
   the settings page, and now covers status, checks and verification.
 * The “Show me around” button is easier to find.

#### 5.7.0

 * FIXED: a critical error when changing the badge placement setting.
 * The Settings page now has its own guided tour explaining every option.

#### 5.6.1

 * FIXED: the setup tour did not start, either on install or from the
    “Show me 
   around” button.

#### 5.6.0

 * New guided setup tour for first-time installs, with a “Show me around”
    button
   to reopen it at any time.
 * FIXED: the badge could keep showing old contract rights for up to 30
    minutes
   after deploying a new contract.
 * Switching the badge to manual placement now checks your site straight away
    and
   tells you if the shortcode is missing.
 * Exercising a right on a certificate is limited to once every 12 hours and
    charged
   at cost, since the platform pays the blockchain fee.

#### 5.5.0

 * Customers using a smart-account wallet are now warned at checkout that it
    cannot
   receive a certificate, instead of the order failing afterwards.

#### 5.4.0

 * The security badge can now be placed manually with the [bacert_badge] shortcode
   
   instead of appearing automatically in the footer. Settings has the option.
 * Added a full guide to the badge on the Help page.
 * Email verification is now separate from website verification, and the
    address
   must be on your own verified domain.

#### 5.3.1

 * The security badge now displays even when the platform is briefly
    unreachable,
   and lists the specific rights in the compact style.

#### 5.3.0

 * New security badge showing customers exactly what powers your shop holds
    over
   the certificates it issues, and confirming your contract matches the published
   template. Displayed in the footer automatically, or place it yourself with the[
   bacert_badge] shortcode.

#### 5.2.1

 * FIXED: a fatal error on the dashboard when the platform could not be
    reached.
   The page now degrades one section at a time instead of failing entirely.

#### 5.2.0

 * The plugin now shows a clear notice if a critical update is required, rather
   
   than failing with an unexplained error.

#### 5.1.0

 * Every product image on a certificate is now stored permanently rather than
    linked
   from the shop, so a certificate cannot break because a shop reorganised its media
   library.
 * Production release.

#### 5.0.1

 * Certificates for orders with more than one product now list every product
    with
   its own image and quantity. Previously the whole order was flattened into a single
   entry, so the certificate misdescribed what was bought.

#### 5.0.0

 * Subscriptions can no longer be bought while one is active. Renewing near
    expiry
   now adds the new period on top of the days you have already paid for instead 
   of discarding them.
 * Certificate status reflects your balance and subscription rather than a
    fixed
   monthly count, so a funded shop is never shown as not ready.
 * Solana top-ups now work from the browser and from a phone wallet using
    Solana
   Pay, with Solflare and Phantom detected automatically.
 * The QR panel no longer stretches the page on smaller screens.
 * Security pass: every endpoint rate limited, output escaping tightened, and
    nosniff
   headers added to file downloads.

#### 4.9.0

 * Fixed the Additional information list overflowing on the order confirmation
    
   page. The previous fix targeted tables; that page renders a definition list.
 * Deposits made on payment-only networks are now credited automatically. The
    scanner
   had only ever checked the networks certificates are minted on.

#### 4.8.1

 * Fixed long wallet addresses and the rights notice overflowing the Additional
   
   information table on the order screen and on small screens.

#### 4.8.0

 * FIXED: Freeze, Unfreeze and Destroy did nothing when clicked. The buttons had
   
   no handler, so nothing was ever sent and the certificate stayed unchanged on-
   chain while appearing to have been actioned.
 * FIXED: Subscribe, Use-this-code, Copy, Send-verification-email and
    Test-connection
   were also inert after an earlier refactor.
 * FIXED: “Pay from a browser wallet” reported no USDC contract for networks
    that
   were correctly configured.
 * Removed the pre-filled payment-link QR code. Several wallets ignored the
    network
   it specified and opened on Ethereum mainnet, risking funds sent to a network 
   we do not watch. The plain-address code, which every wallet reads correctly, 
   is now the only one offered.
 * Certificate limits on paid plans are now based on your balance rather than a
   
   fixed monthly count, so a funded shop is never blocked mid-period.
 * Fixed the Additional information table overflowing on order pages.

#### 4.7.1

 * Fixed the top-up section showing no payment methods even when all three were
   
   enabled on the platform.

#### 4.7.0

 * One network selector now drives all three payment methods, populated live
    from
   the platform. Previously the wallet-payment list showed only the networks certificates
   are minted on, ignoring the ones enabled for payment.
 * A wallet that does not recognise a network is now offered the details to add
   
   it, instead of failing with “Unrecognized chain ID”.
 * “Check now” and “Verification package” did nothing when clicked — the
    buttons
   and endpoints existed but the listeners were missing.
 * Certificate failures now explain the cause instead of reporting a bare
    reverted
   transaction.
 * Deposit failures name which assumption failed, including the case where the
    
   money arrived from a token contract we are not configured to accept.

#### 4.6.0

 * Orders where the customer requested a certificate but the order was not
    flagged
   for minting are now repaired automatically from the checkout fields, and issued.
   Previously they were silently skipped.
 * Added a Retry button on the order screen, and a bulk “Retry blockchain
    certificate”
   action on the orders list.
 * Certificate details now appear as a column in the customer’s Orders table,
    and
   the order page shows every identifier in full with explorer links.
 * Fixed a case where a certificate flag could be downgraded after it had been
    
   correctly set, cancelling a certificate the customer had paid for.

#### 4.5.0

 * CRITICAL: orders placed on the block-based checkout were not being minted.
    The
   certificate details were recorded in the session but never written to the order,
   so the status-change trigger found nothing to send. Orders placed on the classic
   checkout were unaffected.
 * Certificate details now appear on the customer’s order page, the thank-you
    page
   and order emails. They were only ever registered in wp-admin.
 * Payment QR now shows a plain-address code by default, which every wallet can
   
   scan, with the pre-filled payment link as a labelled second option.
 * Top-up polling backs off instead of hammering the platform, so a confirmation
   
   no longer stalls behind a rate limit.
 * Deposit addresses and copy buttons no longer overflow on desktop.
 * Commission shown on the Help page is read live rather than assumed.

#### 4.4.0

 * Payment methods and networks are now controlled by the platform, so the ones
   
   offered can change without a plugin update.
 * Verification email address is editable (the part before the @); instant
    HTTP
   verification remains the default and needs no mailbox.
 * Fixed the QR panel, deposit addresses and copy buttons overflowing the page
    
   on phones.
 * Commission is read live rather than fixed at deploy time.

#### 4.3.0

 * FIXED: ticking the certificate box at checkout could lock up the browser.
    A 
   DOM observer reacted to the plugin’s own output and re-entered itself.
 * The certificate selection now resets on every fresh load of the checkout
    page,
   so a returning customer never finds a fee they do not remember adding.
 * Pay a top-up by scanning a QR code: choose a network, choose an amount, scan.
   
   The network, token, destination and amount are all encoded, which removes the
   two mistakes that make a deposit unrecoverable.
 * The transaction-hash box now asks which network you sent on, and finds the
    transaction
   for you if you pick the wrong one.
 * Contract source is shown in a copyable box instead of a download link that
    could
   expire.

#### 4.2.0

 * Renamed for the plugin directory; the service is unchanged.
 * Domain verification now works over HTTP instead of email — one click, no
    admin@
   mailbox required.
 * Contract source download fixed (it required a header a browser link could
    not
   send).
 * Seller rights are now chosen per network rather than locked shop-wide.
 * Added a Checkout status panel showing exactly why the option is or is not
    visible
   to customers.
 * Subscription plans, per-plan promotional pricing and coupon redemption.
 * Platform announcement banner in the dashboard.
 * Setup & Help page with support contact.
 * Contract verification package: compiler settings, flattened source and
    ABI-encoded
   constructor arguments for block explorer verification.
 * Choose which contract new orders use when you hold more than one.
 * Certificates now record every product in a multi-item order.
 * Replaced the CDN-hosted QR library with a locally bundled MIT-licensed one.

#### 4.1.0

 * Server-authoritative checkout state: the certificate fee and the mint flag
    are
   derived from the same server-side value and cannot disagree.
 * Wallet addresses validated by the platform before an order can be placed.
 * Three ways to supply a wallet: connect, scan or upload a QR code, or paste.
 * Fixed order-status settings not persisting.

#### 4.0.0

 * SECURITY: removed AJAX handlers that allowed logged-out visitors to overwrite
   
   shop credentials.
 * SECURITY: debug logs moved out of the web-readable uploads directory and
    credentials
   redacted.
 * SECURITY: wallet connection now requires a signed challenge.
 * Multi-chain support: Optimism, Arbitrum and Solana.

## Meta

 *  Version **7.4.2**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.3 or higher **
 *  Tested up to **7.0.4**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [authenticity](https://wordpress.org/plugins/tags/authenticity/)[blockchain](https://wordpress.org/plugins/tags/blockchain/)
   [certificate](https://wordpress.org/plugins/tags/certificate/)[provenance](https://wordpress.org/plugins/tags/provenance/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/wcp-blockchain-authenticity-certificates/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/wcp-blockchain-authenticity-certificates/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/wcp-blockchain-authenticity-certificates/reviews/)

## Contributors

 *   [ woochainpro ](https://profiles.wordpress.org/woochainpro/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/wcp-blockchain-authenticity-certificates/)