How many addresses an app can complete each day
How many addresses an app can complete each day
About 75 addresses per day at 150 requests. Measured 2026-10-03 with the element 1.0.0, for a person typing 40 words a minute and typing the whole address. A person who types slower sends more requests (the table).
The starting fair-use ceiling is 150 requests for each app, each product and each day. Every suggest request counts, and so does the resolve that fetches the chosen address, so one typed address uses several requests. The number depends on how fast the person types: the element waits 400 ms after the last key before it asks, so a person who pauses less than that between keys sends one suggest request for the whole burst, and a person who pauses longer sends one after almost every key. A verified owner can ask Comms.ID for a higher ceiling, and an app can make the element wait longer or shorter with its debounce attribute (the rows marked debounce).
| Element setting | What is typed | Typing speed | Requests for one completed address (mean) | Addresses per day at 150 requests |
|---|---|---|---|---|
| Default | The whole address | 24 words a minute (500 ms a character) | 34 | 4 |
| Default | The whole address | 40 words a minute (300 ms a character) | 2 | 75 |
| Default | The whole address | 100 words a minute (120 ms a character) | 2 | 75 |
| Default | To the end of the suburb | 24 words a minute (500 ms a character) | 25.3 | 5 |
| Default | To the end of the suburb | 40 words a minute (300 ms a character) | 2 | 75 |
| Default | To the end of the suburb | 100 words a minute (120 ms a character) | 2 | 75 |
debounce="200" |
The whole address | 24 words a minute (500 ms a character) | 34 | 4 |
debounce="200" |
The whole address | 40 words a minute (300 ms a character) | 34 | 4 |
debounce="200" |
The whole address | 100 words a minute (120 ms a character) | 2 | 75 |
debounce="200" |
To the end of the suburb | 24 words a minute (500 ms a character) | 25.3 | 5 |
debounce="200" |
To the end of the suburb | 40 words a minute (300 ms a character) | 25.3 | 5 |
debounce="200" |
To the end of the suburb | 100 words a minute (120 ms a character) | 2 | 75 |
debounce="800" |
The whole address | 24 words a minute (500 ms a character) | 2 | 75 |
debounce="800" |
The whole address | 40 words a minute (300 ms a character) | 2 | 75 |
debounce="800" |
The whole address | 100 words a minute (120 ms a character) | 2 | 75 |
debounce="800" |
To the end of the suburb | 24 words a minute (500 ms a character) | 2 | 75 |
debounce="800" |
To the end of the suburb | 40 words a minute (300 ms a character) | 2 | 75 |
debounce="800" |
To the end of the suburb | 100 words a minute (120 ms a character) | 2 | 75 |
How it was measured
- The element: the released
<comms-id-address>1.0.0 (sha384sha384-7FPIVEPB1mntl8BfVwEi2jaTssrOQ72fsxRcWUsDr1EZgSuLVvrN/o181vMBmxcV), served as on cdn.comms.id, with its default settings (the rows markeddebounceset that one attribute): it asks 400 ms after the last key, and only once at least 3 characters are typed. - The browser: Chromium 149.0.7827.55, real, with each key pressed at a steady interval: 24 words a minute is 500 ms a character; 40 words a minute is 300 ms a character; 100 words a minute is 120 ms a character (a word is 5 characters).
- The typing: 10 real street addresses of public buildings, typed as free text, then the first suggestion chosen. Two rules: the whole address typed (number, street, suburb, state, postcode); and typed to the end of the suburb (number, street, suburb). Typing the whole address is the most requests one address can cost, so the published figure is for it.
- The count: every
suggestandresolverequest the browser sent for each completed address, whether or not its answer was still wanted. The server answered each request in 120 ms with the contract’s own example reply. - The figure: the mean number of requests for one address, and 150 divided by that mean, rounded down.
- Not counted: a site with no backend that uses a public key also exchanges its key for a short-lived capability, once for each of
suggestandresolveabout every two minutes, and each exchange takes one unit of the allowance; a site with its own server (a relay) makes none. - Before 1.0.0: the element 0.1.3, the last 0.x release (sha384
sha384-9vOlQgoIOHUXk+q2aHEgtgtS85+/J6fa44XYORDQCO2jtSrlQ+EYNLywAve3RZOT), waited 200 ms by default. Measured the same way on 2026-10-03, it gave about 4 addresses per day at 150 requests for 40 words a minute and the whole address (34 requests for one address). The rows markeddebounce="200"above are the 1.0.0 element set to that old wait, and they give the same counts. The 1.0.0 default is longer for this reason.
| 0.1.3, default wait of 200 ms: what is typed | Typing speed | Requests for one completed address (mean) | Addresses per day at 150 requests |
|---|---|---|---|
| The whole address | 24 words a minute | 34 | 4 |
| The whole address | 40 words a minute | 34 | 4 |
| The whole address | 100 words a minute | 2 | 75 |
| To the end of the suburb | 24 words a minute | 25.3 | 5 |
| To the end of the suburb | 40 words a minute | 25.3 | 5 |
| To the end of the suburb | 100 words a minute | 2 | 75 |
The addresses at 40 words a minute, typed in full, with the 1.0.0 default
| Address typed | Characters | suggest |
resolve |
Requests |
|---|---|---|---|---|
| 100 Harris Street Pyrmont NSW 2009 | 34 | 1 | 1 | 2 |
| 483 George Street Sydney NSW 2000 | 33 | 1 | 1 | 2 |
| 328 Swanston Street Melbourne VIC 3000 | 38 | 1 | 1 | 2 |
| 64 Adelaide Street Brisbane City QLD 4000 | 41 | 1 | 1 | 2 |
| 601 Hay Street Perth WA 6000 | 28 | 1 | 1 | 2 |
| 128 King William Street Adelaide SA 5000 | 40 | 1 | 1 | 2 |
| 50 Macquarie Street Hobart TAS 7000 | 35 | 1 | 1 | 2 |
| 14 Harry Chan Avenue Darwin City NT 0800 | 40 | 1 | 1 | 2 |
| 148 Bunda Street Canberra ACT 2601 | 34 | 1 | 1 | 2 |
| 1 Martin Place Sydney NSW 2000 | 30 | 1 | 1 | 2 |
The measurement is repeatable: pnpm --filter @comms-id/address-element measure types the same addresses again and writes this page, and the test packages/address-element/tests/ceiling.test.ts checks the counts against packages/address-element/measurements/daily-ceiling.json (the 1.0.0 measurement) and daily-ceiling-0.1.3.json (kept as it was written).