import os, asyncio
from solders.keypair import Keypair
from x402 import x402Client, prefer_network
from x402.http.clients.httpx import x402HttpxClient
from x402.mechanisms.svm import KeypairSigner
from x402.mechanisms.svm.exact import ExactSvmScheme
async def main():
keypair = Keypair.from_base58_string(os.environ["SOLANA_SIGNER_KEY"])
signer = KeypairSigner(keypair)
NETWORK = "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"
x402 = x402Client()
x402.register(NETWORK, ExactSvmScheme(signer=signer))
x402.register_policy(prefer_network(NETWORK))
async with x402HttpxClient(x402, timeout=120.0) as client:
resp = await client.post(
"https://api.markdown2pdf.ai/markdown",
json={
"data": {"text_body": "# Hello from X402"},
"options": {"document_name": "hello.pdf"},
},
)
resp.raise_for_status()
print("Paid tx proof:", resp.headers.get("payment-response"))
print("Poll:", resp.json()["path"])
asyncio.run(main())