Embed on your site
Add pay-per-second video to any website. No backend, no API keys: payments go straight from your viewers to the creator on Arc.
The one-line version
Paste this where you want the catalog to appear.
<script src="https://ppv-studio.vercel.app/embed.js" data-ppw="catalog" async></script>A single video
Drop one video into an article, course page or landing page. Viewers connect a wallet and pay per second right there.
<div data-ppw="video" data-video="0xYOUR_VIDEO_ID"></div>
<script src="https://ppv-studio.vercel.app/embed.js" async></script>A catalog
Your whole library, or one category. Filter by creator to show only your own videos.
<div data-ppw="catalog" data-category="tutorials" data-creator="0xYOUR_WALLET"></div>
<script src="https://ppv-studio.vercel.app/embed.js" async></script>Earn as a platform
Add your wallet as the referrer and earn 5% of what viewers you bring in spend, paid from the creator's share every hour. Your wallet must have watched that creator's content once.
<div data-ppw="catalog" data-ref="0xYOUR_WALLET"></div>
<script src="https://ppv-studio.vercel.app/embed.js" async></script>Uploads
Let your users publish to PayPerWatch from your site. They choose the category and set their own price.
<div data-ppw="upload"></div>
<script src="https://ppv-studio.vercel.app/embed.js" async></script>Plain iframe
No script needed. Use this when your platform only accepts iframes.
<iframe src="https://ppv-studio.vercel.app/embed/watch/0xYOUR_VIDEO_ID"
style="width:100%;height:640px;border:0" allow="fullscreen; clipboard-write" allowfullscreen></iframe>How it works
- The embed runs in an iframe served from https://ppv-studio.vercel.app, so your page never handles keys or funds.
- Viewers connect their own wallet inside the embed. Billing, receipts and hourly settlement work exactly as on PayPerWatch.
- The iframe grows and shrinks to fit its content automatically.
- Find a video's ID in the creator dashboard, where each video has a ready-to-copy embed code.
- Signing in to upload from inside an embed needs third-party cookies over https. If a browser blocks them, the embed offers to open in a new tab.
For AI agents
Give your agent one link. It asks a question, pays a few cents in USDC over x402 from the wallet it already has, and gets the full timestamped transcript of the video that answers it. No account and no API key. The creator is paid for every answer, just like for a viewer.
https://ppv-studio.vercel.app/api/agent/ask?q=how+does+private+credit+work+onchainTell your agent
Paste this into your agent's instructions. Agents that read https://ppv-studio.vercel.app/llms.txt can also set themselves up from the site address alone.
You can look things up on PayPerWatch, a library of creators' videos.
For questions it might cover, call https://ppv-studio.vercel.app/api/agent/ask?q=<the question>
with your x402 wallet. It answers 402 with a price of a few cents; pay it.
Answer from answer.moments and answer.transcript, and link answer.video.watchUrl.
A 404 means nothing matched and nothing was charged. Details: https://ppv-studio.vercel.app/llms.txtPaying
The first request returns 402 Payment Required with the price: what a person pays to watch the whole matching video. Any x402 client with a Circle Gateway USDC balance pays and retries automatically, on any chain the 402 lists, such as Base, Ethereum, Arbitrum or Arc. A Circle agent wallet works too (circle services pay). If nothing matches, you get a 404 and pay nothing.
import { GatewayClient } from "@circle-fin/x402-batching/client";
// Any chain where your agent already holds a Circle Gateway balance.
const agent = new GatewayClient({ chain: "base", privateKey: AGENT_KEY });
const { data } = await agent.pay("https://ppv-studio.vercel.app/api/agent/ask?q=" + encodeURIComponent(question));
console.log(data.answer.moments, data.answer.video.watchUrl);Live preview
This is the catalog embed, exactly as it appears on another site.