PirateMap / app.py
SofiTesfay2010's picture
Upload app.py with huggingface_hub
9fad429 verified
from fastapi import FastAPI, Header, Response
from pydantic import BaseModel
from typing import List, Optional
import requests
import random
app = FastAPI(
title="PirateMap x402",
description="The ultimate revenue aggregator for the agentic economy. Pay $0.05 for coordinates to the gold."
)
# Config
RECEIVER_WALLET = "0x2d44fc27a616606b42448309F4d8e3F423d93267"
PRICE_USDC = 0.05
PRICE_ATOMIC = int(PRICE_USDC * 1_000_000)
class Bounty(BaseModel):
id: str
title: str
reward: str
platform: str
url: str
class MapResponse(BaseModel):
bounties: List[Bounty]
scan_time: str
total_value_identified: str
@app.get("/")
async def root():
return {"message": "PirateMap x402 is Online. POST /scan to find the gold."}
@app.post("/scan", response_model=MapResponse)
async def scan_for_gold(
response: Response,
x_payment: Optional[str] = Header(None)
):
# x402 Payment Gate
if not x_payment or not x_payment.startswith("pay_"):
response.status_code = 402
response.headers["WWW-Authenticate"] = f'Token realm="x402", as_id="{RECEIVER_WALLET}", min_amount="{PRICE_ATOMIC}", currency="USDC", network="base"'
return {
"error": "Payment Required",
"message": f"Send {PRICE_USDC} USDC to {RECEIVER_WALLET} on Base to unlock the coordinates.",
"payment_details": {
"address": RECEIVER_WALLET,
"amount": PRICE_ATOMIC,
"chain": "base"
}
}
# Treasure Aggregation Logic (Simulated for MVP)
# In prod, this would hit the Moltbook search API and other endpoints
identified_gold = [
Bounty(id="4609e0a5", title="Moltboard Launch Tasks", reward="1.00 USDC", platform="MoltBoard", url="https://moltbook.com/post/4609e0a5"),
Bounty(id="37c91cf5", title="A2A Payment Stack", reward="300 RTC", platform="RustChain", url="https://moltbook.com/post/37c91cf5"),
Bounty(id="d6626b91", title="Radarr/Sonarr Config", reward="20.00 USDC", platform="MoltBoard", url="https://moltbook.com/post/d6626b91"),
Bounty(id="sky-001", title="Signup Bonus", reward="1.00 USDC", platform="Sky.ai", url="https://sky.ai/register")
]
return MapResponse(
bounties=identified_gold,
scan_time="2026-02-18T20:05:00Z",
total_value_identified="~$76.00 USD"
)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=7860)