Skip to content
For crypto and DeFi apps

Market data in your dApp, without exposing paid API keys

dApp frontends call price feeds, token metadata and block explorer APIs from the browser. ProxifyEdge handles CORS and keeps the paid keys those calls need on the server.

Browser console, calling the API directly

Access to fetch at 'https://api.example-prices.com/v1/price?ids=ethereum' from origin 'https://app.your-dapp.example' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

The same request through ProxifyEdge
HTTP/2 200
access-control-allow-origin: https://app.your-dapp.example
x-proxify-ratelimit-remaining: 9999

A dApp has no backend, but its data APIs want one

Decentralised apps often ship as static frontends. The market data and explorer APIs they depend on either refuse browser calls or need a paid key that would be public in your bundle.

Writing a server only to forward these requests undoes the simplicity of a static dApp.

How ProxifyEdge helps

Configured from the dashboard, enforced on every request.

  • Paid keys stay server-side

    Store your data provider key as a secret and reference it as {{secret.NAME}}. It is inserted on the server and never ships to the browser.

  • Locked to your dApp

    A live key only answers your dApp's origins, so other sites can't spend your data quota from their pages.

  • Batch requests

    Fetch prices, metadata and explorer data from different sources in one round trip.

  • Quotas and rate limits

    Set per-key ceilings that sit inside your data provider's own limits.

  • Never touches wallets

    ProxifyEdge forwards HTTP requests only. It never sees private keys or signs transactions; those stay in the user's wallet.

Example

Prices without a public key in your bundle

  • Bind the secret to your data provider's host on the Secrets page.
  • Use the same pattern for token metadata and block explorer APIs.
  • Responses come back as the provider sent them; ProxifyEdge adds the CORS headers.
Proxy reference
prices.ts
const target = 'https://api.example-prices.com/v1/price?ids=ethereum,bitcoin';

const res = await fetch(`https://api.proxifyedge.com/proxy?url=${encodeURIComponent(target)}`, {
  headers: {
    'X-API-Key': 'pk_your_public_key',
    // Your paid data-provider key, inserted on the server.
    'X-Proxify-Upstream-Authorization': 'Bearer {{secret.PRICES_API_KEY}}',
  },
});
const prices = await res.json();

Questions

Something else? Get in touch or read the docs.

Does ProxifyEdge ever see my wallet or private keys?

No. ProxifyEdge only forwards HTTP requests to the data APIs you call. Signing happens in the user's wallet and never passes through ProxifyEdge.

Is ProxifyEdge a market data provider?

No. You bring your own data provider and account. ProxifyEdge forwards the requests and keeps that provider’s key off the client.

Can I use ProxifyEdge to reach an exchange or API that is not available in my region?

No. Respect each exchange's and data provider's regional restrictions and terms. ProxifyEdge isn't a way around them.

How do I keep usage within my provider’s limits?

Set a rate limit and monthly quota on your ProxifyEdge key that sit below the provider's limits, and read the X-Proxify-RateLimit headers in your app.

ProxifyEdge forwards requests; it does not provide market data or financial advice. Follow each data provider's terms and the regional restrictions that apply to you.

Make the request your browser was blocking.

Create an account, lock your key to your site, and send your first request through ProxifyEdge.

Are you sure?