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.
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.
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.
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.