{"id":329,"date":"2026-04-23T01:07:06","date_gmt":"2026-04-23T01:07:06","guid":{"rendered":"https:\/\/investingora.com\/?page_id=329"},"modified":"2026-04-23T01:24:53","modified_gmt":"2026-04-23T01:24:53","slug":"crypto-converter","status":"publish","type":"page","link":"https:\/\/investingora.com\/pt\/crypto-converter\/","title":{"rendered":"CRYPTO CONVERTER"},"content":{"rendered":"\n<div style=\"background:#f2f2f2;padding:20px;font-family:Arial\">\n\n<h2 style=\"margin-bottom:15px\">Crypto Converter<\/h2>\n\n<div style=\"background:#fff;padding:20px;border:1px solid #ccc\">\n\n<div style=\"display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap\">\n\n<!-- LEFT -->\n<div style=\"flex:1;min-width:250px\">\n\n<div style=\"border:1px solid #ccc;padding:10px;background:#fafafa\">\n\n<div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px\">\n<select id=\"from\" style=\"flex:1;padding:5px\"><\/select>\n<\/div>\n\n<input id=\"amount\" type=\"number\" value=\"1\"\nstyle=\"width:100%;padding:10px;font-size:18px;border:1px solid #ccc\">\n\n<\/div>\n\n<p style=\"font-size:12px;color:#666;margin-top:5px\" id=\"rate1\"><\/p>\n\n<\/div>\n\n<!-- CENTER -->\n<div style=\"display:flex;align-items:center;justify-content:center\">\n<button onclick=\"swap()\" style=\"padding:10px;border:none;background:#ddd;cursor:pointer\">\n\u21c4\n<\/button>\n<\/div>\n\n<!-- RIGHT -->\n<div style=\"flex:1;min-width:250px\">\n\n<div style=\"border:1px solid #ccc;padding:10px;background:#fafafa\">\n\n<div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px\">\n<select id=\"to\" style=\"flex:1;padding:5px\"><\/select>\n<\/div>\n\n<input id=\"result\" type=\"number\"\nstyle=\"width:100%;padding:10px;font-size:18px;border:1px solid #ccc\">\n\n<\/div>\n\n<p style=\"font-size:12px;color:#666;margin-top:5px\" id=\"rate2\"><\/p>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<script>\n\nlet prices = {};\nlet coins = {\n  bitcoin: \"BTC\",\n  ethereum: \"ETH\",\n  tether: \"USDT\",\n  binancecoin: \"BNB\",\n  solana: \"SOL\",\n  ripple: \"XRP\",\n  cardano: \"ADA\",\n  dogecoin: \"DOGE\",\n  toncoin: \"TON\",\n  tron: \"TRX\"\n};\n\nlet fiats = [\"usd\",\"brl\",\"eur\"];\n\nasync function loadPrices(){\n\n  const ids = Object.keys(coins).join(\",\");\n  const res = await fetch(`https:\/\/api.coingecko.com\/api\/v3\/simple\/price?ids=${ids}&vs_currencies=usd,brl,eur`);\n  const data = await res.json();\n\n  prices = data;\n\n  const from = document.getElementById(\"from\");\n  const to = document.getElementById(\"to\");\n\n  from.innerHTML = \"\";\n  to.innerHTML = \"\";\n\n  \/\/ FIAT\n  fiats.forEach(f=>{\n    from.innerHTML += `<option value=\"${f}\">${f.toUpperCase()}<\/option>`;\n    to.innerHTML += `<option value=\"${f}\">${f.toUpperCase()}<\/option>`;\n  });\n\n  \/\/ CRYPTO\n  Object.keys(coins).forEach(c=>{\n    from.innerHTML += `<option value=\"${c}\">${coins[c]}<\/option>`;\n    to.innerHTML += `<option value=\"${c}\">${coins[c]}<\/option>`;\n  });\n\n  from.value = \"usd\";\n  to.value = \"bitcoin\";\n\n  update();\n}\n\nfunction isCrypto(v){\n  return prices[v] !== undefined;\n}\n\nfunction update(){\n\n  const amount = parseFloat(document.getElementById(\"amount\").value) || 0;\n  const from = document.getElementById(\"from\").value;\n  const to = document.getElementById(\"to\").value;\n\n  let usdValue;\n\n  \/\/ FROM \u2192 USD\n  if(isCrypto(from)){\n    usdValue = amount * prices[from].usd;\n  } else {\n    if(from === \"usd\") usdValue = amount;\n    else usdValue = amount \/ prices[\"bitcoin\"][from] * prices[\"bitcoin\"].usd;\n  }\n\n  let result;\n\n  \/\/ USD \u2192 TO\n  if(isCrypto(to)){\n    result = usdValue \/ prices[to].usd;\n  } else {\n    if(to === \"usd\") result = usdValue;\n    else result = usdValue * (prices[\"bitcoin\"][to] \/ prices[\"bitcoin\"].usd);\n  }\n\n  document.getElementById(\"result\").value = result.toFixed(6);\n\n  document.getElementById(\"rate1\").innerText = `${from.toUpperCase()} \u2192 ${to.toUpperCase()}`;\n  document.getElementById(\"rate2\").innerText = `Atualizado via CoinGecko`;\n}\n\nfunction swap(){\n  const from = document.getElementById(\"from\");\n  const to = document.getElementById(\"to\");\n\n  let temp = from.value;\n  from.value = to.value;\n  to.value = temp;\n\n  update();\n}\n\n\/\/ eventos\ndocument.addEventListener(\"input\", update);\ndocument.getElementById(\"from\").addEventListener(\"change\", update);\ndocument.getElementById(\"to\").addEventListener(\"change\", update);\n\n\/\/ init\nloadPrices();\nsetInterval(loadPrices,60000);\n\n<\/script>\n\n\n\n<div style=\"background:#f2f2f2;padding:20px;font-family:Arial\">\n\n<h2>Crypto Converter PRO<\/h2>\n\n<div style=\"background:#fff;padding:20px;border:1px solid #ccc\">\n\n<div style=\"display:flex;gap:20px;flex-wrap:wrap\">\n\n<!-- FROM -->\n<div style=\"flex:1;min-width:250px\">\n\n<input id=\"searchFrom\" placeholder=\"Buscar moeda...\" style=\"width:100%;padding:8px;margin-bottom:5px\">\n\n<div id=\"fromList\" style=\"max-height:150px;overflow:auto;border:1px solid #ccc\"><\/div>\n\n<input id=\"amount\" type=\"number\" value=\"1\"\nstyle=\"width:100%;padding:10px;font-size:18px;margin-top:10px\">\n\n<\/div>\n\n<!-- TO -->\n<div style=\"flex:1;min-width:250px\">\n\n<input id=\"searchTo\" placeholder=\"Buscar moeda...\" style=\"width:100%;padding:8px;margin-bottom:5px\">\n\n<div id=\"toList\" style=\"max-height:150px;overflow:auto;border:1px solid #ccc\"><\/div>\n\n<input id=\"result\" type=\"number\"\nstyle=\"width:100%;padding:10px;font-size:18px;margin-top:10px\">\n\n<\/div>\n\n<\/div>\n\n<h3 style=\"margin-top:20px\">Hist\u00f3rico<\/h3>\n<div id=\"history\"><\/div>\n\n<\/div>\n<\/div>\n\n<script>\n\nlet coins = [];\nlet selectedFrom = null;\nlet selectedTo = null;\n\nasync function loadCoins(){\n\n  const res = await fetch(\"https:\/\/api.coingecko.com\/api\/v3\/coins\/markets?vs_currency=usd&order=market_cap_desc&per_page=150&page=1\");\n  const data = await res.json();\n\n  coins = data;\n\n  renderList(\"fromList\", coins, selectFrom);\n  renderList(\"toList\", coins, selectTo);\n\n  \/\/ default\n  selectedFrom = coins[0];\n  selectedTo = coins[1];\n\n  convertFromURL();\n}\n\nfunction renderList(id, list, clickFn){\n\n  const el = document.getElementById(id);\n  el.innerHTML = \"\";\n\n  list.forEach(c=>{\n    el.innerHTML += `\n      <div onclick='${clickFn.name}(\"${c.id}\")'\n        style=\"display:flex;align-items:center;gap:8px;padding:5px;cursor:pointer\">\n        <img decoding=\"async\" src=\"${c.image}\" width=\"20\">\n        ${c.symbol.toUpperCase()}\n      <\/div>\n    `;\n  });\n}\n\nfunction selectFrom(id){\n  selectedFrom = coins.find(c=>c.id===id);\n  convert();\n}\n\nfunction selectTo(id){\n  selectedTo = coins.find(c=>c.id===id);\n  convert();\n}\n\nfunction convert(){\n\n  if(!selectedFrom || !selectedTo) return;\n\n  const amount = parseFloat(document.getElementById(\"amount\").value) || 0;\n\n  const usd = amount * selectedFrom.current_price;\n  const result = usd \/ selectedTo.current_price;\n\n  document.getElementById(\"result\").value = result.toFixed(6);\n\n  saveHistory(amount, selectedFrom.symbol, selectedTo.symbol, result);\n  updateURL();\n}\n\nfunction saveHistory(a, f, t, r){\n\n  let h = JSON.parse(localStorage.getItem(\"history\")||\"[]\");\n\n  h.unshift(`${a} ${f.toUpperCase()} \u2192 ${r.toFixed(4)} ${t.toUpperCase()}`);\n\n  h = h.slice(0,5);\n\n  localStorage.setItem(\"history\", JSON.stringify(h));\n\n  document.getElementById(\"history\").innerHTML = h.map(i=>`<div>${i}<\/div>`).join(\"\");\n}\n\nfunction updateURL(){\n\n  const url = `\/converter\/${selectedFrom.symbol}-${selectedTo.symbol}`;\n  history.replaceState(null,null,url);\n}\n\nfunction convertFromURL(){\n\n  const path = window.location.pathname.split(\"\/converter\/\")[1];\n\n  if(!path) return;\n\n  const [from,to] = path.split(\"-\");\n\n  const f = coins.find(c=>c.symbol===from);\n  const t = coins.find(c=>c.symbol===to);\n\n  if(f && t){\n    selectedFrom = f;\n    selectedTo = t;\n    convert();\n  }\n}\n\n\/\/ busca\ndocument.getElementById(\"searchFrom\").addEventListener(\"input\",function(){\n  const val = this.value.toLowerCase();\n  renderList(\"fromList\", coins.filter(c=>c.name.toLowerCase().includes(val)), selectFrom);\n});\n\ndocument.getElementById(\"searchTo\").addEventListener(\"input\",function(){\n  const val = this.value.toLowerCase();\n  renderList(\"toList\", coins.filter(c=>c.name.toLowerCase().includes(val)), selectTo);\n});\n\ndocument.getElementById(\"amount\").addEventListener(\"input\", convert);\n\nloadCoins();\n\n<\/script>\n\n\n\n<div style=\"background:#f2f2f2;padding:20px;font-family:Arial\">\n\n<h2 style=\"margin-bottom:15px\">Crypto Converter<\/h2>\n\n<div style=\"background:#fff;padding:20px;border:1px solid #ccc\">\n\n<div style=\"display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap\">\n\n<!-- LEFT -->\n<div style=\"flex:1;min-width:250px\">\n\n<div style=\"border:1px solid #ccc;padding:10px;background:#fafafa\">\n\n<div id=\"fromBox\" style=\"margin-bottom:10px\"><\/div>\n\n<input id=\"amount\" type=\"number\" value=\"1\"\nstyle=\"width:100%;padding:10px;font-size:18px;border:1px solid #ccc\">\n\n<\/div>\n\n<p style=\"font-size:12px;color:#666;margin-top:5px\" id=\"rate1\"><\/p>\n\n<\/div>\n\n<!-- CENTER -->\n<div style=\"display:flex;align-items:center;justify-content:center\">\n<button onclick=\"swap()\" style=\"padding:10px;border:none;background:#ddd;cursor:pointer\">\n\u21c4\n<\/button>\n<\/div>\n\n<!-- RIGHT -->\n<div style=\"flex:1;min-width:250px\">\n\n<div style=\"border:1px solid #ccc;padding:10px;background:#fafafa\">\n\n<div id=\"toBox\" style=\"margin-bottom:10px\"><\/div>\n\n<input id=\"result\" type=\"number\"\nstyle=\"width:100%;padding:10px;font-size:18px;border:1px solid #ccc\">\n\n<\/div>\n\n<p style=\"font-size:12px;color:#666;margin-top:5px\" id=\"rate2\"><\/p>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<script>\n\nlet prices = {};\n\nlet coins = {\n  bitcoin: {symbol:\"BTC\", img:\"https:\/\/assets.coingecko.com\/coins\/images\/1\/large\/bitcoin.png\"},\n  ethereum: {symbol:\"ETH\", img:\"https:\/\/assets.coingecko.com\/coins\/images\/279\/large\/ethereum.png\"},\n  tether: {symbol:\"USDT\", img:\"https:\/\/assets.coingecko.com\/coins\/images\/325\/large\/Tether.png\"},\n  binancecoin: {symbol:\"BNB\", img:\"https:\/\/assets.coingecko.com\/coins\/images\/825\/large\/bnb-icon2_2x.png\"},\n  solana: {symbol:\"SOL\", img:\"https:\/\/assets.coingecko.com\/coins\/images\/4128\/large\/solana.png\"},\n  ripple: {symbol:\"XRP\", img:\"https:\/\/assets.coingecko.com\/coins\/images\/44\/large\/xrp-symbol-white-128.png\"},\n  cardano: {symbol:\"ADA\", img:\"https:\/\/assets.coingecko.com\/coins\/images\/975\/large\/cardano.png\"},\n  dogecoin: {symbol:\"DOGE\", img:\"https:\/\/assets.coingecko.com\/coins\/images\/5\/large\/dogecoin.png\"},\n  toncoin: {symbol:\"TON\", img:\"https:\/\/assets.coingecko.com\/coins\/images\/17980\/large\/ton_symbol.png\"},\n  tron: {symbol:\"TRX\", img:\"https:\/\/assets.coingecko.com\/coins\/images\/1094\/large\/tron-logo.png\"}\n};\n\nlet fiats = [\"usd\",\"brl\",\"eur\"];\n\nlet selectedFrom = \"usd\";\nlet selectedTo = \"bitcoin\";\n\nfunction renderSelectors(){\n\n  const fromBox = document.getElementById(\"fromBox\");\n  const toBox = document.getElementById(\"toBox\");\n\n  let html = \"\";\n\n  \/\/ FIAT + CRYPTO LIST\n  const list = [\n    {id:\"usd\", name:\"USD\", img:\"https:\/\/flagcdn.com\/w40\/us.png\"},\n    {id:\"brl\", name:\"BRL\", img:\"https:\/\/flagcdn.com\/w40\/br.png\"},\n    {id:\"eur\", name:\"EUR\", img:\"https:\/\/flagcdn.com\/w40\/eu.png\"},\n  ];\n\n  Object.keys(coins).forEach(k=>{\n    list.push({\n      id:k,\n      name:coins[k].symbol,\n      img:coins[k].img\n    });\n  });\n\n  list.forEach(c=>{\n    html += `\n      <div onclick=\"setFrom('${c.id}')\"\n        style=\"display:flex;align-items:center;gap:8px;padding:6px;cursor:pointer\">\n        <img decoding=\"async\" src=\"${c.img}\" width=\"20\" loading=\"lazy\">\n        ${c.name}\n      <\/div>\n    `;\n  });\n\n  fromBox.innerHTML = html;\n  toBox.innerHTML = html.replaceAll(\"setFrom\",\"setTo\");\n\n  updateLabels();\n}\n\nfunction setFrom(v){\n  selectedFrom = v;\n  update();\n  updateLabels();\n}\n\nfunction setTo(v){\n  selectedTo = v;\n  update();\n  updateLabels();\n}\n\nfunction updateLabels(){\n\n  document.getElementById(\"fromBox\").innerHTML =\n    \"From: \" + selectedFrom.toUpperCase();\n\n  document.getElementById(\"toBox\").innerHTML =\n    \"To: \" + selectedTo.toUpperCase();\n}\n\nasync function loadPrices(){\n\n  const ids = Object.keys(coins).join(\",\");\n\n  const res = await fetch(`https:\/\/api.coingecko.com\/api\/v3\/simple\/price?ids=${ids}&vs_currencies=usd,brl,eur`);\n  prices = await res.json();\n\n  renderSelectors();\n  update();\n}\n\nfunction isCrypto(v){\n  return prices[v] !== undefined;\n}\n\nfunction update(){\n\n  const amount = parseFloat(document.getElementById(\"amount\").value) || 0;\n\n  let usdValue;\n\n  if(isCrypto(selectedFrom)){\n    usdValue = amount * prices[selectedFrom].usd;\n  } else {\n    usdValue = amount;\n  }\n\n  let result;\n\n  if(isCrypto(selectedTo)){\n    result = usdValue \/ prices[selectedTo].usd;\n  } else {\n    result = usdValue;\n  }\n\n  document.getElementById(\"result\").value = result.toFixed(6);\n\n  document.getElementById(\"rate1\").innerText =\n    `${selectedFrom.toUpperCase()} \u2192 ${selectedTo.toUpperCase()}`;\n\n  document.getElementById(\"rate2\").innerText =\n    `Live via CoinGecko`;\n}\n\nfunction swap(){\n  let temp = selectedFrom;\n  selectedFrom = selectedTo;\n  selectedTo = temp;\n  update();\n  updateLabels();\n}\n\n\/\/ events\ndocument.getElementById(\"amount\").addEventListener(\"input\",update);\n\n\/\/ init\nloadPrices();\nsetInterval(loadPrices,60000);\n\n<\/script>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Crypto Converter \u21c4 Crypto Converter PRO Hist\u00f3rico Crypto Converter \u21c4<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-329","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/pages\/329","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/comments?post=329"}],"version-history":[{"count":3,"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/pages\/329\/revisions"}],"predecessor-version":[{"id":337,"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/pages\/329\/revisions\/337"}],"wp:attachment":[{"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/media?parent=329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}