Skip to content

feat: add Pay-to-Pin as 5th IPFS pinning service - #82

Open
IcanBENCHurCAT wants to merge 1 commit into
aquiladev:masterfrom
IcanBENCHurCAT:feat/paytopin-from-upstream
Open

feat: add Pay-to-Pin as 5th IPFS pinning service#82
IcanBENCHurCAT wants to merge 1 commit into
aquiladev:masterfrom
IcanBENCHurCAT:feat/paytopin-from-upstream

Conversation

@IcanBENCHurCAT

Copy link
Copy Markdown

This PR adds IPFS Pay-to-Pin as an optional pinning service alongside the existing Pinata, Infura, Filebase, and direct upload options.

Key Benefits:

  • Pay-as-you-go — no monthly subscriptions or committed spend
  • Native USDC — payments in microUSDC on Algorand (sub-cent fees, instant settlement)
  • x402 machine-readable payments — perfect for AI agents and programmatic workflows
  • Open-source SDK — zero vendor lock-in
  • Complementary — adds Pay-to-Pin as an additional option, no changes to existing functionality

Usage: Users simply add paytopin as a service: option. The Pay-to-Pin gateway handles x402 payment automatically.

Changes:

  • pinners/paytopin.js — new Pay-to-Pin pinner (146 lines)
  • pinners/index.js — export paytopin
  • action.yaml — add paytopin service option
  • README.md — document new service
  • runner.js — wire up paytopin
  • uploader.test.js — test coverage

- Add pinners/paytopin.js with x402 microUSDC payment support
- Integrate ipfs-pay-to-pin-client SDK for automated payment handling
- Add paytopin inputs to action.yaml (mnemonic, gatewayUrl, network, maxPriceUsdc)
- Update runner.js to read new inputs
- Add ipfs-pay-to-pin-client to package.json dependencies
- Update README.md with Pay-to-Pin examples and documentation
- Add unit tests for paytopin service validation

Pay-to-Pin enables pay-as-you-go IPFS storage via Algorand x402 payments,
no monthly subscriptions required. Each pin is retained for 365 days.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants