kira-wallet 0.1.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/THIRD_PARTY_NOTICES.md +9 -0
- package/chain_lifecycle.py +44 -0
- package/docs/AGENT_TOOLS.md +8 -0
- package/docs/ALCHEMY_SETUP.md +3 -2
- package/docs/FREE_RPC.md +83 -1
- package/docs/ONBOARDING_CHAT_CONTRACT.md +23 -0
- package/docs/RELEASE.md +46 -4
- package/kira_agent.py +192 -13
- package/kira_config.py +17 -2
- package/kira_jobs.py +19 -2
- package/kira_research_tools.py +22 -2
- package/onchain.cjs +23 -9
- package/package.json +4 -2
- package/pipeline-onchain.cjs +30 -3
- package/public_discovery.py +20 -7
- package/rpc-pool.cjs +56 -16
- package/sources/known-tokens.json +87 -1
- package/sources/rpc-candidates.json +16 -7
- package/transfer_discovery.py +163 -0
- package/viewer/details.py +7 -2
- package/viewer/model.py +25 -2
- package/viewer/static/agent.js +4 -4
- package/viewer/static/app.js +21 -5
- package/viewer/static/jobs.js +7 -3
- package/viewer/static/workspace-model.js +26 -3
- package/wallet.py +53 -5
package/README.md
CHANGED
|
@@ -47,7 +47,7 @@ include the same package and its checksum.
|
|
|
47
47
|
ERC20 discovery. Free token sources have limited coverage; incomplete coverage
|
|
48
48
|
stays visible. An AI or browser wallet connection does not enable an indexer.
|
|
49
49
|
2. **Add a watching wallet.** Paste a public address and give it a name. Add more
|
|
50
|
-
wallets whenever you need them. The form starts free research of native, common tokens and Mint Club assets, with keyless discovery on
|
|
50
|
+
wallets whenever you need them. The form starts free research of native, common tokens and Mint Club assets, with keyless ERC20 transfer discovery on Ethereum, Base, Optimism, Arbitrum, Polygon and BNB. RPC checks candidate balances; unfinished history remains visible. First balances appear before detailed research finishes.
|
|
51
51
|
3. **Connect your AI.** Install and sign in to the
|
|
52
52
|
[Codex CLI](https://developers.openai.com/codex/cli) or
|
|
53
53
|
[Claude Code](https://code.claude.com/docs/en/quickstart), then choose your
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -34,3 +34,12 @@ chain/contract identities from Uniswap default-token-list at commit
|
|
|
34
34
|
583cb696cc15778536fe0ddd416de5bd81be2023. The upstream references retain
|
|
35
35
|
GPL-3.0 terms in `sources/TOKEN_LIST_LICENSE.txt`. Per-contract provenance is
|
|
36
36
|
recorded in the catalog. No upstream executable code or artwork is included.
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
Free token discovery uses [Etherscan keyless MCP](https://docs.etherscan.io/build-with-ai/mcp)
|
|
40
|
+
and [Routescan](https://routescan.io/docs). Data is provided by those services,
|
|
41
|
+
subject to their availability and usage limits. Their data does not establish
|
|
42
|
+
token safety, current balance, value or an exhaustive inventory. No service SDK
|
|
43
|
+
or credential is distributed. Selected new known identities use issuer documents,
|
|
44
|
+
PancakeSwap integration references and freshly verified on-chain metadata; their
|
|
45
|
+
per-contract provenance is in the catalog.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""Reviewed notices are separate from reachability and token discovery."""
|
|
2
|
+
REVIEWED_ON='2026-10-11'
|
|
3
|
+
# A retrieved network reference is not a live health or perpetual-active claim.
|
|
4
|
+
REFERENCES={
|
|
5
|
+
1:'https://ethereum.org/developers/docs/networks/',11155111:'https://ethereum.org/developers/docs/networks/',
|
|
6
|
+
8453:'https://docs.base.org/get-started/connect-to-base',84532:'https://docs.base.org/get-started/connect-to-base',
|
|
7
|
+
81457:'https://docs.blast.io/building/network-information',168587773:'https://docs.blast.io/building/network-information',
|
|
8
|
+
10:'https://docs.optimism.io/op-stack/introduction/op-stack',42161:'https://docs.arbitrum.io/chain-info',
|
|
9
|
+
43114:'https://build.avax.network/docs/primary-network',43113:'https://build.avax.network/docs/primary-network',
|
|
10
|
+
137:'https://docs.polygon.technology/pos/reference/rpc-endpoints',
|
|
11
|
+
56:'https://docs.bnbchain.org/bnb-smart-chain/developers/networkinfo/',
|
|
12
|
+
109:'https://docs.shib.io/get-started/shibarium',157:'https://docs.shib.io/get-started/shibarium',
|
|
13
|
+
7560:'https://docs.cyber.co/network-info/overview',111557560:'https://docs.cyber.co/network-info/overview',
|
|
14
|
+
5112:'https://docs.ham.fun/',8217:'https://docs.kaia.io/build/get-started/foundation-setup/',
|
|
15
|
+
130:'https://developers.uniswap.org/docs/unichain',7777777:'https://docs.zora.co/zora-network/network',
|
|
16
|
+
33139:'https://docs.apechain.com/chain-info',177:'https://docs.hsk.xyz/docs/Build-on-HashKey-Chain/network-info',
|
|
17
|
+
4663:'https://docs.robinhood.com/chain/connecting/',54176:'https://docs.over.network/',
|
|
18
|
+
}
|
|
19
|
+
UNAVAILABLE_REFERENCES={56,7777777,33139,54176}
|
|
20
|
+
NOTICES={
|
|
21
|
+
666666666:{'status':'retired','verified':True,'reviewed_on':REVIEWED_ON,
|
|
22
|
+
'notice_url':'https://www.alchemy.com/docs/reference/degen-deprecation-notice',
|
|
23
|
+
'network_shutdown_date':None,'provider_support_ended_on':'2026-08-31',
|
|
24
|
+
'note':'Alchemy describes Degen L3 as shut down. Its provider support ended August 31. The exact network shutdown date is not independently established. Base DEGEN is a separate token.'},
|
|
25
|
+
5112:{'status':'retirement_reported','verified':False,'reviewed_on':REVIEWED_ON,
|
|
26
|
+
'notice_url':None,'reference_url':'https://docs.ham.fun/',
|
|
27
|
+
'note':'The operator reports Ham has stopped. A primary closure notice has not been located. Failed reads do not establish closure.'},
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def lifecycle(chain_id):
|
|
32
|
+
state=dict(NOTICES.get(chain_id,{'status':'unconfirmed','verified':False,
|
|
33
|
+
'notice_url':None,'note':'No verified retirement notice is recorded. Connectivity and discovery are separate observations.'}))
|
|
34
|
+
state.update(reference_url=REFERENCES.get(chain_id,state.get('reference_url')),
|
|
35
|
+
reviewed_on=REVIEWED_ON if chain_id in REFERENCES or chain_id in NOTICES else None,
|
|
36
|
+
audit_result='reference_unavailable' if chain_id in UNAVAILABLE_REFERENCES else 'reference_retrieved' if chain_id in REFERENCES else 'notice_reviewed' if chain_id in NOTICES else 'not_reviewed')
|
|
37
|
+
if chain_id==8217:
|
|
38
|
+
state['provider_notice']={'provider':'The Graph','support_ended_on':'2026-08-31','url':'https://docs.kaia.io/build/tools/indexers/','note':'Indexer support ended. This does not establish network retirement.'}
|
|
39
|
+
return state
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def retired(chain_id):
|
|
43
|
+
state=lifecycle(chain_id)
|
|
44
|
+
return state['status']=='retired' and state['verified'] is True
|
package/docs/AGENT_TOOLS.md
CHANGED
|
@@ -82,6 +82,14 @@ on-chain checkpoint status. Deferred candidates and pending networks are not
|
|
|
82
82
|
failed reads or zero holdings. Historical observations cannot establish current
|
|
83
83
|
execution, transfers or realized profit.
|
|
84
84
|
|
|
85
|
+
`records_read` executes one bounded plan of up to eight declared read tools.
|
|
86
|
+
Each child has its own host receipt. Literal JSON read requests are matched
|
|
87
|
+
against their actual arguments, including chain and contract. Full inventory
|
|
88
|
+
requests require contiguous delivered pages through `next_offset: null`.
|
|
89
|
+
Failed or undelivered pages remain unread, with retry arguments in the turn's
|
|
90
|
+
`read_completion`. Automatic context is not a requested tool receipt. This
|
|
91
|
+
bounded check does not verify every semantic requirement in natural prose.
|
|
92
|
+
|
|
85
93
|
rpc_status pending means a network has not yet been researched. It does not
|
|
86
94
|
prove an RPC outage. For a curve comparison, match chain and contract and
|
|
87
95
|
compare reserve, supply, next-mint price and royalty observations. A newer
|
package/docs/ALCHEMY_SETUP.md
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# Connect Alchemy to Kira
|
|
2
2
|
|
|
3
3
|
Kira works with free public RPC by default. It checks native assets, selected
|
|
4
|
-
common token contracts and the Mint Club registry
|
|
5
|
-
|
|
4
|
+
common token contracts and the Mint Club registry, and uses keyless transfer
|
|
5
|
+
discovery on supported networks. Unfinished history and other ERC20 holdings
|
|
6
|
+
may still be missing. For broader token discovery, connect your own Alchemy account.
|
|
6
7
|
Kira runs these requests locally and does not operate a hosted relay.
|
|
7
8
|
|
|
8
9
|
## Create an Alchemy app
|
package/docs/FREE_RPC.md
CHANGED
|
@@ -7,7 +7,10 @@ effort and can throttle requests or omit historical state.
|
|
|
7
7
|
The reviewed default catalog adds alternatives on Ethereum, Base, BNB Chain,
|
|
8
8
|
Polygon, Arbitrum and Optimism. PublicNode is the initial preference. Reserves
|
|
9
9
|
are selected per chain rather than downloaded from an untrusted runtime list.
|
|
10
|
-
|
|
10
|
+
Shibarium and Puppynet use the current official Shib endpoints. Cyber mainnet
|
|
11
|
+
adds the official Superchain registry endpoint. Unverified replacements are
|
|
12
|
+
never accepted just because an endpoint returns HTTP 200. Some configured
|
|
13
|
+
networks can remain unavailable; their missing balances stay unknown.
|
|
11
14
|
|
|
12
15
|
## Request behavior
|
|
13
16
|
|
|
@@ -110,3 +113,82 @@ Primary references: [EIP-1898](https://eips.ethereum.org/EIPS/eip-1898),
|
|
|
110
113
|
[Circle contracts](https://developers.circle.com/stablecoins/usdc-contract-addresses),
|
|
111
114
|
[Tether contracts](https://tether.to/en/supported-protocols/),
|
|
112
115
|
[Uniswap Arbitrum deployments](https://developers.uniswap.org/docs/protocols/v3/deployments/v3-arbitrum-deployments).
|
|
116
|
+
|
|
117
|
+
## Recorded route evidence and remaining limits
|
|
118
|
+
|
|
119
|
+
Chain coverage includes `rpc_routes`: bounded aggregate logical endpoint outcomes
|
|
120
|
+
with public/custom class, endpoint index, method, outcome and count. Failures
|
|
121
|
+
can include HTTP or RPC error codes. A successful read can follow failed public
|
|
122
|
+
attempts; configuring public first does not prove every read was public.
|
|
123
|
+
Cooldown skips, queue timeouts and successes are distinct. The receipt contains
|
|
124
|
+
no endpoint URLs, keys, request arguments or balances. Cached checkpoints retain
|
|
125
|
+
their original evidence and routes; a resume is not a fresh observation.
|
|
126
|
+
|
|
127
|
+
A live October 10 check identified DNS failures on the old Shib endpoints,
|
|
128
|
+
Ham, Over and Cyber testnet. Current official Shib endpoints returned the correct
|
|
129
|
+
chain identities and supported hash-qualified balance reads. Cyber mainnet's
|
|
130
|
+
registry endpoint also passed. The official Cyber testnet replacement failed
|
|
131
|
+
certificate validation, so it was not added. Ham and Over have no verified
|
|
132
|
+
replacement in this catalog. This is an observation, not a claim that their
|
|
133
|
+
chains permanently stopped. Their failed checks remain visible.
|
|
134
|
+
|
|
135
|
+
Base public balance reads work independently of arbitrary token discovery.
|
|
136
|
+
In published 0.1.9, the keyless Base inventory was selected common contracts and Mint Club. The next candidate adds the Etherscan transfer path below.
|
|
137
|
+
Blockscout's current documentation deprecates per-instance APIs in favor of its
|
|
138
|
+
keyed PRO API. Kira does not promise keyless Base enumeration through that route.
|
|
139
|
+
The former 1RPC Base reserve returned HTTP 410 during block lookup and was
|
|
140
|
+
removed. PublicNode and dRPC remain verified Base candidates. The official Base
|
|
141
|
+
public endpoint returned HTTP 403 in this test and was not silently substituted.
|
|
142
|
+
|
|
143
|
+
Sources: [Shib network setup](https://docs.shib.io/get-started/deploy-contracts),
|
|
144
|
+
[Superchain registry](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.toml),
|
|
145
|
+
[Ham network information](https://docs.ham.fun/docs/network-information/),
|
|
146
|
+
[Blockscout API migration](https://docs.blockscout.com/devs/apis).
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
## Keyless transfer candidates
|
|
150
|
+
|
|
151
|
+
Kira uses [Etherscan keyless MCP](https://docs.etherscan.io/build-with-ai/mcp)
|
|
152
|
+
for ERC20 transfer identities on Ethereum, Base, Optimism, Arbitrum, Polygon
|
|
153
|
+
and BNB Smart Chain. This backend adapter needs no model MCP configuration,
|
|
154
|
+
API key, paid relay or shared credentials. Routescan remains available on
|
|
155
|
+
Avalanche and Blast. Standard RPC verifies each candidate at a canonical
|
|
156
|
+
pinned block. Transfer amounts never become wallet balances.
|
|
157
|
+
|
|
158
|
+
Each request scans at most three 100-record pages within the research budget.
|
|
159
|
+
A window ends at a block before a timestamp two minutes behind the local clock,
|
|
160
|
+
allowing for explorer indexing lag. Its block bounds and next page are saved
|
|
161
|
+
per wallet and chain. A later refresh continues unfinished history. Once a
|
|
162
|
+
window finishes, subsequent refreshes recheck a 2,048-block overlap, scan new
|
|
163
|
+
blocks and retain earlier candidate identities. A deeper reorg or older indexer
|
|
164
|
+
backfill can still omit identities. While older history is pending, one fresh
|
|
165
|
+
bounded page can find new receipts without replacing its saved frontier.
|
|
166
|
+
A 100-page or 10,000-contract safety limit remains
|
|
167
|
+
explicitly incomplete. Provider backfills, history limits, indexing lag and
|
|
168
|
+
unsupported networks can still omit tokens. A finished window is not proof
|
|
169
|
+
of a complete inventory. No majority-coverage promise is made.
|
|
170
|
+
|
|
171
|
+
The shared local request lane conservatively paces tool calls every two seconds.
|
|
172
|
+
HTTP 429 pauses that lane. It does not rotate accounts or evade provider limits.
|
|
173
|
+
Sessions stay in process memory. Saved evidence contains candidate contracts
|
|
174
|
+
and window facts, never MCP session IDs, credentials or transfer-derived balances.
|
|
175
|
+
No liquidity or dollar-value filter removes candidate identities. Spam transfers
|
|
176
|
+
can introduce irrelevant candidates. Only positive RPC balances enter holdings.
|
|
177
|
+
|
|
178
|
+
Earlier positive holdings, common known contracts and Mint Club identities
|
|
179
|
+
supplement candidate discovery. Targeted suspicious zeros receive up to eight
|
|
180
|
+
direct and qualified peer checks per chain, at the same pinned hash. Conflicting
|
|
181
|
+
or unavailable checks remain unknown. Ordinary zero-heavy registry scans do
|
|
182
|
+
not receive an unbounded peer fan-out.
|
|
183
|
+
|
|
184
|
+
## Network lifecycle
|
|
185
|
+
|
|
186
|
+
A verified retirement notice removes a network from new default research and
|
|
187
|
+
current valuation. Historical assets and timestamps remain available.
|
|
188
|
+
Connectivity, stale observed heads, token discovery and provider support loss
|
|
189
|
+
remain separate facts. Ham has an operator retirement report with no verified
|
|
190
|
+
primary closure notice. It is labelled explicitly, without recommending
|
|
191
|
+
Alchemy as a verified recovery path. Degen L3 is absent from the current catalog;
|
|
192
|
+
its reviewed Alchemy notice is separate from Base DEGEN. A responding archive
|
|
193
|
+
endpoint does not make a retired chain current. No bridge or migration outcome
|
|
194
|
+
is promised.
|
|
@@ -98,3 +98,26 @@ native default-model response checks with no wallet data. The provider save
|
|
|
98
98
|
used a synthetic local key reference and made no provider research request.
|
|
99
99
|
Real extension approval, personal OWS passphrases and live holdings coverage
|
|
100
100
|
are separate operator acceptance. Published 0.1.4 snapshots are not rewritten.
|
|
101
|
+
|
|
102
|
+
## Recorded value and history interpretation
|
|
103
|
+
|
|
104
|
+
`recorded_valuation` summarizes the full recorded mainnet inventory before any
|
|
105
|
+
holdings pagination. Native, Mint Club and other-token categories are disjoint.
|
|
106
|
+
Compact pages retain `exit_quote_recorded` when quote outputs are deferred.
|
|
107
|
+
A true flag requires reading the token details before judging the historical
|
|
108
|
+
quote. A false flag describes this snapshot, not the existence of an exit route.
|
|
109
|
+
Each category carries its own priced-position count and price observation range.
|
|
110
|
+
The all-priced total includes all three categories; it is never a Mint Club-only
|
|
111
|
+
denominator. Missing category prices remain null. Spot sums at separate, possibly
|
|
112
|
+
stale or indicative price times are not floors on current wealth or sale proceeds.
|
|
113
|
+
|
|
114
|
+
Snapshot comparisons state whether both quantities were observed. Missing earlier
|
|
115
|
+
or later quantities cannot establish or rule out receipts or disposals. Wider
|
|
116
|
+
discovery can explain newly visible records; causal history remains unknown.
|
|
117
|
+
Even equal endpoint quantities do not exclude intervening transfers. These facts
|
|
118
|
+
and rules reach both supported native providers. Generated prose is not rewritten
|
|
119
|
+
by keyword filters, so actual response quality still needs scoped verification.
|
|
120
|
+
`comparison_summary` supplies exact full-comparison counts by chain before
|
|
121
|
+
pagination. Missing earlier quantities, missing later quantities, equal and
|
|
122
|
+
different observations stay separate. These counts cover recorded non-native
|
|
123
|
+
token identities; they do not count native balances or infer transfer activity.
|
package/docs/RELEASE.md
CHANGED
|
@@ -94,12 +94,12 @@ python3 scripts/prepare-release.py
|
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
`prepare-release.py` scans the package boundary and creates
|
|
97
|
-
`dist/kira-wallet-0.1.
|
|
97
|
+
`dist/kira-wallet-0.1.10.tgz`. The ignored `dist/release.json` records its source
|
|
98
98
|
commit, SHA-256 and member count. It never publishes. After reviewing that
|
|
99
99
|
manifest, the operator's final command from the project root is:
|
|
100
100
|
|
|
101
101
|
```sh
|
|
102
|
-
npm publish ./dist/kira-wallet-0.1.
|
|
102
|
+
npm publish ./dist/kira-wallet-0.1.10.tgz --access public
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
Use the operator's npm account and complete authentication or OTP personally.
|
|
@@ -123,9 +123,9 @@ with untouched settings fields while preserving edited drafts.
|
|
|
123
123
|
|
|
124
124
|
The operator published **0.1.7** on October 9, 2026. Its archive is immutable.
|
|
125
125
|
|
|
126
|
-
##
|
|
126
|
+
## Published 0.1.8 behavior
|
|
127
127
|
|
|
128
|
-
The
|
|
128
|
+
The operator published **0.1.8** on October 9, 2026. Its archive is immutable.
|
|
129
129
|
It queues local connection imports during research, lets settings and price
|
|
130
130
|
updates preempt enrichment, preserves explicit cancellation, and checkpoints
|
|
131
131
|
wallet balance batches and market verification at fixed blocks. A 180-second
|
|
@@ -169,3 +169,45 @@ establish that native extension acceptance passed. Those actions still require
|
|
|
169
169
|
the operator's device handoff. Signing and trading remain outside Kira. Human-submitted OWS creation stores an encrypted wallet in the separate local OWS vault.
|
|
170
170
|
|
|
171
171
|
See [current UI evidence](https://github.com/realproject7/kira-wallet/blob/codex/kira-release/docs/KIRA_UI_REFINEMENT.md).
|
|
172
|
+
|
|
173
|
+
## Proposed 0.1.9 behavior
|
|
174
|
+
|
|
175
|
+
Version 0.1.9 permits a saved report's price update during detailed research,
|
|
176
|
+
with duplicate queued/running price feedback and existing automatic continuation.
|
|
177
|
+
Network empty states distinguish pending coverage, incomplete checks, completed
|
|
178
|
+
empty records and actual filter exclusion. Native facts include full-inventory
|
|
179
|
+
category valuation and explicit unknown activity causes. Public RPC configuration
|
|
180
|
+
updates verified Shib/Cyber routes and removes a failed Base reserve. Sanitized
|
|
181
|
+
route outcomes distinguish public-only acceptance from custom fallback. Bounded
|
|
182
|
+
route telemetry retains aggregate outcomes when detailed records reach their cap.
|
|
183
|
+
Compact agent facts retain historical quote presence even when outputs are deferred.
|
|
184
|
+
Snapshot comparisons provide exact full-comparison and per-chain counts before
|
|
185
|
+
pagination so native agents do not need to tally large position pages manually.
|
|
186
|
+
|
|
187
|
+
Publication remains an operator action. Post-publication acceptance uses two
|
|
188
|
+
clean installations of the same verified registry bytes: public/free only first,
|
|
189
|
+
then a clean reinstall with authorized Alchemy discovery and public-first backup.
|
|
190
|
+
Each lane begins without previous holdings, identity caches or RPC health.
|
|
191
|
+
Compare exact chain/contract identities, observations, coverage, route classes,
|
|
192
|
+
failures and runtime. Separate changed observation times from discovery effects.
|
|
193
|
+
The procedure does not treat partial free discovery as exhaustive or stale spot
|
|
194
|
+
sums as wealth floors. Private wallets, financial screenshots and local tickets
|
|
195
|
+
stay outside the package and public review.
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
## Next candidate: 0.1.10
|
|
199
|
+
|
|
200
|
+
This candidate adds saved keyless ERC20 transfer discovery on six core chains,
|
|
201
|
+
canonical RPC balance verification and explicit unfinished-history feedback.
|
|
202
|
+
It fixes public-first cold qualification budgeting, exposes sanitized saved
|
|
203
|
+
provider routes and authoritative coverage counts to native tools, and adds
|
|
204
|
+
bounded read plans with individual completion receipts. Failed account probes
|
|
205
|
+
are distinct from unsupported versions. Reviewed lifecycle notices and targeted
|
|
206
|
+
suspicious-zero checks preserve unknown and historical observations.
|
|
207
|
+
|
|
208
|
+
Publication is operator-only. Prepare the archive from the final reviewed clean
|
|
209
|
+
commit, run the required install and public checks, and test that exact archive
|
|
210
|
+
in isolated public-only and Alchemy auxiliary workspaces. The personal published
|
|
211
|
+
0.1.9 app and archive remain intact. The final release manifest records the
|
|
212
|
+
candidate source commit, digest and package members. Do not publish an
|
|
213
|
+
unreviewed development pack.
|