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.

Glama MCP score    Point One Percent on Product Hunt

The runtime security layer for AI agent commerce.

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

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

Uploaded CPython 3.13Windows x86-64

pop_pay-0.6.26-cp313-cp313-win32.whl (240.2 kB view details)

Uploaded CPython 3.13Windows x86

pop_pay-0.6.26-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (665.8 kB view details)

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

pop_pay-0.6.26-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (637.7 kB view details)

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

pop_pay-0.6.26-cp313-cp313-macosx_11_0_arm64.whl (168.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pop_pay-0.6.26-cp312-cp312-win_amd64.whl (215.6 kB view details)

Uploaded CPython 3.12Windows x86-64

pop_pay-0.6.26-cp312-cp312-win32.whl (187.2 kB view details)

Uploaded CPython 3.12Windows x86

pop_pay-0.6.26-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (510.4 kB view details)

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

pop_pay-0.6.26-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (489.6 kB view details)

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

pop_pay-0.6.26-cp312-cp312-macosx_11_0_arm64.whl (141.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pop_pay-0.6.26-cp311-cp311-win_amd64.whl (162.4 kB view details)

Uploaded CPython 3.11Windows x86-64

pop_pay-0.6.26-cp311-cp311-win32.whl (133.9 kB view details)

Uploaded CPython 3.11Windows x86

pop_pay-0.6.26-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (348.9 kB view details)

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

pop_pay-0.6.26-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (336.0 kB view details)

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

pop_pay-0.6.26-cp311-cp311-macosx_11_0_arm64.whl (113.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pop_pay-0.6.26-cp310-cp310-win_amd64.whl (109.3 kB view details)

Uploaded CPython 3.10Windows x86-64

pop_pay-0.6.26-cp310-cp310-win32.whl (80.8 kB view details)

Uploaded CPython 3.10Windows x86

pop_pay-0.6.26-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (198.9 kB view details)

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

pop_pay-0.6.26-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (192.4 kB view details)

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

pop_pay-0.6.26-cp310-cp310-macosx_11_0_arm64.whl (84.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pop_pay-0.6.26-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 268.1 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.26-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5d0598bd458ff47a76cbed8eab4e7b175b01356365e5672fe69014516908d1ed
MD5 6f58d754af07822e293f094a9c88babb
BLAKE2b-256 630c5345a0de24573329e1d95f026534aeacaeb5cba12aaac61b2dbdabebb009

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.26-cp313-cp313-win32.whl
  • Upload date:
  • Size: 240.2 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.26-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 86441362e56b7af03d399d3c88594d70da79de5744571055aa22d07284037292
MD5 7a15f3a22d470c9d250711e308d8c20c
BLAKE2b-256 7deaab88f2baa903382e9e188ba24b941564b0b56d7b7d5ff30ba9df47d90e03

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.26-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.26-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4f0b5109e6bc7e1f925dd0cf2a235b7b35846ca39c1f7d3b3cae1f6f0d901d4a
MD5 af34af4aa8e3d5c8ba3dd1ab8bf7c4a0
BLAKE2b-256 5f73e9a8e786dd874b6879a47bbd634348804fe0bb8c87db5c7c6c0f60386022

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.26-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.26-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ef65f8f0f5643485f22208fc67bda34023e210b2f5c6083d79028aebf421f352
MD5 3622b67e6a0a6e5f8e4a4ce59f912ce4
BLAKE2b-256 c63cd0fec86017b66b5073c0369f8917f1d3c3d97ba37bfc01bafbad9548b293

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pop_pay-0.6.26-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aa55f2aa0dc27b1808a16d6759aca8cb02e4ae1ed2864a85aa28399b6a721073
MD5 c5d521519107c263e34e85846eb7930c
BLAKE2b-256 5a6c9ae0870d45887b2d3ea3c6a3fe046355efeeca538bdfbb2f59482ade706a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.26-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 215.6 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.26-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e415e9a7326a3f28016e6a6e7b439dfefa7752869f6cef597d0a1e5222d7e1be
MD5 f2aca88b812f11645c4d7f11ec9f1a9e
BLAKE2b-256 313d9b2d4705c7d20cc3290a42b4ed3150c92efdabbcbc3fffb3d4a3584d21ff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.26-cp312-cp312-win32.whl
  • Upload date:
  • Size: 187.2 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.26-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 a82fab8b974c889206e4408af6bd5b6b7e1faea6aa0e13a160424ce16c44c390
MD5 10d67d0c9d0c330c63b3ad3f52f0de7d
BLAKE2b-256 02306b385f53748242f294c2fbf89263f237e034b33bdf2b135451f2df05b112

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.26-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.26-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7fadb34810da6bd68ac0e5d89e6e94f3779faaa0de031db652a631748e77e7e9
MD5 6a8ad53ccc64ebb6e9297de09a6020a0
BLAKE2b-256 0de561fe3c5648906a131cab91c9b3cf0475de9e3c8f9f4e2efd6dd884e186a5

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.26-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.26-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8e41962dc3ff3fc53b851360e1d49cc3b9c6d8df5a70343e9925dced1ed9317c
MD5 fb9cb2e1add26b979318a835b6c78391
BLAKE2b-256 4056fe5d81039c3a503f813f6caa74022b37ef9219afbdc63e77f4fbff9a8580

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pop_pay-0.6.26-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 72aced2c21d07f19f15c6f758a47578fd24285c4a8ea98c56023b4192b69387f
MD5 c44796b73778839de62de57d224fd8e4
BLAKE2b-256 b93b7b4844bab0eb6083392fd501fc0700adf6d9c24fbb4a0d04890954c15719

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.26-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 162.4 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.26-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 410315042ef3536a8b4afead948b3682238b311cbcac717bb8ad3ba78e530e99
MD5 40b421e463311db437e933cd9d96a247
BLAKE2b-256 504980d264d05a539b2a1c907ecd7e92c06fd69bb107931a742ad3df9cce7bd8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.26-cp311-cp311-win32.whl
  • Upload date:
  • Size: 133.9 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.26-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 f77b7eef8a349351370abd40e0517601e08fc60ded78d189740eba5906032dde
MD5 8a1118d0033ad0a453fbda3ecc94f957
BLAKE2b-256 779e39ef44ec824cba862dae823fadbc11ea010813f1228996c12a7e8c648843

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.26-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.26-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2869bc41a4c21c2c0ee7025d7f5189ba61f4e798c291c806e0445b9067be7d08
MD5 6b1268ba62e9fa77efcdaf1e5f5619bd
BLAKE2b-256 9fc44955f15c9a77563690c7c60dcade9d4f65e89715d8340e5c3ef9002c5a5e

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.26-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.26-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1d54d2ed09df3581ee786e42d2440aec93061f4618a47a7f9b2ea0b2ad27e4d9
MD5 a305fc93ce8e47458faaa65c752a2596
BLAKE2b-256 2ae55b036523f20b6a53cd6048651734d33d3e8afdeadad586e58ad259144b9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pop_pay-0.6.26-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9c093bbb2506f49e2457b2e4b4c9425bafe959700be9bf6a6427f8ae24296fba
MD5 b9c6b22090c7adf84ac85ca89f9f28a9
BLAKE2b-256 c580158d000548e8c9c26b3b1335e1e2111f9f708947fdfc1bed2f4c63bb032b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.26-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 109.3 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.26-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 428a4701f2c3c5b109fdcd5be133a8b6410a0a17125eabcfa7ee309ed7200a2a
MD5 b9deb0270ffc1ee3c3b74f1cb1a7b644
BLAKE2b-256 6ce5e7734927523488645a66f366843e8cf9a488d69f240f7f39476695092973

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pop_pay-0.6.26-cp310-cp310-win32.whl
  • Upload date:
  • Size: 80.8 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.26-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 18adf716a63fc065be6a4d9c0cd56c15ead7b91b75bdbba9a1d357767735e818
MD5 4c937d5892df98485ca6ceeef52d6e66
BLAKE2b-256 b836e648bc9b1e1302224d8b9e5669b06ccdd50f0e317eda233f9d0811d8c8d3

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.26-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.26-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9fe47d5540ca5c499e2599ad6693867b722709427060e6af3a31b6ca724d626a
MD5 717b2c455d2d8174d847fc53792af000
BLAKE2b-256 fb88ac239a1f5db4b54650f965f210951672acf31dcc357bc4b97c5de56f860c

See more details on using hashes here.

File details

Details for the file pop_pay-0.6.26-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.26-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e977b8daa6a9e9b8449092d1c872104b33b4586eef7099fef5cc7098e732235e
MD5 d461d698523a95ec3d5d29d10bafaf5e
BLAKE2b-256 4bda387f62800a3793721c5c5c993d2d8d7fc0a1d6083b166a7c260f4334891d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pop_pay-0.6.26-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c12a424bde5937971ee06572d47ae8a9b4331b54a7a46e03dd58d2ac634e5a8a
MD5 690ad5b638273e4d36a5ae13f6719968
BLAKE2b-256 791ab082ca20e4299e4b8380d94e2eb0e15538c81029fc21c83c02ccb1d6ab7a

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