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.33-cp313-cp313-win_amd64.whl (268.8 kB view details)

Uploaded CPython 3.13Windows x86-64

pop_pay-0.6.33-cp313-cp313-win32.whl (240.8 kB view details)

Uploaded CPython 3.13Windows x86

pop_pay-0.6.33-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (666.6 kB view details)

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

pop_pay-0.6.33-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (638.5 kB view details)

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

pop_pay-0.6.33-cp313-cp313-macosx_11_0_arm64.whl (169.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pop_pay-0.6.33-cp312-cp312-win_amd64.whl (216.3 kB view details)

Uploaded CPython 3.12Windows x86-64

pop_pay-0.6.33-cp312-cp312-win32.whl (187.8 kB view details)

Uploaded CPython 3.12Windows x86

pop_pay-0.6.33-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (511.2 kB view details)

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

pop_pay-0.6.33-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (490.5 kB view details)

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

pop_pay-0.6.33-cp312-cp312-macosx_11_0_arm64.whl (142.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pop_pay-0.6.33-cp311-cp311-win_amd64.whl (163.0 kB view details)

Uploaded CPython 3.11Windows x86-64

pop_pay-0.6.33-cp311-cp311-win32.whl (134.6 kB view details)

Uploaded CPython 3.11Windows x86

pop_pay-0.6.33-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (349.7 kB view details)

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

pop_pay-0.6.33-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (336.8 kB view details)

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

pop_pay-0.6.33-cp311-cp311-macosx_11_0_arm64.whl (113.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pop_pay-0.6.33-cp310-cp310-win_amd64.whl (110.0 kB view details)

Uploaded CPython 3.10Windows x86-64

pop_pay-0.6.33-cp310-cp310-win32.whl (81.7 kB view details)

Uploaded CPython 3.10Windows x86

pop_pay-0.6.33-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (199.7 kB view details)

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

pop_pay-0.6.33-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (193.2 kB view details)

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

pop_pay-0.6.33-cp310-cp310-macosx_11_0_arm64.whl (85.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pop_pay-0.6.33-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 268.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.33-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fcfef801a0d170dfabe84c7aec8e2e148321cf8f96f670dfde9067a94405de0c
MD5 c977d9a2bfe5076365cc8590468414b9
BLAKE2b-256 1653c3d7277e0cf376cbe94a2d4a334ff79ac9d650c28db119b5dc70b2132d39

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.33-cp313-cp313-win32.whl
  • Upload date:
  • Size: 240.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.33-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 d2cb49cc98f35be5081b87ed4c35fc4a5b38d1cfb2dfdfad26bfb05510059b62
MD5 d763fa49fd2cbcc0dcf1a29104810537
BLAKE2b-256 081251e6a7ebc7d5c75a2129af57c48d2bce3cfa64427093fcb80c406d2db371

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.33-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.33-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc027c4bc83a7434e0c7851a51a144946387f7f04d4a26032d898d8e67edd5d2
MD5 2b80686b3a4a774a37710df05195873b
BLAKE2b-256 094fe413d259137b5cc8695b14707455b90f56fd11c2549d4b8aaea078f21a63

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.33-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.33-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 314437842286642ac051295fecd6e1fcaa5b47f4b4ddd9209b1883c7d77a2e3e
MD5 4e0ae50c25a532026b1b03840e643532
BLAKE2b-256 7cf16bcbcc1acf2a1a137292e23d3d97a5728e54c54b371b6f89775ae7ec3210

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pop_pay-0.6.33-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4e6c228673c67ac5337934d867c1e0b2ff849a090aa7dfeb60d49fa7727f9f98
MD5 e060b880a899da1f5d9fcd9b292fd191
BLAKE2b-256 c3976ac3e45864608130aa04d4e19c6516682068d8756733c68529f30017575d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.33-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 216.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.33-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f69e2f9117c225c853d9df5a6c1d753a7bef828799823e76d0e5b4f34cb08e5d
MD5 89a431af60cb35f24a1eeb6010bc453c
BLAKE2b-256 72fdf2d01a947965d280d88ef3d8dfd966e106b938238870201e4d93a519bd97

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.33-cp312-cp312-win32.whl
  • Upload date:
  • Size: 187.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.33-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 e4dabf395060c9b617feb0e19ac441b7251ade2bf88536eb69e0b01412617709
MD5 d9bc9167d04ec39a07736d4163a99f15
BLAKE2b-256 59d3fb5b60c7119eb838b59c7427a3ace36716007d173ed00d471043aa3f4802

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.33-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.33-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cc5ddfd4ddce26e3169d99738d23fc6a631210008a3f3599ba5738cfbbb8eff7
MD5 833a4b7f43d4e8dd69bfe5907f2076e4
BLAKE2b-256 f672c1d65922cec46cee6b7e68bd74deeca30b4c44da2d875811cba5078cb292

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.33-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.33-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 89ec0a4a3822027b3dc4406d8b8fcd795df48f7b0a462adc8d0e2c377721547f
MD5 d95e0226dc414c54ad74156a448f1d25
BLAKE2b-256 11514c0e5d308abb6d770e4beb63f9823210c661105db4cbe52c368aca46fef6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pop_pay-0.6.33-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2bb1c987df170cee115df34cbda079e9019d8e22ce54c154a010568bc43850fe
MD5 cefff874f0564119d0a075e28f9914c9
BLAKE2b-256 d25048c1866b2f6a252cdde51a36a4919927cd2dfbc172f868af0752f4fa9174

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.33-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 163.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.33-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4a632b2eb85eaef4f45323e3505b04ee85522b64ba121f6e41b2fc7cbfc9ce15
MD5 daea82af5e95e1d98d232054b4927850
BLAKE2b-256 9a4e10c2410a2c4991094deed3f9de09f3dcd7d39d8e1c992042960ecc593bd3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.33-cp311-cp311-win32.whl
  • Upload date:
  • Size: 134.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.33-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 4376a02813e672c4204ef9725758646be25e6e45b23f6db5b11dcaa346bad5ac
MD5 9eeb107f5e23b2b1169a45fc641928e8
BLAKE2b-256 808bde179a38697ab4b69f360a5d3b81f908be4c94e43f2a6de75409beb776be

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.33-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.33-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4985ea43ac5f173a68b3b5eef0f2c22e23184226d261bb072a200c20b25cc38a
MD5 38a024b5e4373b870250ca32a20b71cc
BLAKE2b-256 69c52643410164d66900f2596bfcf3182b46782136776f3d69734da8e9a43cfd

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.33-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.33-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ae095da0a6177452e84aefc0d5709a447b0f5976a29fb969258d6300c7e6adc9
MD5 5a0beb7ec718bce44fdaa4ba31f70f97
BLAKE2b-256 523593ba5b9f5d4e4af32798de28ba0946b27cd81e4094f40119622b04556475

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pop_pay-0.6.33-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23fe2ff8b0afe3db063a31afd3b748c30c66d3dc69644a4c9ccfe22037baec06
MD5 abfe34f261a639e637a84cb2a9b3d458
BLAKE2b-256 7f0cf7f89fa07147077f7fc9f5d8f0b467ae49a25452d73356c27a07f96fffd5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.33-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 110.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.33-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bd0b3da458bbc88711906f98ff4105ce1d39f45e4619a78c6f0d70c9e1666257
MD5 9e9dd0bc4376e80f928afc88c4f1b694
BLAKE2b-256 5850658d9fa1ee8018107eb555df6936cba170a733a0ede1ee4092f695db2e23

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.33-cp310-cp310-win32.whl
  • Upload date:
  • Size: 81.7 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.33-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 2b7a1ddf3a8ac9506b326803bc01da38f32befa255487e30a0c64c0d390cc4d0
MD5 98ef26c85ef3edb4caa86cd9880f5773
BLAKE2b-256 18dae702d259bd73619b4ab2805663eb380edeb72ab93f0a1a90d6a2115c797c

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.33-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.33-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cde92be83cffef8dd52566e4a9c5a11f9ed041281310d8d946b2bffe7a93a055
MD5 dda8d0cccebd40bd256bcbdb557e7c20
BLAKE2b-256 d0cffde99aa607ceab53c2e39792c121446cad5bc55b6fdc55912d74dc38aee5

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.33-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.33-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8aad8313d6712a5643485458443c251097929c36184995323d3758f9a1f1845e
MD5 0fd54031c469c98e431d270ad2a96f4a
BLAKE2b-256 fb9ee92f437d5e9c36380442f2376c11dcc095310c4a5f9a3a3406c0abe0b0dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pop_pay-0.6.33-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d7d962b30421c0955b2bb741ac2733a36b39abe04b16952b179d93ae2376d393
MD5 4f704e5addb35ec9145a0a9d22518ad3
BLAKE2b-256 25f569c1fb212f821e1a118446e38bf5b04403d38d982d4cead6790f14c9acf2

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