> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zbdpay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ZBD Documentation

> Global Payment Service Provider for Gaming and Interactive Entertainment

export const Footer = () => {
  return <div className="max-w-md p-2 pt-8 space-y-0">
      <div className="flex items-center gap-3">
        <p className="text-sm mb-0">
          Need help?{" "}
          <a href="/support" className="text-[#1659e7]">
            Contact Support
          </a>
          .
        </p>
      </div>

      <div className="flex items-center gap-3">
        <p className="text-sm mb-0">
          Questions?{" "}
          <a href="https://zbdpay.com/contact" target="_blank" className="text-[#1659e7]">
            Contact Sales
          </a>
          .
        </p>
      </div>

      <div className="flex items-center gap-3">
        <p className="text-sm mb-0">
          LLM?{" "}
          <a href="/llms.txt" className="text-[#1659e7]">
            Read llms.txt
          </a>
          .
        </p>
      </div>
    </div>;
};

export const BtcEurRate = () => {
  const [state, setState] = useState({
    status: "loading",
    rates: null,
    updatedAt: null,
    error: null
  });
  const [now, setNow] = useState(Date.now());
  useEffect(() => {
    let isMounted = true;
    const loadRates = async ({preserveRate} = {
      preserveRate: false
    }) => {
      try {
        const response = await fetch("https://api.coinbase.com/v2/exchange-rates?currency=BTC");
        if (!response.ok) {
          throw new Error(`Coinbase request failed with ${response.status}`);
        }
        const payload = await response.json();
        const usdRate = payload?.data?.rates?.USD;
        const eurRate = payload?.data?.rates?.EUR;
        const parsedRates = {
          USD: Number(usdRate),
          EUR: Number(eurRate)
        };
        if (!Number.isFinite(parsedRates.USD) || !Number.isFinite(parsedRates.EUR)) {
          throw new Error("Coinbase response did not include valid USD and EUR rates");
        }
        if (!isMounted) {
          return;
        }
        setState({
          status: "ready",
          rates: parsedRates,
          updatedAt: new Date(),
          error: null
        });
      } catch (error) {
        if (!isMounted) {
          return;
        }
        setState(currentState => ({
          status: preserveRate && currentState.rates ? "stale" : "error",
          rates: preserveRate ? currentState.rates : null,
          updatedAt: preserveRate ? currentState.updatedAt : null,
          error: error instanceof Error ? error.message : "Unable to load BTC/USD and BTC/EUR rates"
        }));
      }
    };
    loadRates();
    const intervalId = setInterval(() => {
      loadRates({
        preserveRate: true
      });
    }, 5 * 60 * 1000);
    return () => {
      isMounted = false;
      clearInterval(intervalId);
    };
  }, []);
  useEffect(() => {
    const timerId = setInterval(() => {
      setNow(Date.now());
    }, 60 * 1000);
    return () => {
      clearInterval(timerId);
    };
  }, []);
  const formattedRates = state.rates ? [{
    label: "BTC/USD",
    description: "1 BTC quoted in USD",
    value: new Intl.NumberFormat("en-US", {
      style: "currency",
      currency: "USD",
      maximumFractionDigits: 2
    }).format(state.rates.USD)
  }, {
    label: "BTC/EUR",
    description: "1 BTC quoted in EUR",
    value: new Intl.NumberFormat("en-IE", {
      style: "currency",
      currency: "EUR",
      maximumFractionDigits: 2
    }).format(state.rates.EUR)
  }] : [];
  const minutesSinceUpdate = state.updatedAt ? Math.max(0, Math.floor((now - state.updatedAt.getTime()) / (60 * 1000))) : null;
  return <div className="not-prose my-6 rounded-2xl border border-zinc-950/10 bg-gradient-to-br from-white to-zinc-50 p-5 shadow-sm dark:border-white/10 dark:from-zinc-900 dark:to-zinc-950">
      <div className="flex flex-col gap-5 md:flex-row md:items-start md:justify-between">
        <div className="space-y-5">
          <p className="text-xs font-semibold uppercase tracking-[0.2em] text-zinc-500 dark:text-zinc-400">
            Price Reference
          </p>
          <div aria-live="polite" className="space-y-5">
            {formattedRates.length > 0 ? formattedRates.map(rate => <div key={rate.label} className="space-y-2">
                  <p className="text-[11px] font-semibold uppercase tracking-[0.16em] text-zinc-500 dark:text-zinc-400">
                    {rate.label}
                  </p>
                  <div className="flex flex-col gap-1 sm:flex-row sm:items-baseline sm:gap-3">
                    <p className="text-2xl font-semibold leading-none text-zinc-950 dark:text-white md:text-[2rem]">
                      {rate.value}
                    </p>
                    <p className="text-sm leading-tight text-zinc-600 dark:text-zinc-300">
                      {rate.description}
                    </p>
                  </div>
                </div>) : <>
                <div className="space-y-2">
                  <p className="text-[11px] font-semibold uppercase tracking-[0.16em] text-zinc-500 dark:text-zinc-400">
                    BTC/USD
                  </p>
                  <div className="flex flex-col gap-1 sm:flex-row sm:items-baseline sm:gap-3">
                    <p className="text-2xl font-semibold leading-none text-zinc-500 dark:text-zinc-400 md:text-[2rem]">
                      Loading rate...
                    </p>
                    <p className="text-sm leading-tight text-zinc-600 dark:text-zinc-300">
                      1 BTC quoted in USD
                    </p>
                  </div>
                </div>
                <div className="space-y-2">
                  <p className="text-[11px] font-semibold uppercase tracking-[0.16em] text-zinc-500 dark:text-zinc-400">
                    BTC/EUR
                  </p>
                  <div className="flex flex-col gap-1 sm:flex-row sm:items-baseline sm:gap-3">
                    <p className="text-2xl font-semibold leading-none text-zinc-500 dark:text-zinc-400 md:text-[2rem]">
                      Loading rate...
                    </p>
                    <p className="text-sm leading-tight text-zinc-600 dark:text-zinc-300">
                      1 BTC quoted in EUR
                    </p>
                  </div>
                </div>
              </>}
          </div>
        </div>

        <div className="text-sm text-zinc-600 dark:text-zinc-300 md:text-right">
          <p>{minutesSinceUpdate !== null ? `last updated: ${minutesSinceUpdate} min ago` : "Waiting for first update"}</p>
        </div>
      </div>

      {state.status === "stale" ? <p className="mt-4 rounded-xl border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-800 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-200">
          Live refresh failed. Showing the last successfully loaded Coinbase rates.
        </p> : null}

      {state.status === "error" ? <p className="mt-4 rounded-xl border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-200">
          Unable to load the Coinbase BTC/USD and BTC/EUR rates right now. Try refreshing the page.
        </p> : null}
    </div>;
};

The global payment infrastructure built for the speed and scale of gaming. Process thousands of transactions per second, enable true micropayments, and unlock new monetization models – all through a single API.

<CardGroup cols={3}>
  <Card title="Sub-second Payments" icon="bolt">
    Lightning-fast global settlements that keep pace with gameplay
  </Card>

  <Card title="True Micropayments" icon="coins">
    Finally make 1 cent transactions profitable with fees under \$0.0001
  </Card>

  <Card title="Global Coverage" icon="globe">
    One API for global payments. No banking relationships needed.
  </Card>
</CardGroup>

## Why Developers Choose ZBD

<Tabs>
  <Tab title="For Gaming Studios">
    **Built for Gaming Scale**

    * Handle millions of transactions for players
    * Microtransactions that actually make economical sense

    **New Monetization Models**

    * Pay-per-minute gameplay
    * Real-money tournaments
    * Cross-game economies
    * Player-to-player trading
  </Tab>

  <Tab title="For App Developers">
    **Modern Payment Infrastructure**

    * Instant global settlements
    * Multi-currency support (USD, EUR, BTC)
    * Developer-first APIs

    **Use Cases**

    * Streaming payments
    * Creator economy
    * International payouts
  </Tab>

  <Tab title="For Product Managers">
    **Increase Revenue**

    * Higher conversion with lower payment friction
    * Unlock previously unprofitable price points
    * Expand to Tier 1 global markets compliantly instantly

    **Reduce Costs**

    * 90% lower fees than cards for small payments
    * Eliminate chargeback losses
  </Tab>
</Tabs>

## Products

### 🎮 ZBD Earn

Drive user engagement, boost retention, and unlock new revenue streams by offering real-money rewards and incentives across your experiences.

<CardGroup cols={2}>
  <Card title="ZBD Earn SDK" horizontal icon="layer-group" href="/earn/sdk">
    <p>
      Unity SDK for adding real-money rewards to your games. Drag, drop, monetize.
    </p>
  </Card>

  <Card title="Earn API" horizontal icon="terminal" href="/earn/api">
    <p>
      Programmatically distribute rewards. Perfect for tournaments and achievements.
    </p>
  </Card>

  <Card title="Login with ZBD" horizontal icon="shield-check" href="/earn/oauth2">
    <p>
      OAuth2 authentication with built-in wallet creation and KYC.
    </p>
  </Card>

  <Card title="ZBD App" horizontal icon="apple" href="/earn/app">
    <p>
      ZBD app for players to manage and cash out rewards.
    </p>
  </Card>
</CardGroup>

### 💳 Payments

Enable instant global payments in your apps and games with multi-currency support for Bitcoin, Lightning Network, USD, EUR and Stablecoins. We handle the complexity of payments infrastructure so you can focus on building amazing experiences.

<CardGroup cols={2}>
  <Card title="ZBD Ramp" horizontal icon="circle-dollar-to-slot" href="/payments/ramp">
    <p>
      Let users buy Bitcoin directly in your app. First widget with Lightning Address support.
    </p>
  </Card>

  <Card title="Payments API" horizontal icon="code" href="/payments/api">
    <p>
      Send and receive instant payments globally. Lightning, on-chain, and fiat settlements.
    </p>
  </Card>

  <Card title="TypeScript SDK" horizontal icon="layer-group" href="/payments/sdk/typescript">
    <p>
      Production-ready SDK with TypeScript examples and starter templates.
    </p>
  </Card>

  <Card title="MCP Server" horizontal icon="robot" href="/payments/mcp">
    <p>
      Enable AI agents and LLMs to process payments autonomously.
    </p>
  </Card>
</CardGroup>

Getting started with ZBD Payments is as simple as:

<CodeGroup>
  ```bash TypeScript / Node.js theme={null}
  pnpm install @zbdpay/payments-sdk
  ```

  ```bash Rust theme={null}
  cargo add zebedee-rust
  ```

  ```bash HTTP theme={null}
  curl -X GET https://api.zbdpay.com/v0/wallet \
    -H "apikey: YOUR_API_KEY"
  ```
</CodeGroup>

## Quick Start Guides

<Steps>
  <Step title="Get Your API Keys">
    [Schedule a 15-minute call](https://zbd.one/sales) with our team to discuss your use case and get access
  </Step>

  <Step title="Choose Your Integration">
    Pick the products that fit your needs - Payments, Rewards, or both
  </Step>

  <Step title="Follow Our Guides">
    Use our comprehensive documentation and SDKs to integrate in hours, not weeks
  </Step>

  <Step title="Launch & Scale">
    Go live with production access and our team's support
  </Step>
</Steps>

### Start with These Guides

<CardGroup cols={3}>
  <Card title="5-Minute Quickstart" icon="rocket" href="/get-started/quickstart">
    Send your first payment in minutes
  </Card>

  <Card title="Ramp Integration" icon="circle-dollar" href="/payments/ramp/quickstart">
    Add fiat-to-crypto in your app
  </Card>

  <Card title="Unity Rewards" icon="gamepad" href="/earn/sdk/integration">
    Monetize your Unity game
  </Card>
</CardGroup>

## Developer Resources

<CardGroup cols={2}>
  <Card title="API Reference" icon="code" href="/payments/api">
    Complete API documentation with examples
  </Card>

  <Card title="SDKs & Libraries" icon="cube" href="/payments/sdk">
    TypeScript, Go, Rust, C# and more
  </Card>
</CardGroup>

## Ready to Transform Your Payment Experience?

<Card title="Get Started Today" icon="calendar" href="https://zbd.one/sales">
  **Schedule a Demo** - Talk to our team about your use case and get your API keys. Most developers are up and running within 24 hours.
</Card>

<BtcEurRate />

<Footer />
