Sign each request with a fresh HMAC signature. The cURL and HTTP header values below are placeholders, not reusable credentials. For runnable signing code, use request signing examples. Python examples use the signed session from that page; Node.js examples use its
bravadoFetch helper.The problem
Prediction-market gains and losses need to be reported to tax authorities in most jurisdictions. On Polymarket, that means reconstructing every disposition (sale, merge, redemption) with cost basis and proceeds, over an entire tax year, and producing a document a preparer can hand to the tax authority. Wallet-level exports from Polymarket’s UI do not contain the required fields.What Bravado provides
- Tax reports via
GET /traders/{address}/tax-reportwith per-disposition detail and summary totals. - R1 statements via
GET /traders/{address}/statements/r1for standalone access to disposition rows without the parent wrapper. - Reconciliation statements via
GET /traders/{address}/reconciliationcross-checking Bravado’s computed balance against on-chain state. - PMWAS methodology documented in PnL methodology so a preparer can verify the numbers.
APIs used
Worked example
Generate a year-end statement CSV for a client wallet:Product patterns
- Turbotax-style import. Serve dispositions as CSV in the format a specific tax software ingests.
- CPA workflow. Bulk download for a portfolio of client wallets.
- Live tax dashboard. Show projected year-to-date liability with per-market drill-down.
Verifying the numbers
Every disposition returned by the API can be reconstructed from the underlying fills using the PMWAS methodology. If a client’s preparer disputes a number, cross-check by pulling the raw fills fromGET /traders/{address}/trades and applying the standard.