Public PRD

PRD: how Brazilians spend crypto - research report + cost comparator

This is the actual spec driving a bitsARK feature, published as-is and versioned in git: the problem, the evidence, the requirements with acceptance criteria, the metrics, and every decision along the way.

Product specDiscovery evidenceAcceptance criteriaDecision logChangelog
Status
Shipped
Version
v1.0
Owner
Ricardo Delfino
First published
2026-07-07

TL;DR

The spec in three sentences

Problem

Brazilians moved more than R$ 500 billion in crypto in 2025 and most of it is stablecoins (~71% of declared annual volume, up to 90% of transactions in some months), yet spending that value in the real economy remains expensive and opaque: five channels compete with fee anatomies that cannot be compared side by side anywhere neutral.

Solution

An evidence-based research report ranking the five spending channels available to Brazilians, plus an interactive comparator that computes the real total cost of spending R$ X through each channel, with every assumption visible, editable and dated.

Expected result

bitsARK covers the full crypto lifecycle for Brazil (acquire, hold, receive, and now spend), captures the underserved "gastar cripto" search cluster, and gives the existing personas pages a natural next step.

Problem and opportunity

Brazil holds digital dollars it cannot cheaply spend

Brazil is the fifth-largest crypto market in the world 1 and its on-chain economy is overwhelmingly denominated in stablecoins: about 71% of declared annual volume, rising to as much as 90% of reported transactions in some months 23. bitsARK's own persona research found that the largest user group by headcount is retail savers holding digital dollars as a store of value 5 - value that eventually needs to buy groceries, pay bills, or fund a purchase in BRL.

The moment a holder tries to spend, the market fragments into five channels with completely different cost anatomies: selling on an exchange and withdrawing via Pix, buying gift cards with crypto, loading a crypto debit card, paying merchants directly, and P2P. Each hides its true cost in a different place: trading fees, spreads versus the reference rate, fixed withdrawal fees, card FX spreads, IOF, or gift-card premiums.

Independent, Brazil-specific comparisons do not exist. Search results for spending-crypto queries are dominated by affiliate content that recommends whatever pays the highest commission, and adoption research keeps flagging the same paradox: stablecoin ownership is near-universal among Brazilian crypto users, but everyday spending lags far behind 4.

bitsARK already answers how to choose an exchange, how stablecoin flows behave, and how to receive money from abroad. Spending was the missing quadrant, and the one I found hardest to scope: unlike an exchange or a stablecoin flow, "spending" isn't one product with one fee schedule. It's five different mental models that happen to share a word.

Discovery evidence

What the data says

Findings that motivated this feature, in decreasing order of weight. Full citations in the sources section.

  1. Market size: Brazil ranks 5th in the 2025 Chainalysis Global Crypto Adoption Index 1, with US$ 318.8 billion received on-chain - nearly a third of all Latin American activity 16. Receita Federal data shows R$ 505.5 billion moved in declared operations in 2025 (up 21.5% over 2024), averaging ~4.7 million individual taxpayers reporting crypto operations per quarter 2.

  2. Stablecoin dominance: stablecoins are ~71% of Brazil's declared annual crypto volume (USDT alone ~65%), reaching up to 90% of reported transactions in some months 23. Digital dollars are a means of holding value, and holding always ends somewhere - which makes the spend/off-ramp moment universal and recurring across the entire holder base, on a long enough timeline.

  3. The spending gap: adoption studies place stablecoin ownership at 91.8% of Brazilian crypto users while everyday spending remains marginal 4 - the friction sits downstream in the spending layer, past the adoption question entirely.

  4. Internal persona research: of the seven personas mapped in bitsARK's stablecoin study, at least four (global professionals paid from abroad, digital-dollar savers, remittance recipients, and digital-economy consumers) face a recurring convert-to-spend decision 5.

  5. Channel supply is expanding but unmapped: Binance and Mastercard relaunched a crypto card for Brazil in October 2025 6, gift-card platforms operate Brazil-specific catalogs, and P2P remains a R$ trillions-capacity market concentrated on three platforms 10. No neutral source compares their costs.

  6. Regulatory stakes are rising: spending crypto is a taxable disposal that counts toward the R$ 35,000 monthly exemption 7, IOF on international card spending was unified at 3.5% 8, and DeCripto monthly reporting starts in July 2026 9. Cost-aware spending now has compliance consequences.

Personas served

Who this is for

Persona profiles come from the published bitsARK stablecoin research. This feature serves the four with recurring spend decisions:

Global professionals (service exporters and remote workers)

Paid in USDT/USDC from abroad; convert part of every invoice into BRL living costs. The receive side is already covered by the PJ guide - this covers the spend side.

View persona profile

Digital-dollar savers (retail)

The largest persona by headcount. Hold stablecoins as savings; spend episodically (an emergency, a large purchase, monthly top-ups).

View persona profile

Remittance recipients

Receive family transfers in crypto; nearly 100% of the received value must become spendable BRL quickly and cheaply.

View persona profile

Digital-economy consumers

Gaming, betting and digital services users who already pay digital merchants; most likely to use gift cards and direct crypto payments.

View persona profile

User stories

The stories the feature must serve

Each story is written from a persona above and maps to at least one functional requirement.

  • As a freelancer paid in USDT who needs R$ 2,000 for groceries and bills this week, I want to compare what selling on my exchange + Pix withdrawal actually costs versus loading a crypto card or buying a supermarket gift card, so that I keep more of my invoice and stop defaulting to the first route I learned.

  • As a digital-dollar saver making a one-off R$ 10,000 purchase, I want to see how fixed fees and percentage fees trade off at my amount, and which channel is cheapest at that size, so that I do not pay a small-purchase fee structure on a large purchase.

  • As a remittance recipient converting R$ 500 a month, I want a default answer that is safe at small amounts, where fixed fees weigh the most, so that the family money is not eaten by a R$ 3.50 withdrawal fee and a 1% spread.

  • As a gamer who spends only with digital merchants, I want to know when a gift card bought with crypto beats converting to BRL first, so that I pay for the same item with fewer conversion hops.

  • As any of the above, I want to see when each figure was last verified and edit any assumption I disagree with, so that I can trust the comparison - or correct it for my case.

Functional requirements

Requirements and acceptance criteria

Acceptance criteria in given/when/then form. A requirement ships only when its criteria pass on both the EN and PT pages.

R1

Static ranked baseline (progressive enhancement)

Given
a reader with JavaScript disabled or a crawler
When
the research page loads
Then
a complete ranked cost table for a reference amount is visible and readable, with no functional dependence on the comparator script.
R2

Interactive per-channel cost computation

Given
the comparator is loaded with its default parameters
When
the user enters an amount in BRL (presets: R$ 100 / R$ 500 / R$ 2,000 / R$ 10,000)
Then
each channel card shows its fee breakdown line by line and the net amount that survives, computed with the formulas in the appendix.
R3

Live re-ranking

Given
results are displayed
When
the user edits the amount or any fee parameter
Then
the summary strip re-orders channels by net value without a page reload, and the change is announced to assistive technology via aria-live.
R4

Transparent, dated assumptions

Given
any manually maintained parameter (fees, spreads, premiums)
When
its channel card renders
Then
the card displays a last-verified date and links to the public source of the figure.
R5

Editable assumptions with restore

Given
a user who disagrees with a default
When
they edit any parameter field
Then
results update immediately, inputs clamp to documented min/max bounds, and a per-card restore-defaults control returns the published values.
R6

Live PTAX reference

Given
the site's existing daily PTAX pipeline
When
the page builds
Then
the comparator embeds the current BCB PTAX rate and its reference date at build time, with no client-side fetch, and the user can override the rate manually.
R7

Exchange picker fed by the live dataset

Given
the exchange + Pix channel
When
the user selects an exchange from the picker
Then
the trading-fee default updates to that exchange's published taker fee from the bitsARK exchanges dataset, and links to its profile page.
R8

Bilingual parity

Given
the EN and PT variants
When
either page is compared against the other
Then
both expose the same sections, the same data, correct hreflang triples (en, pt-BR, x-default) and locale-correct number formatting.

Non-functional requirements

Constraints the feature must respect

Performance budget

Lighthouse mobile score of 95 or higher, matching the site-wide CI budget. The comparator ships as an inline vanilla-JS island; no framework payload, no chart library.

Accessibility

All interactive controls keyboard-operable; outputs announced via aria-live; every data table carries a caption; heading outline valid with no skipped levels.

Privacy

No analytics, no cookies, no PII. Nothing the user types leaves the page - all computation is client-side.

Architecture

Static-only, consistent with the site: data baked at build time from committed JSON and the existing PTAX pipeline. No new runtime endpoints.

Editorial integrity

No affiliate links anywhere in the feature. Gift-card platforms, card issuers and exchanges all run referral programs, and slotting one in would have been easy - a single parameter on the exchange dropdown. It stays out because a recommendation with a commission behind it is a different product than the one this page claims to be.

Success metrics

How success is measured

Targets reviewed 90 days after ship. This site runs no analytics by design, so metrics lean on search-side signals.

How success is measured
MetricTarget (90 days)Measured via
Search impressions, "spend crypto Brazil" query cluster (PT + EN)Page enters the cluster's top-10 impressions for the site's country profileGoogle Search Console, query and page filters
Indexation healthAll four new URLs indexed with valid hreflang cluster, zero Search Console errorsGSC page inspection + sitemap report
Internal discoveryResearch page linked from at least 4 existing pages (personas, PJ guide, exchanges, home)Build-time link audit (check-links)
Qualitative signalAt least 3 substantive feedback submissions or corrections on comparator assumptionsExisting on-site feedback form

Out of scope

Explicitly cut from v1

Cuts keep v1 shippable by one person while covering the complete decision. Each cut is a candidate for a future iteration, promoted only if the metrics above justify it.

Live gift-card catalog and pricing scrapes

Catalog prices change daily and scraping breaks the moment a vendor tweaks their HTML. v1 ships dated, sourced premium ranges instead - a number that is a few weeks stale beats a "live" number that silently returns zeros for a week before anyone notices.

Per-provider API integrations (cards, P2P order books)

Each integration is a maintenance liability on a solo-maintained site. The editable-parameters model gives users the same power without the fragility.

Saved scenarios and shareable permalinks

Requires state serialization and testing surface disproportionate to v1 value. Revisit if feedback asks for it.

Markets beyond Brazil

The site's moat is Brazil-specific regulatory and fee depth. Generalizing would dilute exactly what makes the comparison trustworthy.

Tax (DARF) calculation

Spending crypto is a taxable disposal and the page must say so, but computing capital gains requires cost-basis data this site should never collect. Link to guidance instead.

Decision log

Decisions and their reasoning

Dated, append-only. New decisions are added on top; superseded ones are struck through, never deleted.

  1. URL: top-level /gastar-cripto/, not under /stablecoins-brasil/

    Ship the research as a new top-level section using the Portuguese slug for both locales.

    Spending covers BTC, gift cards and cards - broader than stablecoins. The site already shares PT slugs across locales (stablecoins-brasil, receber-exterior-pj), and the PT slug targets the query language of the underserved cluster.

  2. Channel parameters live in committed JSON, not scraped

    Fee defaults ship in a versioned data file, each carrying a last-verified date and source links, rendered in the UI.

    A dated, sourced, slightly stale number the user can inspect and edit beats a scraped number that silently breaks. I looked at a nightly scraper early on; the exchanges' own fee pages disagree with their APIs often enough that automating it would have shipped wrong numbers with a confident timestamp attached - worse than an honest 'last checked two weeks ago.'

  3. Comparator is a vanilla-JS island

    No framework, no runtime dependencies; inline script with data passed via attributes, following the proven pattern from the PJ cost simulator.

    Keeps the Lighthouse >= 95 budget intact and the maintenance surface near zero. The interaction model (inputs, recompute, re-rank) does not need a framework.

  4. No affiliate links, no monetization of recommendations

    The feature will never carry affiliate parameters or sponsored placements.

    Search results for this entire query cluster are already dominated by affiliate content recommending whatever pays the highest commission - that is the problem statement, section one. Adding this page to that pile, even quietly, would make its ranking exactly as untrustworthy as the ones it is trying to replace.

  5. PRD published before the feature

    This document ships in its own commit, before any feature code, and is updated by the commits that build the feature.

    Makes the process auditable end-to-end, and it forces the spec to be complete enough to actually build from - a vague section is obvious once it is public, instead of sitting quietly in a draft only I ever read.

Changelog

Document history

Document history
VersionDateStatusNotes
v1.02026-07-08ShippedLaunched. Navigation and site-wide footer links, homepage product card, OG images (EN + PT), llms.txt entry and internal cross-links from related pages are live in both locales. All requirements R1-R8 met and verified; the feature is discoverable and indexed. Status moved from Draft to Shipped.
v0.92026-07-07DraftInteractive comparator shipped: editable per-channel fees, amount presets, exchange picker fed from the live dataset, live re-ranking summary, and per-parameter verification dates and sources (R2, R3, R4, R5, R6, R7 met). Parameters live in src/data/spend-channels.json; defaults also render server-side for the no-JS baseline (R1). Covered by 11 Playwright tests. Pending: launch wiring (nav, homepage, OG, cross-links) before v1.0.
v0.22026-07-07DraftDiscovery complete, research shipped: the five-channel ranking, executive summary, channel profiles, tax layer, methodology and full citations are live at /gastar-cripto/. The comparator is present as a static ranked baseline; the interactive version (R2, R3, R5, R7) is still pending.
v0.12026-07-07DraftInitial public draft: problem statement, discovery evidence, personas, user stories, requirements R1-R8, NFRs, metrics, scope cuts and founding decisions. Published before any feature code.

Appendix

Cost model

The comparator applies the same skeleton to every channel: percentage components apply to the amount being spent; fixed components are flat BRL values. Channel parameters and their sources ship in the public data file (src/data/spend-channels.json in the site repository).

X            = amount to spend, in BRL
netBrl       = max(0, X - sum(pctComponents) * X / 100 - sum(fixedComponentsBrl))
totalCostBrl = X - netBrl
totalCostPct = totalCostBrl / X * 100

Channel components:
  exchange-pix      = tradingFeePct + spreadVsPtaxPct + pixWithdrawFeePct  [+ pixWithdrawFeeBrl fixed]
  gift-card         = premiumPct (may be negative) + fxSpreadPct           [+ networkFeeBrl fixed]
  crypto-debit-card = topUpFeePct + fxSpreadPct + iofPct
  merchant-direct   = conversionSpreadPct + processorFeePct
  p2p               = priceDiscountPct + platformFeePct

Fixed fees dominate at small amounts, percentage fees dominate at large ones, so the cheapest channel flips somewhere in between X = 0 and X = 10,000. Exactly where it flips depends on which exchange and which card issuer you plug in, which is why these parameters are editable instead of baked into a static table.

Sources

Evidence cited in this spec

Citations referenced with [n] throughout the document.

  1. 2025 Global Crypto Adoption Index: Brazil ranked 5th worldwide Chainalysis
  2. Brazilians traded R$ 505.5B in crypto in 2025 (RFB data): +21.5% vs 2024; USDT R$ 326.9B + USDC R$ 33B ≈ 71% of the total; ~4.7M taxpayers/quarter Exame
  3. Stablecoins reach up to 90% of Brazil's reported crypto transactions in some months (tax authority data) CoinDesk
  4. Stablecoin adoption in Brazil at 91.8%, but spending still lags Oobit
  5. Who uses stablecoins in Brazil: 7 personas (internal research, published) bitsARK
  6. Binance and Mastercard launch crypto card in Brazil (Oct 2025) Mastercard Newsroom
  7. Brazil crypto tax guide: disposals, the R$ 35,000 monthly exemption and rates TokenTax
  8. IOF unified at 3.5% for international card and FX spending (Decree 12.499/2025, reinstated by the STF, in force from 17 July 2025) Câmara dos Deputados
  9. IN RFB 2.291/2025 (DeCripto): monthly crypto reporting from July 2026 Receita Federal
  10. Brazil P2P market analysis: Binance holds 45.1% of active listings Livecoins

Sources last reviewed:

Related

The research that fed this spec

The persona study below is discovery evidence item [5] - the published starting point for everything in this document.