Builder code
planned, not yet charged.
Polymarket lets an interface attach a builder code to the orders its users sign and charge a builder fee on those orders. It is the only fee mechanism in the Stack. It ships off and empty, and nothing points to a MIKODES account.
01What this release does with it
The Terminal is read-only: it places no orders, so it attaches your builder code to nothing. The order flow (the user's own wallet signs an order with your code inside) is designed but not built. No signed Polymarket order has ever been placed from this code, so the fee path is untested. The admin toggle reads "Use my builder code (attribution now; order flow not in this release)": on, it turns on attribution; attaching the code to orders needs that future flow.
Today your builder code is used to:
- highlight the fills that carry it in the Terminal;
- count attributed fills in the admin's
attributioncheck; - compare Polymarket's live rate with your plan in the
feeLivecheck.
02How Polymarket's builder fee works
From Polymarket's documentation and SDK source as read by the developers on 2026-09-21. Not re-checked for these docs: confirm on Polymarket before you rely on it.
- The builder code is a bytes32 value inside the order the user signs. It is public: it appears in every attributed fill on Polygon. No secret is involved.
- Caps: taker 0–100 basis points (1 %), maker 0–50 basis points (0.5 %). The admin enforces these caps (
admin/src/manifest.ts). - The builder fee is charged to the user on top of Polymarket's own fee.
- Rate changes: at most one per 7 days, taking effect 3 days after you schedule it (the admin's
feeSchedulecheck uses these numbers). - There is no API that sets the fee; you set it on polymarket.com. The admin only reads
GET /fees/builder-fees/{code}.
03Get your builder code
- Sign in on polymarket.comWith the account that should receive builder fees.
- Open Settings → BuilderCreate the builder profile there (location as documented on 2026-09-21; unverified for these docs).
- Copy the code
0xfollowed by 64 hex characters. - Optional: schedule a rateSet the taker and maker rates on Polymarket and write down the UTC date.
04Record it in the admin
- Open Builder fee (Polymarket)In the admin sidebar under Money.
- Turn on "Use my builder code" and set the codeClick Set address and paste it. A zero code or anything that is not 32 bytes is refused.
- Enter the planned ratesThe ones you scheduled on Polymarket. A taker rate above 100 or a maker rate above 50 is refused, in the form and on the server.
- Enter the scheduled date
YYYY-MM-DD. Status then shows when it takes effect and when you may change it again. - Save, commit, deploy
config/public.jsonnow hasbuilder.enabled: true, your code and the planned rates.
Every change is in the audit log. The code is masked in the admin; revealing it needs the owner role and a reason of at least 8 characters.
05Planned rate versus live rate
The admin is a planner, because Polymarket has no write API. The feeLive check reads the live rate from {clobHost}/fees/builder-fees/{code} and warns when it differs from your plan. For any future order screen the design rule is: show the user the live rate read just before signing; if that read fails, show the fee as unknown and build no order.
06Why the Revenue page shows nothing
- Polygon shows which fills carry a builder code (
OrderFilled.builder). The Terminal and the attribution check use that. - Every fee in
OrderFilled.feeandFeeChargedgoes to Polymarket's fee receiver. How much a builder is paid, and when, is not readable from the chain. - Multiplying attributed volume by your planned rate would be an estimate presented as income, so the admin does not do it. When Polymarket's payout mechanism is verified, a developer can register a revenue source in
admin/src/app.tsthat lists each payout with its transaction hash.
Example only: a fee of 50 bps on a $100 order would be $0.50, charged to that user. This is arithmetic, not a forecast of what any interface will earn, and this release places no orders.
07Before anyone builds the order flow
- Only
signature_type = 0(the user's own wallet) is designed for. Other types are not shipped. - A user whose funds sit in a Polymarket proxy or Safe wallet cannot trade them from their own wallet address.
@polymarket/builder-relayer-clienthas no licence and must not be used; it is not needed on the own-wallet path.- Live rate limits of Polymarket's APIs are unknown.
Get legal advice for your jurisdiction before you offer any order flow. See Legal and jurisdiction.