Skip to main content

Point One Percent - Semantic Payment Guardrail for AI Agents. it only takes 0.1% of Hallucination to drain 100% of your wallet.

Project description

Point One Percent (AgentPay)

Point One Percent — pop-pay

Note: This is the PyPI published documentation. For the full architecture diagrams and real UI screenshots, please visit the GitHub Repository.

it only takes 0.1% of Hallucination to drain 100% of your wallet.

The runtime security layer for AI agent commerce.

Your card never enters the agent's context. One hallucinated prompt can't drain a wallet it can't see.

Point One Percent — live CDP injection demo

pop-pay is an open-source (MIT) runtime security layer that protects AI agents during online purchases. It works with OpenClaw, NemoClaw, Claude Code, OpenHands, and any MCP-compatible framework.

Architecture: Five Security Primitives

Primitive What it does
Context Isolation Layer Card credentials are injected directly into the browser DOM via CDP — they never enter the agent's process or LLM context window. Prompt injection can't steal what the agent doesn't have.
Intent Verification Engine Hybrid keyword + LLM guardrail evaluates whether a purchase should happen — not just whether it can. 95% accuracy on 20-scenario benchmark.
Human Trust Anchor Configurable human-in-the-loop approval for high-value or unrecognized transactions.
Zero-Knowledge Card Surface Agent only sees masked tokens (****-4242). Real data is stored in an AES-256-GCM encrypted vault.
Ephemeral Authorization Scope Each payment approval is single-use with TOCTOU domain guard — an approved session can't be redirected to a malicious merchant.

See THREAT_MODEL.md for the full STRIDE analysis and COMPLIANCE_FAQ.md for enterprise compliance details.

Guardrail Benchmark

Layer Score Notes
Keyword only 14/20 (70%) Fast, zero-cost, catches obvious violations
Hybrid (Keyword + LLM) 19/20 (95%) LLM resolves 5 of 6 keyword failures
Feature AgentPayy AgentWallet Prava pop-pay
Enforcement Mock alert() Rule-based Spending limits Semantic validation
Intent check None Agent-provided text None Context-aware LLM
Injection-proof No No No Yes

Two Deployment Modes

BYOC — Bring Your Own Card (Local)

The agent never receives the true card number — it only sees ****-4242. When checkout is reached, the Context Isolation Layer attaches via CDP, traverses all cross-origin iframes (Stripe Elements, Adyen, etc.), and injects credentials directly into the DOM. Runs entirely on your machine — no SaaS, no login, no external account.

Enterprise — Stripe Issuing

For cloud-hosted AI fleets: programmatically issue single-use virtual cards via Stripe API, with per-agent budgets and full audit trails.


Ecosystem Position

pop-pay is the agent's Policy Enforcement Point — it evaluates, approves, and injects. It does NOT navigate websites or solve CAPTCHAs — that's the browser agent's job.

The Handshake: How Point One Percent and Browser Agents Work Together

The real power emerges when Point One Percent is paired with a browser automation agent (e.g., OpenHands, browser-use, Skyvern). The workflow is a clean division of labor:

1. [Browser Agent]  Navigates to a site, scrapes product info, reaches checkout.
        │
        │  (Hit a paywall / payment form)
        ▼
2. [Browser Agent → POP MCP]  Calls request_virtual_card(amount, vendor, reasoning)
        │
        │  (Point One Percent evaluates: budget OK? vendor approved? no hallucination?)
        ▼
3. [POP]  Issues a one-time virtual card (Stripe mode) or mock card (dev mode).
            Full card credentials handled only by the local trusted process —
            never exposed to the agent or LLM context.
        │
        ▼
4. [POP]  Injects real credentials into the checkout form via CDP.
            The agent receives only a transaction confirmation — no card details.
        │
        ▼
5. [Browser Agent]  Clicks the submit button to complete the transaction.
        │
        ▼
6. [The Vault]  Dashboard logs the transaction. Card is immediately burned.

Supported Integrations

Integration path Works with
MCP Tool Claude Code, OpenClaw, NemoClaw, OpenHands, any MCP-compatible host
Python SDK Custom Playwright, browser-use, Skyvern, Selenium, gemini-cli

Any browser-capable agent (Claude Code, OpenClaw, browser-use, Skyvern, etc.) gets full CDP injection — card is auto-filled into the payment form, the agent only ever sees the masked confirmation (****-****-****-4242). See the Integration Guide for setup instructions and System Prompt templates.


4. Installation

Shell note: [...] is special syntax in zsh and bash — always wrap the package name in quotes.

# Core only (keyword guardrail + mock provider, zero external dependencies)
pip install "pop-pay"

# Claude Code / MCP integration
pip install "pop-pay[mcp]"

# Claude Code + CDP injection (BYOC)
pip install "pop-pay[mcp,browser]"

# With LLM-based guardrails (supports OpenAI, Ollama, vLLM, OpenRouter)
pip install "pop-pay[mcp,llm]"

# With Stripe virtual card issuing
pip install "pop-pay[stripe]"

# With LangChain integration
pip install "pop-pay[langchain]"

# Full installation (all features)
pip install "pop-pay[all]"

5. Quick Start for OpenClaw / NemoClaw / Claude Code / OpenHands

If you're using OpenClaw, NemoClaw, Claude Code, OpenHands, or any MCP-compatible agentic framework, you can get Point One Percent running in under 2 minutes:

Step 1: Set Up Environment & Install

# Create a dedicated directory and virtualenv
mkdir ~/pop-pay && cd ~/pop-pay
python3 -m venv .venv && source .venv/bin/activate

# Install — quotes required for zsh/bash
pip install "pop-pay[all]"

Contributing / local development? See CONTRIBUTING.md for the git clone + uv sync path.

Step 1b: Initialize the Credential Vault

v0.6.0+: Credentials are stored in an AES-256-GCM encrypted vault — no plaintext .env required.

pop-init-vault

This will prompt for your card credentials (input is hidden), encrypt them into ~/.config/pop-pay/vault.enc, and securely wipe any existing .env. The MCP server auto-decrypts the vault at startup — no extra steps needed per session.

Passphrase mode (stronger — protects against agents with shell access):

pop-init-vault --passphrase   # one-time setup
pop-unlock                     # run once before each MCP server session

pop-unlock derives the key from your passphrase and stores it in the OS keyring. The MCP server reads it automatically at startup.

Security levels (lowest → highest):

Mode Protects against
.env file (legacy) Nothing — plaintext on disk
Vault, machine key, OSS source File-read agents
Vault, machine key, pip install pop-pay File-read agents + casual shell inspection
Vault + passphrase File-read agents + shell agents
Stripe Issuing (commercial) All local threats — no credentials stored

Policy & non-credential config (allowed vendors, spending limits, CDP URL) is still read from ~/.config/pop-pay/.env. Only card credentials moved to the vault.

Step 2: Launch Chrome & Get MCP Commands

pop-launch --print-mcp

This launches Chrome with CDP enabled and prints the exact claude mcp add commands to run.

Step 3: Add to Claude Code

Choose your platform and follow the dedicated setup guide:

Platform Setup Guide
Claude Code (BYOC + CDP injection, recommended) Integration Guide §1
Python script / gemini-cli Integration Guide §2
Playwright / browser-use / Skyvern Integration Guide §3
OpenClaw / NemoClaw Integration Guide §4 / OpenClaw Skill
OpenHands Add python -m pop_pay.mcp_server to your mcpServers config

Step 4: Configure Policy

Edit ~/.config/pop-pay/.env (see Step 1b). Key variables:

Variable Default Description
POP_ALLOWED_CATEGORIES ["aws","cloudflare"] Vendors the agent is allowed to pay — see Categories Cookbook
POP_MAX_PER_TX 100.0 Max $ per transaction
POP_MAX_DAILY 500.0 Max $ per day
POP_BLOCK_LOOPS true Block hallucination/retry loops
POP_AUTO_INJECT false Enable CDP card injection
POP_GUARDRAIL_ENGINE keyword Guardrail engine: keyword (zero-cost, default) or llm (semantic, two-layer) — see Guardrail Mode
POP_BILLING_FIRST_NAME / POP_BILLING_LAST_NAME (empty) Auto-fill name fields on checkout pages
POP_BILLING_EMAIL (empty) Auto-fill email
POP_BILLING_PHONE (empty) E.164 format — auto-fill combined phone input
POP_BILLING_PHONE_COUNTRY_CODE (empty) ISO code ("US") or dial prefix ("+1") — fills country code dropdown; national number auto-derived
POP_BILLING_STREET / POP_BILLING_CITY / POP_BILLING_STATE / POP_BILLING_COUNTRY / POP_BILLING_ZIP (empty) Auto-fill address fields; state and country matched fuzzily against dropdown options
POP_ALLOWED_PAYMENT_PROCESSORS [] Extra third-party payment processor domains to trust (pop-pay ships with 20 built-in)
POP_WEBHOOK_URL (empty) Webhook URL for Slack/Teams/PagerDuty notifications

After editing .env, fully close and reopen Claude Code. The MCP server loads configuration at startup — !claude mcp list alone is not sufficient to pick up .env changes.

Guardrail Mode: Keyword vs LLM

Point One Percent ships with two guardrail engines. You switch between them with a single env var:

keyword (default) llm
How it works Blocks requests whose reasoning string contains suspicious keywords (e.g. "retry", "failed again", "ignore previous instructions") Sends the agent's reasoning to an LLM for deep semantic analysis
What it catches Obvious loops, hallucination phrases, prompt injection attempts Subtle off-topic purchases, logical inconsistencies, policy violations that keyword matching misses
Cost Zero — no API calls, instant One LLM call per request_virtual_card invocation
Dependencies None Any OpenAI-compatible endpoint
Best for Development, low-risk workflows, cost-sensitive setups Production, high-value transactions, untrusted agent pipelines

Tip: keyword mode requires no extra config. To enable LLM mode, see the full configuration reference in the Integration Guide §1.

Step 4: Use It

Your agent now has access to two tools:

Tool When to use
request_purchaser_info Billing/contact info page (name, email, phone, address) — no card fields visible yet
request_virtual_card Payment page — card fields are visible. Prompt injection scan runs automatically inside this call.

Single-page checkout (e.g. Wikipedia donate): agent calls request_virtual_card. Two-page checkout (e.g. billing info → payment): agent calls request_purchaser_info first, then request_virtual_card.

When it encounters a paywall:

Agent: "I need to purchase an API key from AWS for $15 to continue."
[Tool Call] request_virtual_card(amount=15.0, vendor="AWS", reasoning="Need API key for deployment")
[POP] Payment approved. Card Issued: ****4242, Expiry: 12/25, Amount: 15.0
Agent: "Purchase successful, continuing workflow."

If the agent hallucinates or tries to overspend:

Agent: "Let me retry buying compute... the previous attempt failed again."
[Tool Call] request_virtual_card(amount=50.0, vendor="AWS", reasoning="failed again, retry loop")
[POP] Payment rejected. Reason: Hallucination or infinite loop detected in reasoning

6. Core Components

The Vault

A local visualization console powered by Streamlit and SQLite (pop_state.db). The Vault allows humans to:

  • Monitor all issued seals and agent spending activity in real-time.
  • Monitor global budget utilization.
  • Audit rejection logs from semantic guardrails.

The Seal

Virtual, single-use payment credentials with built-in enforcement:

  • Daily Budget Limit Enforcement: Automatically blocks any request that would exceed the predefined daily spending cap.
  • Burn-after-use Interception: Ensures that once a virtual card is used, it is immediately invalidated, preventing replay attacks or unauthorized recurring charges.

Semantic Guardrails

Point One Percent provides two modes of intent evaluation. Both are controlled by POP_GUARDRAIL_ENGINE in your .env (see §5 Step 3 for full configuration).

  1. Keyword mode (POP_GUARDRAIL_ENGINE=keyword, default): The GuardrailEngine scans the agent's reasoning string for suspicious phrases associated with loops or hallucinations (e.g., "retry", "failed again", "ignore previous"). Zero dependencies, zero latency, zero cost. Recommended as the starting point for all setups.

  2. LLM mode (POP_GUARDRAIL_ENGINE=llm): The LLMGuardrailEngine sends the agent's reasoning to an LLM for deep semantic analysis, catching subtler misuse that keyword matching would miss — such as off-topic purchases or logically inconsistent justifications. Supports any OpenAI-compatible endpoint: OpenAI, Ollama (local), vLLM, OpenRouter, and more.

7. Security Statement

Security is a first-class citizen in Point One Percent. The SDK masks card numbers by default (e.g., ****-****-****-4242) when returning authorization results to the agent. This prevents sensitive payment information from leaking into agent chat logs, model context windows, or persistent logs, ensuring that only the execution environment handles the raw credentials.

v0.6.0 defense-in-depth hardening:

Layer Defense
Encrypted vault Card credentials stored as AES-256-GCM ciphertext (vault.enc); plaintext never touches disk after pop-init-vault
Passphrase mode Key derived from user passphrase via PBKDF2 (600k iterations); stored in OS keyring — agents with shell access cannot derive the key
Database SQLite only stores masked card (****-4242); card_number and cvv columns removed entirely
Injection-time TOCTOU guard Domain verified against guardrail-approved vendor at the moment of injection — prevents redirect-to-attacker attacks
Repr redaction VirtualSeal.__repr__ always emits ****-REDACTED; credentials cannot leak via logs or tracebacks
Core dump prevention MCP server disables core dumps at startup (RLIMIT_CORE=0)
Process isolation Agent communicates via MCP JSON-RPC as a separate process — cannot access MCP server memory or env vars through the protocol

See SECURITY.md for the full threat model, red team results, and documented limitations.

8. The Vault Dashboard

The Vault is your real-time monitoring console for all agent payment activity.

Starting the Dashboard

cd Point-One-Percent
uv run streamlit run dashboard/app.py
# Dashboard opens at http://localhost:8501

Dashboard Layout

Section Description
Sidebar: Max Daily Budget slider Adjust the displayed budget cap for visualization (does not affect backend policy — backend policy is configured via env vars or SDK)
Today's Spending Total amount spent by agents today
Remaining Budget How much budget is left for the day
Budget Utilization Visual progress bar showing spend %
Issued Seals & Activity Full table of all payment attempts (approved + rejected) with seal ID, amount, vendor, status, and timestamp
Rejected Summary Filtered view showing only rejected/blocked attempts for quick auditing

Tips

  • Click Refresh Data in the sidebar to pull latest activity from the database.
  • The dashboard reads from pop_state.db — the same database the SDK writes to. Keep both running simultaneously for live monitoring.
  • Each row in the table corresponds to a single request_virtual_card call from an agent.

9. Python SDK Quickstart

Integrate Point One Percent into your custom Python or LangChain workflows in just a few lines:

from pop_pay.client import PopClient
from pop_pay.providers.stripe_mock import MockStripeProvider
from pop_pay.core.models import GuardrailPolicy

# Define your safety policy
policy = GuardrailPolicy(
    allowed_categories=["API", "Cloud", "SaaS"],
    max_amount_per_tx=50.0,
    max_daily_budget=200.0,
    block_hallucination_loops=True
)

# Initialize the client with keyword-only guardrails (default)
client = PopClient(
    provider=MockStripeProvider(),
    policy=policy,
    db_path="pop_state.db"
)

# Use with LangChain Tool
from pop_pay.tools.langchain import PopPaymentTool
tool = PopPaymentTool(client=client, agent_id="agent-01")

For LLM guardrail engine setup and the full provider reference, see Integration Guide §2.


10. Payment Providers: Stripe vs Mock

Without Stripe (Default — Mock Provider)

By default, Point One Percent uses the MockStripeProvider which simulates virtual card issuance. This is perfect for:

  • Development and testing — no real money involved
  • Demo and evaluation — see the full flow without any API keys
  • Hackathons — get a working prototype in minutes

Mock cards are fully functional within the system (budget tracking, burn-after-use, guardrails all work), but they are not real payment instruments.

BYOC — Bring Your Own Card (Hacker Edition)

For developers who want to use their own physical credit card with Point One Percent without a Stripe account. The LocalVaultProvider reads card credentials from environment variables and injects them into browser payment forms via CDP — the raw PAN is never exposed to the agent.

Add to your ~/.config/pop-pay/.env:

POP_BYOC_NUMBER=4111111111111111   # Your real card number
POP_BYOC_CVV=123
POP_BYOC_EXP_MONTH=12              # Expiry month, e.g. 04
POP_BYOC_EXP_YEAR=27               # Expiry year, e.g. 31
POP_AUTO_INJECT=true

Then restart Claude Code. The MCP server will automatically use LocalVaultProvider.

Provider priority (high → low): Stripe Issuing → BYOC Local → Mock.

If POP_STRIPE_KEY is set, Stripe takes precedence. If POP_BYOC_NUMBER is set (but no Stripe key), LocalVaultProvider is used. If neither is set, MockStripeProvider is used for development.

Security note: Never commit real card numbers to version control. Always use .env (which is .gitignored) or a secrets manager. The CDP injection ensures the full card number is only handled by the local trusted process, never by the LLM.

For Python SDK usage of each provider, see Integration Guide §2.

With Real Stripe Issuing

To issue real virtual credit cards through Stripe Issuing:

Prerequisites:

  1. A Stripe account with Issuing enabled (requires application approval)
  2. Your Stripe secret key (sk_live_... or sk_test_...)

Option A: Via Environment Variable (for MCP Server)

export POP_STRIPE_KEY=sk_live_your_stripe_key_here
python -m pop_pay.mcp_server
# The MCP server will automatically use StripeIssuingProvider

What Stripe Issuing does:

  • Creates a real Stripe Cardholder (POP Agent)
  • Issues a virtual card with a spending limit matching the approved amount
  • Returns masked card details (last 4 digits only) to the agent
  • All Stripe errors are caught and returned as rejection reasons

CDP injection limitation with Stripe Issuing: The Stripe Issuing API returns only the last 4 digits of the card number for security reasons. CDP auto-injection (POP_AUTO_INJECT=true) requires the full PAN and therefore does not work with Stripe Issuing. Use BYOC (POP_BYOC_NUMBER) if you need CDP injection; use Stripe Issuing if you need a real card and will handle form submission yourself.

Note: Stripe Issuing is a premium Stripe product that requires approval. For most development and demo use cases, the Mock provider is sufficient.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pop_pay-0.6.28-cp313-cp313-win_amd64.whl (267.8 kB view details)

Uploaded CPython 3.13Windows x86-64

pop_pay-0.6.28-cp313-cp313-win32.whl (239.8 kB view details)

Uploaded CPython 3.13Windows x86

pop_pay-0.6.28-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (665.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

pop_pay-0.6.28-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (637.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pop_pay-0.6.28-cp313-cp313-macosx_11_0_arm64.whl (168.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pop_pay-0.6.28-cp312-cp312-win_amd64.whl (215.3 kB view details)

Uploaded CPython 3.12Windows x86-64

pop_pay-0.6.28-cp312-cp312-win32.whl (186.8 kB view details)

Uploaded CPython 3.12Windows x86

pop_pay-0.6.28-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (510.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

pop_pay-0.6.28-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (489.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pop_pay-0.6.28-cp312-cp312-macosx_11_0_arm64.whl (140.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pop_pay-0.6.28-cp311-cp311-win_amd64.whl (162.0 kB view details)

Uploaded CPython 3.11Windows x86-64

pop_pay-0.6.28-cp311-cp311-win32.whl (133.6 kB view details)

Uploaded CPython 3.11Windows x86

pop_pay-0.6.28-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (348.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

pop_pay-0.6.28-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (335.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pop_pay-0.6.28-cp311-cp311-macosx_11_0_arm64.whl (112.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pop_pay-0.6.28-cp310-cp310-win_amd64.whl (109.0 kB view details)

Uploaded CPython 3.10Windows x86-64

pop_pay-0.6.28-cp310-cp310-win32.whl (80.6 kB view details)

Uploaded CPython 3.10Windows x86

pop_pay-0.6.28-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (198.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

pop_pay-0.6.28-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (192.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pop_pay-0.6.28-cp310-cp310-macosx_11_0_arm64.whl (84.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file pop_pay-0.6.28-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pop_pay-0.6.28-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 267.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pop_pay-0.6.28-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c88bbb677c6d6b65a0790ae368967b445650e5b352af6fd5f48c5c6cd0c347e0
MD5 32a85cbb1981174dbe7957d87abe58a1
BLAKE2b-256 8a34f9780dac683b70bdfa6740d0621d107c0536ed9bdbc10df8cbb9df12c485

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp313-cp313-win32.whl.

File metadata

  • Download URL: pop_pay-0.6.28-cp313-cp313-win32.whl
  • Upload date:
  • Size: 239.8 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pop_pay-0.6.28-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 24632629661ae04614c6346bacc76a03f2e7ce7009f63db01614ed2328ad6864
MD5 8006f7de10bf2fa5ee06d856af3dfc5f
BLAKE2b-256 1280c812c6a97bc17e42c51eb9ddf283dc7101f2f0867736c2e58e73319622c6

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pop_pay-0.6.28-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 95f42bd40d66c9724f9f71d404418424a180f13186c0f4227825b6c49fe3f3f6
MD5 81fe1e92ab981d48fd0472a1baf832f9
BLAKE2b-256 c6a4f33215032a8104fefa949e61e03154fc619d5762228470804e75cb75996b

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pop_pay-0.6.28-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 73faf8dccfaa2d2158dfb015f64db3040d6ce3f39bdb53aca76114c7320526b5
MD5 35daecdb11dea9d35da2f4388204ab32
BLAKE2b-256 e4e6be6199083d6f43e4ab85c01c6d4824e1f69af5bf722a3e9e20658595c6fb

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pop_pay-0.6.28-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 400e4356d63ca5c1d6d9a615cf9e4a4cb3af551df1426b2142313ef41b4a4b83
MD5 6ab6b0b24dbfee701436f91e1f2084e2
BLAKE2b-256 14a08fb1e67c2812131e64e264fceccb6d26740c87abe1e795855e035e076697

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pop_pay-0.6.28-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 215.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pop_pay-0.6.28-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 75d01ce267cf23ae20c6a383891603dec7e1f0e370336514031eb4aaaf0c0a5a
MD5 a42d3ed8dd9c192e6dcfb9f1d7cb83fd
BLAKE2b-256 cf66d49b34233cd0a1e04e3edb445d37bf769877d9446438c8855e3958e5d659

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp312-cp312-win32.whl.

File metadata

  • Download URL: pop_pay-0.6.28-cp312-cp312-win32.whl
  • Upload date:
  • Size: 186.8 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pop_pay-0.6.28-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 4132fff68986184c6404a61819a8f26a8cfcb580862428967df966d0b7c80814
MD5 a47b55f93acdbb4dc7d349acc33bb0ab
BLAKE2b-256 30de8a75bded1d13fd71442ade73b928f1f35172e958fff3096ae44a441b6683

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pop_pay-0.6.28-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 341634e76101f9bce5fb722a8c50066c212edd9eaeeb2ea99d854aa1635c1b13
MD5 322d012dec6f824f202f00d76664a100
BLAKE2b-256 7094b66a33d56d956be3a7718b7a2c4eac9d959932f0e3757e4a171136bf8bb7

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pop_pay-0.6.28-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 15fc927c38b08c348893bd03ec2d7d770db21ae3f66a7af47db8794909f01456
MD5 26cfc3fb8f9b1ebef0008186349fc582
BLAKE2b-256 fbd1e4601db77860119aad43d75a47b7c6f3ba765cf856d97fa070b09d3824ba

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pop_pay-0.6.28-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7f4d2e4859817339e8a29bf31c02fcef985125de74e28dbc503cd2895433bb32
MD5 81c9bdc038775d33ae96382d77352fc9
BLAKE2b-256 8153a312a6c3a39a4474537777fe17fd51a7a43b9aa263f3414b184f050bee25

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pop_pay-0.6.28-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 162.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pop_pay-0.6.28-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ff18f96bb1ca07820a05647e50d6b7bf82cc25938db0c1f4c7c13bd55f868496
MD5 5c14b87c2574ae02719bbcf267b03cb1
BLAKE2b-256 25234c9d74fe3b57e8ed8f1510da28e5f264fda306abbd060eb7552e51632b09

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp311-cp311-win32.whl.

File metadata

  • Download URL: pop_pay-0.6.28-cp311-cp311-win32.whl
  • Upload date:
  • Size: 133.6 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pop_pay-0.6.28-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 3b7f9f4a448caf8e0ac9729314ac24e65174eba26066b0c07cc8bdc550f12a8e
MD5 def4af7710195fab940b2cfcc00ba45d
BLAKE2b-256 2507bea14ba649bdd15d2fd556f03de99c28d7f1fbdbbb16b820c07118b77b0c

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pop_pay-0.6.28-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1c4270ffa218cc84be1dd4d47e89bff3163b8ca8b54c79f5f1ea167dcacf3ba2
MD5 20ead63430de041458af6bf3fe4c463a
BLAKE2b-256 ac514ba37fe45bf1acca424a92a0e8a186c1ea2e53fd1caa82fd734f658a70cc

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pop_pay-0.6.28-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a2e5b5b98ff0b5a6e39e1007be27b3382534c8471d7c0865a3a55fd2bf9bc2a1
MD5 a7316d9aa12981cd83d9ec9750dda0e4
BLAKE2b-256 bea04eb5c3fbe5f4fa49544a030cb6ba23ac764bc2dd73b5166ba59d15ead708

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pop_pay-0.6.28-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22e64d262f4bcf56778211ebdc86e3e4f26acd273655afae8f31dc1a44fc5901
MD5 fdb4b48c85f1ba63c0136bd96ebe9a37
BLAKE2b-256 3ab9bf2c49bb2bce01b38881f35f3f11d33e8bbda06cd4f78a335b87410712f2

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pop_pay-0.6.28-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 109.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pop_pay-0.6.28-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fa29f1611d3ac868a7c96801080205508f5dafa52ef6f7970d3ccae26a720ac9
MD5 2a2b06e6201ec7be555e5c6cfda79b65
BLAKE2b-256 b73aeb4f0d323f8d9c180fb5d2c7df9959a8ee20944586ece49ecf935dc87fd9

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp310-cp310-win32.whl.

File metadata

  • Download URL: pop_pay-0.6.28-cp310-cp310-win32.whl
  • Upload date:
  • Size: 80.6 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pop_pay-0.6.28-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 cf7e8ea71051d5ce2f08ad83919dfc2aa1ac7c21bc0ad3815dcb05c5b12f3ec1
MD5 ea390950ce976fb17a2469b7a68d22c5
BLAKE2b-256 7068e84dbe48fab8b93389f1e8eb959f93f33fa4adc9899c07af9bd92608cb32

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pop_pay-0.6.28-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 31f3bf05a9ced7dbd4abd9fe110d24a821cceda4cf7f60454003e4b188e85785
MD5 ab3098be56f97f382ebf15a0a7c88b47
BLAKE2b-256 4dba4601849ba1c0e70c220a5b4719fcab034ff75a29c550650c26a27b7a10e7

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pop_pay-0.6.28-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7ec44004854325cc0642ddb0ff69085af88c82f85b464cfbe08b3c0cb093e4e4
MD5 48a2418eb8124427b71aa6931acac503
BLAKE2b-256 b25da361b19f19f46cebbc6bd11ca99b99d5c166726896c65e91e4712a46ccb1

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.28-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pop_pay-0.6.28-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f8cbdd56637c988a2a222e031ede0b7cefa8ec6437cc6488fefaf143efcc42b2
MD5 af6560dac421a61baa5cc53f31dd3f5b
BLAKE2b-256 a523992350ab2e3aa89c6c7ce58abb36fdc6210f1fbabc50b0d7bf56844e1bc8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page