# From an empty account to a request that exits where you chose.

Five steps, no SDK to install, any HTTP client. Ten minutes if you already hold some crypto.


## The five steps

1. **Create an account and fund the wallet** Sign up with an email address, then top up from $20 in any listed coin (BTC, ETH, USDT, USDC, LTC, XMR, SOL, TRX, DOGE). The balance is credited when the transaction confirms on its network, usually within minutes, and it never expires.
2. **Copy your gateway credentials** The dashboard shows one username and one password for the shared gateways (residential and mobile). Dedicated ISP, datacenter and mobile-device orders come with their own `ip:port:user:pass` lines instead.
3. **Pick the endpoint for the job** Shared networks are one hostname each; you choose the location from the username, not from the hostname. Dedicated products are their own `ip:port`.

   Network | Endpoint | HTTP(S) | SOCKS5 | Residential | res.hodlproxy.com | 9000 | 9001 | Mobile, rotating | mob.hodlproxy.com | 9000 | 9001 | ISP, datacenter, mobile device | the IP from your list | 8000 | 8001 |
4. **Send the first request** The example asks an IP-echo service what address it sees. `-cc-us` in the username asks for a United States exit; run it twice and you get two different households.

   cURLPythonNode.jsPHPGocURLCopycurl -x http://USER-cc-us:PASS@res.hodlproxy.com:9000 https://api.ipify.orgPythonCopyimport requests proxy = &quot;http://USER-cc-us:PASS@res.hodlproxy.com:9000&quot; r = requests.get(&quot;https://api.ipify.org&quot;, proxies={&quot;http&quot;: proxy, &quot;https&quot;: proxy}, timeout=30) print(r.text)Node.jsCopyimport { fetch, ProxyAgent } from &quot;undici&quot;; const dispatcher = new ProxyAgent(&quot;http://USER-cc-us:PASS@res.hodlproxy.com:9000&quot;); const res = await fetch(&quot;https://api.ipify.org&quot;, { dispatcher }); console.log(await res.text());PHPCopy$ch = curl_init(&quot;https://api.ipify.org&quot;); curl_setopt_array($ch, [ CURLOPT_PROXY =&gt; &quot;http://res.hodlproxy.com:9000&quot;, CURLOPT_PROXYUSERPWD =&gt; &quot;USER-cc-us:PASS&quot;, CURLOPT_RETURNTRANSFER =&gt; true, ]); echo curl_exec($ch);GoCopyproxyURL, _ := url.Parse(&quot;http://USER-cc-us:PASS@res.hodlproxy.com:9000&quot;) client := &amp;http.Client{Transport: &amp;http.Transport{Proxy: http.ProxyURL(proxyURL)}} resp, err := client.Get(&quot;https://api.ipify.org&quot;)
5. **Target more precisely and hold an IP** Everything is a `-key-value` pair appended to the username: `-city-berlin` inside `-cc-de` for one city, `-sid-a1b2c3` to keep the same IP across requests, `-ttl-30m` to say for how long. The [Targeting & sessions](https://hodlproxy.com/docs/username-parameters) page lists every parameter.

   ```
   # One Berlin household, held for 30 minutes across requests
   curl -x http://USER-cc-de-city-berlin-sid-a1b2c3-ttl-30m:PASS@res.hodlproxy.com:9000 \
        https://api.ipify.org
   ```

> Tip: Verify what you got: paste the IP the echo service returned into any public geolocation database. It should resolve to the country you asked for, on a consumer ISP.


## Where to go next

- [Authentication](https://hodlproxy.com/docs/authentication): Username-password or IP whitelist, and how parameters travel with each.
- [Targeting & sessions](https://hodlproxy.com/docs/username-parameters): Country, state, city, ASN, sticky sessions and their lifetime.
- [Code examples](https://hodlproxy.com/docs/examples): Python, Node.js, PHP, Go, Java, C#, Playwright, Puppeteer, Scrapy and more.
- [Errors & troubleshooting](https://hodlproxy.com/docs/errors): What each status code from the gateway means and what to change.


Source: https://hodlproxy.com/docs/quickstart
