You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A Keyspace client library implemented in TypeScript. This client is also the basis for the Keyspace documentation.
Install Dependencies
bun install
Create Private Keys
secp256k1 (Ethereum EOA)
cast wallet new
P256 (secp256r1, Passkeys)
bun run scripts/create-p256-key.ts
Configuration
bun automatically loads environment variables from a .env file. Create a .env file in the root of the project.
touch .env
Environment Variable
Description
RPC_URL
Ethereum RPC URL for general RPC calls
BUNDLER_RPC_URL
Ethereum RPC URL for ERC-4337 calls
KEYSPACE_RPC_URL
Keyspace RPC URL
RECOVERY_RPC_URL
Recovery Service RPC URL
Scripts
Get Account
bun run scripts/get-account.ts
Argument
Environment Variable
Description
--private-key
PRIVATE_KEY
secp256k1 private key or P256 JWK
--signature-type
secp256k1 (default) or webauthn
Send ETH
bun run scripts/send-eth.ts
Argument
Environment Variable
Description
--account
The account of the keystore wallet to send from
--owner-index
The index of the owner (default: 0)
--initial-config-data
The initial config data needed to deploy the wallet
--private-key
PRIVATE_KEY
secp256k1 private key or P256 JWK
--to
The address to send to
--signature-type
secp256k1 (default) or webauthn
Make sure there's ETH in the account you're sending from. You can get the Ethereum address of the smart wallet by running bun run scripts/get-account.ts.
Change Owner
bun run scripts/change-owner.ts
Argument
Environment Variable
Description
--account
The account of the keystore wallet
--owner-index
The index of the owner (default: 0)
--initial-config-data
The initial config data needed to deploy the wallet
--private-key
PRIVATE_KEY
Current private key of the owner
--config-data
Current config data for the keystore wallet (hex string)
--owner-bytes
The owner bytes to change in the keystore wallet
--signature-type
secp256k1 (default) or webauthn
--remove
Flag to remove the owner instead of adding (optional)