📢 Notice: get_state API Usage and Planned Removal of Temporary Workaround Code
1. Background
condenser_api.get_state is a legacy RPC interface provided by steemd. It is designed to fetch aggregated data needed for page rendering in a single call — account information, post content, dynamic properties, and more. The interface returns differently structured responses based on the input path parameter. However, due to its overly complex design, the official developer documentation marked it as Deprecated many years ago (see official docs).
During the deployment of jussi-next — a ground-up rewrite — we did not implement all the interfaces flagged as Deprecated in the documentation, which caused certain pages to malfunction. To address this, we added temporary workaround code in jussi-next to support these unrecognized paths.
This workaround is strictly temporary and will be removed once both condenser-next and wallet-next are live.
2. Current get_state Path Classification
2.1 Paths Natively Supported by steemd
The following paths are handled natively by steemd's condenser_api.get_state and require no workaround:
| Path | Purpose |
|---|---|
/ | Home page (trending posts) |
/trending | Trending posts |
/trending/{tag} | Trending posts filtered by tag |
/hot | Hot posts |
/promoted | Promoted posts |
/created | Newest posts |
/@{username} | User profile page |
/@{username}/recent-replies | Replies received by the user |
/@{username}/posts | Posts authored by the user |
/@{username}/comments | Comments made by the user |
/@{username}/blog | User blog |
/@{username}/feed | User's following feed |
/{category}/@{author}/{permlink} | Post detail page |
2.2 Category 1 — User Sub-paths (steemd returns -32602 Invalid parameters)
The following paths are not natively supported by steemd. They are currently intercepted by the jussi-next workaround, which simulates the response:
| Path | Purpose | Caller |
|---|---|---|
/@{username}/transfers | Wallet transfer history | Wallet SSR |
/@{username}/author-rewards | Author reward history | Wallet SSR |
/@{username}/curation-rewards | Curation reward history | Wallet SSR |
/@{username}/delegations | Delegation records | Wallet SSR |
Workaround logic:
- Call
get_state("/@username")to retrieve basic account data - Call
get_account_historyto fetch transfers / author-rewards / curation-rewards - Call
get_vesting_delegations/list_vesting_delegationsto fetch delegation data - Assemble the above into a get_state-compatible response format; results are cached via Redis
2.3 Category 2 — Special Page Paths (steemd returns -32000 Server error)
The following paths are not natively supported by steemd. They are currently intercepted by the jussi-next workaround, which returns a minimal response:
| Path | Purpose | Caller |
|---|---|---|
/~witnesses | Witness voting page | Wallet SSR |
/proposals | Proposals page | Wallet SSR |
Workaround logic:
- Call
get_state("/")to retrieve base data such as feed_price and props - Return a response containing only the essential fields
- The actual witness list and proposal list are fetched separately by frontend JavaScript via
get_witnesses_by_voteandlist_proposals
3. Removal Plan
Trigger Conditions
The get_state workaround code in jussi-next will be removed when both of the following conditions are met:
- condenser-next is live
- wallet-next is live
Relevant developers are encouraged to complete the migration of these projects as soon as possible. If you have any questions or need assistance, please feel free to leave a comment below.
Upvoted! Thank you for supporting witness @jswit.