Proposal: Auto-fetch IDs with activity

Background

Currently the number of IDs you’ve generated is stored in local storage, and you’re shown that number of IDs in the list. If you import your account on another device, you start back at the primary ID and have to awkwardly keep pressing “Create New ID” to restore the other ones.

Likewise, users can end up creating a bunch of IDs that effectively do nothing for them, with no way of removing them from the UI, and little understanding of what they’re for.

Proposal

  1. At certain events (e.g. account import, clicking a refresh button) or intervals (e.g. once a day) we should “scan” IDs to see if they have any meaningful activity on them (profile.json with meaningful data, BTC balance, an id assigned.)
  2. Rather than tracking how high their index is, we’ll keep an array of meaningful IDs in local storage. These will be shown automatically.
  3. “Creating” a new ID will only be available once you’ve done something with the previously indexed ID.

This is all somewhat like BIP-44. While discovery will have to have some additional wiggle room since we haven’t been enforcing proposal #3 (maybe search the next 10 indexes for an account, rather than just increment by one) it should more or less be the same.

Questions

It would be good to know the following before starting work on this:

  • How many IDs do people have? Could this be problematic / slow if it gets into the hundreds?
  • Do users ever restore their account offline? How should we handle the scan if they do?
  • How frequently should we automatically check for new IDs?
  • Should we offer an escape hatch for people who have their IDs stretched apart by more than the search finds? Maybe they just enter an index and it adds the ID to the array of IDs, even if it’s empty?
5 Likes

This sounds great!

As a data point, my largest keychain has 7 blockstack ids with user names and 3 without.

I know of speculators that bought a number of names but haven’t personally seen any more than a dozen or so.

I’d guess most people have only one.

I’ve found myself restoring my account offline a couple times while on an airline but otherwise suspect it occurs infrequently.

a username?

My main keychain has 3 with ids and 1 without. Other devs I know have similar numbers +/- 2.

Haven’t tried this yet or found a situation where I needed it.

@wbobeirne One thing I’m curious about is how IDs will be restored in the event that they don’t meet the criteria for meaningful activity–will it be similar to the current mechanism?