{"_id":"@solana/keychain-memory","_rev":"6-d2ba7cfa1a7bb432f196c7be0cce640b","name":"@solana/keychain-memory","dist-tags":{"latest":"2.0.0","beta":"2.0.0-beta.1"},"versions":{"0.0.0":{"name":"@solana/keychain-memory","version":"0.0.0","author":"","license":"ISC","_id":"@solana/keychain-memory@0.0.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"dist":{"shasum":"418d5241f538048e4fe4c2c243693f88767fbc88","tarball":"https://registry.npmjs.org/@solana/keychain-memory/-/keychain-memory-0.0.0.tgz","fileCount":1,"integrity":"sha512-geK/DjHayXHluLkOl3UbZcok7R9mRhFwfxxWs2co488CnH3aTvzdsEVJbSFXzxKNfYIaB2I3PGVpjTbnrzd6zA==","signatures":[{"sig":"MEQCIAw8DoXvR80fFpmsyObBxl/pQTXKgWncsy6vQI/mtu6nAiAu6M2EFGq326CstKz8D4tLVkMhX+zWW2jejJAywU+YsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241},"main":"index.js","type":"commonjs","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"solana-devs","email":"npm@solana.org"},"_npmVersion":"11.12.1","description":"","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/keychain-memory_0.0.0_1777557995667_0.5757148854915495","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@solana/keychain-memory","version":"1.2.0","keywords":["solana","signing","wallet","memory","keypair","ed25519","eddsa"],"author":{"name":"Solana Foundation"},"license":"MIT","_id":"@solana/keychain-memory@1.2.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"homepage":"https://github.com/solana-foundation/solana-keychain#readme","bugs":{"url":"https://github.com/solana-foundation/solana-keychain/issues"},"dist":{"shasum":"9adde4223dc82278e3afd790c65e188ef74df5b3","tarball":"https://registry.npmjs.org/@solana/keychain-memory/-/keychain-memory-1.2.0.tgz","fileCount":37,"integrity":"sha512-pTIMqYt2RQi10avLBrjMWpskjK65Aa0SMFGD1XNVi55cM5miBhICoCLvbJZX/jl1Dy4eYfycxaT8MMcxyIrxaQ==","signatures":[{"sig":"MEQCIFA6icGJgaVZmGTYZ7S2GmFRIs1FvgTCGX4MAtwcX0+zAiAUj5R/2t09nZP3qBWwcvASEC2fCcuGEzvvyLvnaUEPqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fkeychain-memory@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":74251},"main":"./dist/index.js","type":"module","_from":"file:.npm-pack/solana-keychain-memory-1.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc --build","clean":"rm -rf dist *.tsbuildinfo","test:unit":"vitest run --config ../../vitest.config.unit.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:watch:unit":"vitest --config ../../vitest.config.unit.ts","test:treeshakability":"agadoo dist/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:facc8433-dbdc-4c8e-8899-7266f1acfa5b"}},"_resolved":"/home/runner/work/solana-keychain/solana-keychain/typescript/.npm-pack/solana-keychain-memory-1.2.0.tgz","_integrity":"sha512-pTIMqYt2RQi10avLBrjMWpskjK65Aa0SMFGD1XNVi55cM5miBhICoCLvbJZX/jl1Dy4eYfycxaT8MMcxyIrxaQ==","repository":{"url":"git+https://github.com/solana-foundation/solana-keychain.git","type":"git"},"_npmVersion":"11.11.0","description":"In-memory Ed25519 keypair signer for Solana transactions","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"@solana/keychain-core":"1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@solana/kit":"^6.0.1","@solana/keys":"^6.0.1","@solana/signers":"^6.0.1","@solana/addresses":"^6.0.1","@solana/transactions":"^6.0.1","@solana/codecs-strings":"^6.0.1","@solana/keychain-test-utils":"1.2.0"},"peerDependencies":{"@solana/keys":">=6.0.1","@solana/signers":">=6.0.1","@solana/addresses":">=6.0.1","@solana/transactions":">=6.0.1","@solana/codecs-strings":">=6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/keychain-memory_1.2.0_1777559517153_0.7107520582102245","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@solana/keychain-memory","version":"1.3.0","keywords":["solana","signing","wallet","memory","keypair","ed25519","eddsa"],"author":{"name":"Solana Foundation"},"license":"MIT","_id":"@solana/keychain-memory@1.3.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"homepage":"https://github.com/solana-foundation/solana-keychain#readme","bugs":{"url":"https://github.com/solana-foundation/solana-keychain/issues"},"dist":{"shasum":"982432fe8101529121b0c0de19fef1424eca2ff2","tarball":"https://registry.npmjs.org/@solana/keychain-memory/-/keychain-memory-1.3.0.tgz","fileCount":37,"integrity":"sha512-HSsYvUmwEbq2kOHcTKyos1Jf6VRjsojfUp25FCvkZX1ve+R+gQ9AQ3kkQBbGvK4jNhPQOOT4P+qPFIWFN+zBYA==","signatures":[{"sig":"MEUCIE7N6nbkfmNZF7m3lGnHni+3Y3lHXGcu6kMKQcn9XwAGAiEA7p/caQFjiRlZp373GWSk1aFu/uUzxJLuNyJquDM78IM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fkeychain-memory@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":74251},"main":"./dist/index.js","type":"module","_from":"file:.npm-pack/solana-keychain-memory-1.3.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc --build","clean":"rm -rf dist *.tsbuildinfo","test:unit":"vitest run --config ../../vitest.config.unit.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:watch:unit":"vitest --config ../../vitest.config.unit.ts","test:treeshakability":"agadoo dist/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:facc8433-dbdc-4c8e-8899-7266f1acfa5b"}},"_resolved":"/home/runner/work/solana-keychain/solana-keychain/typescript/.npm-pack/solana-keychain-memory-1.3.0.tgz","_integrity":"sha512-HSsYvUmwEbq2kOHcTKyos1Jf6VRjsojfUp25FCvkZX1ve+R+gQ9AQ3kkQBbGvK4jNhPQOOT4P+qPFIWFN+zBYA==","repository":{"url":"git+https://github.com/solana-foundation/solana-keychain.git","type":"git"},"_npmVersion":"11.13.0","description":"In-memory Ed25519 keypair signer for Solana transactions","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@solana/keychain-core":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@solana/kit":"^6.9.0","@solana/keys":"^6.9.0","@solana/signers":"^6.9.0","@solana/addresses":"^6.9.0","@solana/transactions":"^6.9.0","@solana/codecs-strings":"^6.9.0","@solana/keychain-test-utils":"1.3.0"},"peerDependencies":{"@solana/keys":">=6.0.1","@solana/signers":">=6.0.1","@solana/addresses":">=6.0.1","@solana/transactions":">=6.0.1","@solana/codecs-strings":">=6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/keychain-memory_1.3.0_1780343579145_0.44254515700021546","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@solana/keychain-memory","version":"1.4.0","keywords":["solana","signing","wallet","memory","keypair","ed25519","eddsa"],"author":{"name":"Solana Foundation"},"license":"MIT","_id":"@solana/keychain-memory@1.4.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"homepage":"https://github.com/solana-foundation/solana-keychain#readme","bugs":{"url":"https://github.com/solana-foundation/solana-keychain/issues"},"dist":{"shasum":"152104d2516ef2ec7d729391ceeff96ba4884abf","tarball":"https://registry.npmjs.org/@solana/keychain-memory/-/keychain-memory-1.4.0.tgz","fileCount":37,"integrity":"sha512-QzxOTZY5gtvIOSJblhprcReWITJbCcL+SAHCqzxd1PZD0Q3CJi32y9faWhojZYvIga8T2uE1uIK0hPStc5ec1Q==","signatures":[{"sig":"MEYCIQC9oJydqsfSWC7k4G2eJ1+S9SknQaepPQzCKfyHm9WdZgIhAI6oYfn/OK/nMWaZjCLLVbGagp4W9nOpXd0BzMU5S44J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fkeychain-memory@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":74251},"main":"./dist/index.js","type":"module","_from":"file:.npm-pack/solana-keychain-memory-1.4.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc --build","clean":"rm -rf dist *.tsbuildinfo","test:unit":"vitest run --config ../../vitest.config.unit.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:watch:unit":"vitest --config ../../vitest.config.unit.ts","test:treeshakability":"agadoo dist/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:facc8433-dbdc-4c8e-8899-7266f1acfa5b"}},"_resolved":"/home/runner/work/solana-keychain/solana-keychain/typescript/.npm-pack/solana-keychain-memory-1.4.0.tgz","_integrity":"sha512-QzxOTZY5gtvIOSJblhprcReWITJbCcL+SAHCqzxd1PZD0Q3CJi32y9faWhojZYvIga8T2uE1uIK0hPStc5ec1Q==","repository":{"url":"git+https://github.com/solana-foundation/solana-keychain.git","type":"git"},"_npmVersion":"11.13.0","description":"In-memory Ed25519 keypair signer for Solana transactions","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@solana/keychain-core":"1.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@solana/kit":"^6.9.0","@solana/keys":"^6.9.0","@solana/signers":"^6.9.0","@solana/addresses":"^6.9.0","@solana/transactions":"^6.9.0","@solana/codecs-strings":"^6.9.0","@solana/keychain-test-utils":"1.4.0"},"peerDependencies":{"@solana/keys":">=6.0.1","@solana/signers":">=6.0.1","@solana/addresses":">=6.0.1","@solana/transactions":">=6.0.1","@solana/codecs-strings":">=6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/keychain-memory_1.4.0_1782165237770_0.8059263734236592","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-beta.1":{"name":"@solana/keychain-memory","version":"2.0.0-beta.1","keywords":["solana","signing","wallet","memory","keypair","ed25519","eddsa"],"author":{"name":"Solana Foundation"},"license":"MIT","_id":"@solana/keychain-memory@2.0.0-beta.1","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"homepage":"https://github.com/solana-foundation/solana-keychain#readme","bugs":{"url":"https://github.com/solana-foundation/solana-keychain/issues"},"dist":{"shasum":"b41b95948c33ee04867ba5e4ea2ab54d5f2f9430","tarball":"https://registry.npmjs.org/@solana/keychain-memory/-/keychain-memory-2.0.0-beta.1.tgz","fileCount":37,"integrity":"sha512-AGe4NTwaBuFVtpd7jfqT1MBL12LISQ1jG38Z3ctwIRk7+pcrH/RwG0sDjqSth2BuA5vOeemkaN741L+SpNjMig==","signatures":[{"sig":"MEUCIQC7qyzRoP/msxCooJ4xlhlCEchPbsA45ApoafkhMnnZ0QIgZL5lM+wvLYlD2dNbbat7UjAPNzOqatQhoMI5k2Ep/a4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fkeychain-memory@2.0.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":83664},"main":"./dist/index.js","type":"module","_from":"file:.npm-pack/solana-keychain-memory-2.0.0-beta.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc --build","clean":"rm -rf dist *.tsbuildinfo","test:unit":"vitest run --config ../../vitest.config.unit.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:watch:unit":"vitest --config ../../vitest.config.unit.ts","test:treeshakability":"agadoo dist/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:facc8433-dbdc-4c8e-8899-7266f1acfa5b"}},"_resolved":"/home/runner/work/solana-keychain/solana-keychain/typescript/.npm-pack/solana-keychain-memory-2.0.0-beta.1.tgz","_integrity":"sha512-AGe4NTwaBuFVtpd7jfqT1MBL12LISQ1jG38Z3ctwIRk7+pcrH/RwG0sDjqSth2BuA5vOeemkaN741L+SpNjMig==","repository":{"url":"git+https://github.com/solana-foundation/solana-keychain.git","type":"git"},"_npmVersion":"11.17.0","description":"In-memory Ed25519 keypair signer for Solana transactions","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@solana/keychain-core":"2.0.0-beta.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@solana/kit":"8.0.0","@solana/keys":"8.0.0","@solana/signers":"8.0.0","@solana/addresses":"8.0.0","@solana/transactions":"8.0.0","@solana/codecs-strings":"8.0.0","@solana/keychain-test-utils":"2.0.0-beta.1"},"peerDependencies":{"@solana/keys":">=8.0.0","@solana/signers":">=8.0.0","@solana/addresses":">=8.0.0","@solana/transactions":">=8.0.0","@solana/codecs-strings":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/keychain-memory_2.0.0-beta.1_1787847749566_0.997114773347469","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"_id":"@solana/keychain-memory@2.0.0","bugs":{"url":"https://github.com/solana-foundation/solana-keychain/issues"},"dist":{"shasum":"25cbb94dc6b43cb9d89d6b106637d226406d5aba","tarball":"https://registry.npmjs.org/@solana/keychain-memory/-/keychain-memory-2.0.0.tgz","fileCount":37,"integrity":"sha512-DkNEdX+lXd5Z6QAKW7dz/j79v7PSlZVUYDv1HtFGjqSNzen3uXkHb73tI/MOnbW5HebWdKpxFxmu57IhylBuYg==","signatures":[{"sig":"MEYCIQC8MxjmddXnTuq/X9sMs6xfawI2iNh7xn54Y2c5Y6YtNQIhAMQ1W3KX5Xva9GLp+F6R1NHDUUjnyYsVxfXlU6jOiHYu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEj3i75xkrZdvBW1dy5BpQIXQDI7DL0SlinmZevEOycmAiA/koPSTN06nVYk3q/m9ataa/LQgKmme0nQkLygEz0nfQ=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fkeychain-memory@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":83063},"main":"./dist/index.js","name":"@solana/keychain-memory","type":"module","_from":"file:.npm-pack/solana-keychain-memory-2.0.0.tgz","types":"./dist/index.d.ts","author":{"name":"Solana Foundation"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"license":"MIT","scripts":{"test":"vitest run","build":"tsc --build","clean":"rm -rf dist *.tsbuildinfo","test:unit":"vitest run --config ../../vitest.config.unit.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:watch:unit":"vitest --config ../../vitest.config.unit.ts","test:treeshakability":"agadoo dist/index.js"},"version":"2.0.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"facc8433-dbdc-4c8e-8899-7266f1acfa5b"}},"homepage":"https://github.com/solana-foundation/solana-keychain#readme","keywords":["solana","signing","wallet","memory","keypair","ed25519","eddsa"],"_resolved":"/home/runner/work/solana-keychain/solana-keychain/typescript/.npm-pack/solana-keychain-memory-2.0.0.tgz","_integrity":"sha512-DkNEdX+lXd5Z6QAKW7dz/j79v7PSlZVUYDv1HtFGjqSNzen3uXkHb73tI/MOnbW5HebWdKpxFxmu57IhylBuYg==","repository":{"url":"git+https://github.com/solana-foundation/solana-keychain.git","type":"git"},"_npmVersion":"11.19.0","description":"In-memory Ed25519 keypair signer for Solana transactions","directories":{},"maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"@solana/keychain-core":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@solana/kit":"8.3.0","@solana/keys":"8.3.0","@solana/signers":"8.3.0","@solana/addresses":"8.3.0","@solana/transactions":"8.3.0","@solana/codecs-strings":"8.3.0","@solana/keychain-test-utils":"2.0.0"},"peerDependencies":{"@solana/keys":">=8.1.0","@solana/signers":">=8.1.0","@solana/addresses":">=8.1.0","@solana/transactions":">=8.1.0","@solana/codecs-strings":">=8.1.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/keychain-memory_2.0.0_1790868976939_0.09033078493220814"}}},"time":{"created":"2026-04-30T14:06:35.526Z","modified":"2026-10-01T15:36:19.145Z","0.0.0":"2026-04-30T14:06:35.805Z","1.2.0":"2026-04-30T14:31:57.286Z","1.3.0":"2026-06-01T19:52:59.303Z","1.4.0":"2026-06-22T21:53:57.921Z","2.0.0-beta.1":"2026-08-27T16:22:29.726Z","2.0.0":"2026-10-01T15:36:17.031Z"},"bugs":{"url":"https://github.com/solana-foundation/solana-keychain/issues"},"author":{"name":"Solana Foundation"},"license":"MIT","homepage":"https://github.com/solana-foundation/solana-keychain#readme","keywords":["solana","signing","wallet","memory","keypair","ed25519","eddsa"],"repository":{"url":"git+https://github.com/solana-foundation/solana-keychain.git","type":"git"},"description":"In-memory Ed25519 keypair signer for Solana transactions","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"readme":"# @solana/keychain-memory\n\nIn-memory Ed25519 keypair signer for Solana transactions.\n\nThe private key never leaves the local process — all signing happens via the Web Crypto API. Useful for development, integration tests, and server-side signing where a remote vendor is overkill.\n\n## Installation\n\n```bash\npnpm add @solana/keychain-memory\n```\n\n## Usage\n\n### From a Solana CLI keypair file\n\n```typescript\nimport { createMemorySignerFromKeypairFile } from '@solana/keychain-memory';\n\nconst signer = await createMemorySignerFromKeypairFile('/path/to/id.json');\nconsole.log('Signer address:', signer.address);\n```\n\n### From a base58 private key string\n\n```typescript\nimport { createMemorySignerFromPrivateKeyString } from '@solana/keychain-memory';\n\nconst signer = await createMemorySignerFromPrivateKeyString(process.env.SOLANA_PRIVATE_KEY!);\n```\n\n### From a U8Array string (Solana CLI inline format)\n\n```typescript\nimport { createMemorySignerFromPrivateKeyString } from '@solana/keychain-memory';\n\nconst signer = await createMemorySignerFromPrivateKeyString('[1, 2, 3, ..., 64]');\n```\n\n### From raw bytes\n\nAccepts either a 64-byte Solana CLI keypair (seed concatenated with public key — seed↔pubkey match is validated) or a 32-byte Ed25519 seed (public key derived).\n\n```typescript\nimport { createMemorySignerFromBytes } from '@solana/keychain-memory';\n\n// 64 bytes: Solana CLI format\nconst signer = await createMemorySignerFromBytes(solanaCliKeypairBytes);\n\n// 32 bytes: raw Ed25519 seed (e.g. exported from generateKey)\nconst signerFromSeed = await createMemorySignerFromBytes(seed32);\n```\n\n### From an existing CryptoKeyPair\n\n```typescript\nimport { generateKeyPair } from '@solana/keys';\nimport { createMemorySignerFromKeyPair } from '@solana/keychain-memory';\n\nconst keyPair = await generateKeyPair();\nconst signer = await createMemorySignerFromKeyPair(keyPair);\n```\n\n### Unified factory\n\n```typescript\nimport { createMemorySigner } from '@solana/keychain-memory';\n\nconst signer = await createMemorySigner({\n    privateKeyString: process.env.SOLANA_PRIVATE_KEY!,\n});\n```\n\nProvide exactly one of: `keyPair`, `privateKey`, `privateKeyString`, `privateKeyPath`.\n\n### Sign messages and transactions\n\n```typescript\nimport { createSignableMessage } from '@solana/signers';\n\nconst message = createSignableMessage('Hello, Solana!');\nconst [messageSignatures] = await signer.signMessages([message]);\n\nconst [transactionSignatures] = await signer.signTransactions([transaction]);\n```\n\n### Check availability\n\n```typescript\nconst available = await signer.isAvailable(); // always true\n```\n\n## API Reference\n\n### `createMemorySigner(config)`\n\nReturns `Promise<SolanaTransactionSigner & SolanaMessageSigner>`.\n\nConfig (`MemorySignerConfig`):\n- `keyPair?: CryptoKeyPair` — pre-built CryptoKeyPair (e.g. from `generateKeyPair`)\n- `privateKey?: Uint8Array` — 64-byte Solana keypair (seed‖pubkey, validated) OR 32-byte Ed25519 seed (pubkey derived)\n- `privateKeyString?: string` — base58 OR U8Array string `\"[1, 2, ..., 64]\"`\n- `privateKeyPath?: string` — path to a Solana CLI keypair JSON file (Node-only)\n\n### Named factories\n\n- `createMemorySignerFromKeyPair(keyPair)`\n- `createMemorySignerFromBytes(privateKey)`\n- `createMemorySignerFromPrivateKeyString(privateKeyString)` — auto-detects base58 vs U8Array\n- `createMemorySignerFromKeypairFile(privateKeyPath)` — Node-only\n\n## Security Notes\n\n- The private key is held in memory as a non-extractable `CryptoKey` — it cannot be exported back to bytes.\n- Do not hardcode private keys in source files. Use environment variables, secret managers, or operator-supplied keypair files.\n- For production wallets, prefer a remote signer backend (AWS KMS, GCP KMS, Turnkey, Privy, etc.).\n","readmeFilename":"README.md"}