Bitculator

Changelog

Embed widgets changelog

Every change to the embeddable widgets - URLs, parameters, keys, domains and limits - newest first. What stays stable within a version is set out in the policies.

  1. Changed

    Widgets open no live connection

    Widgets no longer open a websocket connection to Bitculator or write translation data into the visitor's browser storage. Nothing changes on screen: widgets never streamed live prices, so figures are always as of page load.

  2. Fixed

    Interest calculator: partial periods and input caps

    A duration that ends part-way through a compounding period now earns pro-rata interest and still credits the deposits made inside it, and the growth curve is spaced by elapsed time. Inputs are capped at a principal of 1,000,000,000,000, a contribution of 1,000,000,000, a rate of 1,000% and 50 years or 600 months; a value over its cap is reset to the cap.

  3. Fixed

    Interest calculator treats the rate as annual

    The rate is now an annual nominal rate, divided over the compounding periods. Before, the full rate was applied to every period, so 5% compounded monthly grew like 5% a month; results in existing embeds drop accordingly.

  4. Fixed

    Cancelling clears a scheduled plan change

    Cancelling a paid embed plan now also drops any downgrade you had scheduled; the plan simply runs to the end of the paid period.

  5. Fixed

    DCA dates no longer shift by a day

    The DCA start and end pickers read dates as UTC midnight, which showed the previous day to visitors west of UTC. They now use the visitor's local calendar day.

  6. Added

    Eight more widget languages

    The {locale} path segment now also accepts ar (shown right-to-left), sk, th, ko, ro, hu, sr and fi, added between 19 and 24 September - 27 languages in total.

  7. Changed

    Widgets set no cookies; visitor IPs hashed

    Widget pages no longer set a session or XSRF cookie and no longer register a service worker in the visitor's browser. The keyless per-visitor counter now uses a keyed hash of the IP address, and keyless loads without a referrer are reported as "direct" instead of by IP.

  8. Fixed

    Zoom widget's monthly and weekly rows load on other sites

    The monthly and weekly rows of /embed/zoom/{slug} are now fetched without a session token, which a widget inside another site's iframe cannot get.

  9. Fixed

    Converter and flipper with missing market data

    The converter shows no figure when either asset has no usable price instead of "1 X = 0 Y", and the marketcap flipper clears its figures when a pair has no market caps instead of keeping the previous pair's numbers under the new names.

  10. Added

    Old coin slugs redirect

    A widget URL that uses a coin's former slug now returns a 301 to the same widget under the current slug, with the query string - including embed_key - kept. Before, it returned 404.

  11. Changed

    Stricter domain entry and matching

    Registered domains are parsed the way a browser reads a URL: scheme, path, port and a leading www. are dropped, the name is lower-cased and international names become punycode; anything that is not a hostname is rejected. The embedding page's Referer is normalised the same way. Subdomains other than www still need their own entry.

  12. Fixed

    Downgrades wait for the period end

    A move to a lower embed plan now takes effect when the paid period ends. Before, a downgrade on the same billing interval applied immediately and cut the monthly limit mid-period. Upgrades still apply at once.

  13. Changed

    Widget errors return a plain "Not Found"

    An unknown or inactive coin slug now returns a bare "Not Found" text response instead of rendering the full Bitculator site - header, sidebar and footer - inside your iframe.

  14. Changed

    Verified email needed to create keys

    Creating an embed key now requires a verified email address; accounts created with a crypto wallet are exempt. Key creation is limited to 10 a minute, and existing keys keep working.

  15. Fixed

    Newly registered domains work immediately

    From 14 August, domain checks were cached for 5 minutes, including "not registered" results, so a domain you had just added could keep returning 403 for up to 5 minutes. Only successful matches are cached now; removing a domain can still take up to 5 minutes to take effect.

  16. Changed

    Key last-used time updates hourly

    A key's last-used time in the embed console is now written at most once an hour, and widget loads no longer count as visits in Bitculator's own site statistics. Embed usage counts are unaffected.

  17. Fixed

    Zoom grid scrolls per band on narrow screens

    On narrow widths the weekly band and the yearly, quarterly and monthly band now scroll independently, so dragging the long weekly row no longer pulls the shorter band sideways.

  18. Changed

    Calculators redesigned; sections removed

    Between 12 and 16 July the calculator widgets and the flipper got new layouts and inputs, and some sections were removed: picker on the flipper, chart and table on interest, results on tax and loan, and banner, table and chart on staking, which now lists daily to yearly rewards inline. Visitors' saved arrangements were reset; rebuild any layout or visible value that names a removed section.

  19. Added

    Opt-in growing frame for pickers

    A host page can post {type: 'bitculator-embed-host-growable'} to the widget window. The widget then opens its pickers downward and includes them in the height it reports through bitculator-embed-resize; without the message, pickers open as an overlay inside the fixed frame.

  20. Changed

    Zoom widget rebuilt as a seasonality grid

    /embed/zoom/{slug} now shows one grid of yearly, quarterly, monthly and weekly returns per year, with an average row and win-rate summaries, plus a quarterly "tornado" view. It replaces the earlier quarterly, monthly and weekly tables and has no outer card frame.

  21. Added

    Daily usage chart in the embed console

    The embed console now charts requests per day for the current billing period.

  22. Changed

    Embed pricing moved to the widgets page

    /{locale}/pricing/embed now redirects to /{locale}/crypto-tools, which gained a plan picker with checkout and a widget explorer that previews one widget at a time next to the snippet builder.

  23. Added

    Embed documentation published

    This reference went live at /{locale}/documentation/embed/v1, with a snippet builder, authentication, domains, quota, plans, every widget's parameters and click-to-load previews.

  24. Changed

    Embed quota separate from the Data API

    Embed loads now have their own plan, billing period and counter; the Data API had drawn from the embed plan for its first two days. Only embed keys count toward your embed key limit, a Data API key or an expired key in a widget URL gets 403, and widget responses carry no X-Quota-* headers.

  25. Fixed

    Usage window keeps the billing day after cancelling

    After you cancel a paid embed plan, usage keeps counting in your billing-day window until the plan ends instead of switching to the calendar month mid-period, and the console's reset date is right for billing days at the end of a month.

  26. Removed

    Embed keys no longer work on /api/v1

    The early JSON endpoints /api/v1/prices and /api/v1/widgets/convert/{from}/{to}, which took an embed key, were replaced by the Data API, which accepts only its own keys. Embed keys are managed at /user/developer/embed.

  27. Fixed

    Domain match ignores case and a trailing dot

    The embedding host is lower-cased and loses any trailing dot before it is compared with your registered domains.

  28. Added

    Widgets landing page

    /{locale}/crypto-tools became a widgets page with a live converter, a copyable snippet and the Free, Starter and Pro comparison.

  29. Changed

    Keyed widgets need a referrer

    A load with embed_key but no Referer or Origin header now gets 403; before, it skipped the domain check. Keep the browser's default referrer policy and do not set referrerpolicy="no-referrer" on the iframe.

  30. Changed

    Keyless limit counted per visitor

    The keyless allowance of 1,000 loads a month now counts per visitor IP across every keyless widget on every site, instead of one pool per embedding domain.

  31. Changed

    "Powered by Bitculator" link restored

    The link at the foot of every widget is back after its removal on 4 April. It points to the matching tool on bitculator.com and cannot be switched off.

  32. Changed

    Plain iframe snippet

    Builder snippets went back to a bare <iframe>; snippets copied on 3 April also carried a wrapper, a separate Powered-by link and an auto-resize <script>. The in-widget footer link was removed at the same time and came back on 2 May.

  33. Added

    Embed builder on every tool page

    Each tool page gained a builder: paste your embed key, pick the widget language, a layout template and the visible sections, and set width, height, corner radius and lazy or eager loading, with the snippet and a live preview updating together.

  34. Added

    visible parameter

    The calculator and flipper widgets accept ?visible=, a comma-separated list of the section IDs to show by default. A visitor's own choice, saved in their browser, takes precedence.

  35. Changed

    embed_key parameter and console address

    Pass your key as ?embed_key=; ?api_key= still works as an alias. The console moved to /{locale}/user/developer/embed, and a new key's full value is shown once, right after it is created.

  36. Fixed

    Widgets can be framed on other sites

    Widget pages still went out with X-Frame-Options: SAMEORIGIN and frame-ancestors 'self', so browsers refused to show them on other domains. They now send frame-ancestors * and no X-Frame-Options.

  37. Changed

    Embed plans of their own

    The plans introduced on 22 March became embed plans with their own checkout, and the pricing page moved to /{locale}/pricing/embed. Limits did not change.

  38. Added

    Drag-and-drop sections and the layout parameter

    The DCA, profit, interest, tax, loan, staking and flipper widgets are split into sections that visitors can drag, resize and align, saved in their browser with a "Reset layout" button. ?layout= sets the starting arrangement, for example c(stats::cc,settings::cc), where c() is a column, r() a row and a section is id:width:alignment.

  39. Added

    Keys, domains, plans and quota

    Widgets accept a key in the URL, and a load with a key must come from a domain registered in the console or gets 403; keyless loads still render. Free allows 10,000 loads a month, 1 domain and 2 keys, Starter 50,000, 3 and 5, and Pro 500,000, 10 and 10. Over the limit, the widget shows a usage-limit page (HTTP 429).

  40. Removed

    Converter comparison table removed

    The converter widget lost its comparison table, so hideTable has had no effect since. The parameter is still accepted.

  41. Added

    Height messages and tool-page snippets

    Widgets post {type: 'bitculator-embed-resize', height} to the parent window whenever their height changes, so a host script can size the iframe, and show a loading placeholder until they are ready. Every tool page gained a copyable embed snippet.

  42. Added

    Nine embeddable widgets

    Launch: the converter (/{locale}/embed/converter/{from}/{to}), zoom (/zoom/{slug}), marketcap flipper (/flip/{entity1}/{entity2}) and the /dca, /profit, /interest, /tax, /loan and /staking calculators. Every widget accepts ?compact=1 and ?theme=dark, has a transparent background, is noindex and carries a "Powered by Bitculator" link.

Stay informed

Removing a widget version or lowering a limit is announced here and by email at least six months ahead - see the deprecation policy.