For developers / Start here
Status labels
LiveEvery page on this site carries one of three labels, and so does every mechanism described on it. The label answers one question: can you call this today?
Three labels
Live - present in the running Phase 0 stack and callable today. Everything under it has been read out of code that ships, and the page names the file and line.
In development - implemented somewhere, but not somewhere you can reach. Either it is on a branch and not on main, or it is on main but not integration-hardened. A page carrying this label names the branch, because "coming soon" without a location is not information.
Designed - specified and not implemented. No callable surface exists. This label is load-bearing: several of the mechanisms that make Pickle interesting as a design are in this state, including the entire application revenue layer.
Why only three
The distinction a developer can act on is binary - can I call it, or not - so the two labels that both mean "not today" share a colour and are separated by their words rather than by a third hue. Colouring them differently would imply a distinction you could plan around, and you cannot: neither one has an endpoint.
The reason both are kept rather than collapsed into one is that they fail differently. An In development surface has code you can read and a branch you can check out. A Designed surface has a specification and nothing else, and its shape may still change entirely.
Method-level labels
The JSON-RPC reference needs a finer scale, because a method can be registered, answer without erroring, and still be something you must not read as data:
- Live - works as described.
- Stub - answers, but with a constant rather than a measurement.
eth_feeHistoryandeth_createAccessListare the two, and both look like working methods from the outside. - Refused - registered and deliberately answering
-32601, because the node holds no user keys. Sign locally instead. - Dev build - needs a non-default cargo feature.
- Cannot succeed - registered, gated, and unable to work in any build.
A refused method fails loudly and you fix your code. A stub returns a well-formed answer made of constants, and a client that reads it as data behaves plausibly and wrongly. Both stubs are marked in the reference and both say what they actually return.
The internal scheme
The working documents in the Pickle repository label mechanisms [I] implemented, [T] testnet-only, [P] proposed, [R] roadmap and [O] open. That scheme does not appear on this site. If you have read it elsewhere in the project, the mapping is that [I] and [T] become Live, [P] and [R] become Designed, and [O] means a decision has not been taken and so nothing is documented here at all.