Skip to main content

Python SDK for PaySponge

Project description

paysponge

Python SDK for Sponge.

The paysponge package gives Python apps access to Sponge agent wallets, platform provisioning, transfers, balances, cards, and paid request workflows.

Concepts

Sponge has two client types:

  • SpongeWallet is the runtime client for one agent. Use it with an agent API key when that agent needs to inspect balances, get wallet addresses, transfer funds, create cards, or make paid requests.
  • SpongePlatform is the control-plane client for your backend. Use it with a master/platform API key when you need to create agents or manage many agents for your product.

An agent is the Sponge identity that owns wallets and permissions. In a multi-user app, you typically create one Sponge agent per user, bot, workflow, or worker. Each agent gets its own agent API key. Your backend can use SpongePlatform to provision those agents, then store the returned agent key with your own user or worker record. At runtime, use SpongeWallet with that agent key so actions are scoped to the correct agent.

Install

pip install paysponge

Quick Start

Use an agent API key with SpongeWallet. The wallet client acts on behalf of one Sponge agent.

from paysponge import SpongeWallet

wallet = SpongeWallet.connect(api_key="sponge_test_xxx")

agent = wallet.get_agent()
addresses = wallet.get_addresses()
balances = wallet.get_balances()

print(agent.id)
print(addresses)
print(balances)

An agent is the Sponge identity that owns the wallets and permissions used by the SDK. wallet.get_agent() fetches the current agent for the API key and stores its agent.id on the client, so later calls can use that agent by default.

You can also read the API key from the environment:

export SPONGE_API_KEY=sponge_test_xxx
from paysponge import SpongeWallet

wallet = SpongeWallet.connect()
print(wallet.get_addresses())

Platform Usage

Use a master/platform API key with SpongePlatform when your backend needs to create or manage agents. Platform keys are higher-trust credentials and should stay on your server. They are for provisioning and administration, not for day-to-day agent actions.

from paysponge import SpongePlatform

platform = SpongePlatform.connect(api_key="sponge_master_xxx")
agent = platform.create_agent(name="Hackathon Agent")

print(agent.id)

Typical platform flow:

  1. Your backend authenticates with SpongePlatform using a master key.
  2. It creates a Sponge agent for a user, bot, or worker.
  3. It stores the returned agent API key with your own application record.
  4. Runtime code uses SpongeWallet with that agent API key.

Examples

Source examples are available in the repository:

  • mobwallet/python/paysponge/examples/basic.py
  • mobwallet/python/paysponge/examples/transfer.py
  • mobwallet/python/paysponge/examples/basic_sdk.py

From a clone of the repository:

cd mobwallet/python/paysponge
SPONGE_API_KEY=sponge_test_xxx uv run python examples/basic.py
SPONGE_API_KEY=sponge_test_xxx RECIPIENT_ADDRESS=0x... uv run python examples/transfer.py

Common Methods

wallet.get_agent()
wallet.get_addresses()
wallet.get_balances()
wallet.get_wallets()
wallet.transfer(chain="base", to="0x...", amount="1.00", currency="USDC")
wallet.issue_virtual_card(
    amount="25.00",
    merchant_name="Example Store",
    merchant_url="https://example.com",
)
wallet.get_sponge_card_status()
wallet.paid_fetch(url="https://example.com")

Cards

Card methods live on SpongeWallet, because cards are issued or managed for a specific Sponge agent:

card = wallet.issue_virtual_card(
    amount="25.00",
    currency="USD",
    merchant_name="Example Store",
    merchant_url="https://example.com",
)

status = wallet.get_sponge_card_status(refresh=True)

Available card helpers include:

  • wallet.store_credit_card(...)
  • wallet.get_stored_credit_card()
  • wallet.get_card(...)
  • wallet.issue_virtual_card(...)
  • wallet.report_card_usage(...)
  • wallet.get_sponge_card_status(...)
  • wallet.onboard_sponge_card(...)
  • wallet.accept_sponge_card_terms(...)
  • wallet.create_sponge_card(...)
  • wallet.get_sponge_card_details()
  • wallet.fund_sponge_card(...)
  • wallet.withdraw_sponge_card(...)
  • wallet.add_link_payment_method(...)
  • wallet.create_link_payment_credential(...)

Links

Tests

From a clone of the repository:

cd mobwallet/python/paysponge
uv run python -m unittest discover -s tests

Project details


Download files

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

Source Distribution

paysponge-0.1.5.tar.gz (114.7 kB view details)

Uploaded Source

Built Distribution

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

paysponge-0.1.5-py3-none-any.whl (286.4 kB view details)

Uploaded Python 3

File details

Details for the file paysponge-0.1.5.tar.gz.

File metadata

  • Download URL: paysponge-0.1.5.tar.gz
  • Upload date:
  • Size: 114.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for paysponge-0.1.5.tar.gz
Algorithm Hash digest
SHA256 df371308f026895d7398cae452177655f182915aefa1a74c845536d61e04d5f3
MD5 59ac9ff4cc8d3f5774fec7f7819a5007
BLAKE2b-256 44c2fc40aff547eba1d8187d5bb0eefba61453d19d3d955ac834d98927351bec

See more details on using hashes here.

Provenance

The following attestation bundles were made for paysponge-0.1.5.tar.gz:

Publisher: sdk-publish.yml on paysponge/sponge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file paysponge-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: paysponge-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 286.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for paysponge-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 931b85ebc1d08f66393342c7a233bb15a0bcc4977ed2feaf63bd77f65a815902
MD5 5951afb1fbce5c7b9eb91ad6caa745f5
BLAKE2b-256 5af83349dc9324cdca7bce462d71a92aeaa41c758be29fa491e7af4f3164d1ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for paysponge-0.1.5-py3-none-any.whl:

Publisher: sdk-publish.yml on paysponge/sponge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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