Install
$ agentstack add skill-keep-starknet-strange-starknet-agentic-account-abstraction ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ● Dynamic code execution Used
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Account Abstraction
When to Use
- Reviewing account contract validation and execution paths.
- Designing session-key policy boundaries.
- Validating nonce and signature semantics.
When NOT to Use
- General contract authoring not involving account semantics.
Quick Start
- Confirm
__validate__enforces lightweight, bounded checks. - Confirm
__execute__enforces policy and selector boundaries. - Verify replay protections (nonce/domain separation) for all signature paths.
- Add regression tests for each fixed session-key or policy finding.
- Run
cairo-auditorfor final AA/security pass before merge.
Core Focus
__validate__constraints and DoS resistance.__execute__policy enforcement correctness.- Replay protection and domain separation.
- Privileged selector and self-call protection.
Workflow
- Main account-abstraction workflow: [default workflow](workflows/default.md)
References
- Module index: [references index](references/README.md)
starknet.js Example
import { Account, CallData, RpcProvider } from "starknet";
const provider = new RpcProvider({ nodeUrl: process.env.STARKNET_RPC! });
const account = new Account(provider, process.env.ACCOUNT_ADDRESS!, process.env.PRIVATE_KEY!);
// Validate preview (debug-only): inspect __validate__ behavior with the current nonce.
const nonce = await account.getNonce();
const call = { contractAddress: process.env.TARGET!, entrypoint: "set_limit", calldata: CallData.compile({ value: 7 }) };
await provider.callContract({
contractAddress: account.address,
entrypoint: "__validate__",
calldata: CallData.compile({ calls: [call], nonce }),
});
// Execute path: real transaction that triggers __execute__ and nonce checks.
const tx = await account.execute([call]);
await provider.waitForTransaction(tx.transaction_hash);
Error Codes and Recovery
| Code | Condition | Recovery | | --- | --- | --- | | AA-001 | __validate__ is too expensive or stateful | Remove heavy logic from validation; add a test that caps validation steps. | | AA-002 | __execute__ allows blocked selectors/self-calls | Enforce selector filters and self-call checks; add authorized/unauthorized regression tests. | | AA-003 | Nonce or domain mismatch causes replay risk | Normalize nonce source/hash domain; add replay and cross-domain tests. | | AA-999 | Unexpected runtime panic | Capture calldata + caller context, reproduce in unit tests, then escalate to cairo-auditor. |
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: keep-starknet-strange
- Source: keep-starknet-strange/starknet-agentic
- License: MIT
- Homepage: https://starknet-agentic.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.