{"_id":"@adduce/sdk","_rev":"2-a091c6b868b2848f465b13bd4d5dcc6e","name":"@adduce/sdk","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@adduce/sdk","version":"0.1.0","keywords":["solana","legal-aid","credentials","zk-proofs","groth16","sas"],"license":"SEE LICENSE IN ../LICENSE","_id":"@adduce/sdk@0.1.0","maintainers":[{"name":"sahu-01","email":"ankita.sahuof1@gmail.com"}],"dist":{"shasum":"1dc9a8d315f72301d5b22a52cde2715b9b32f756","tarball":"https://registry.npmjs.org/@adduce/sdk/-/sdk-0.1.0.tgz","fileCount":4,"integrity":"sha512-0a47+SvOnD9K7iQYoSTGQuIAc4Td4Mc30J9miLN438AWTjS8rziNkpPAf2Ui5RFHibPnY8ypVV661c+OMM8B3g==","signatures":[{"sig":"MEQCIHoHMnBm4e/dUct/kuxAodckAwohH4fBX4fsuFljEzH6AiBLEX4lgW/iBQ1N+iKwvSOzAOH1HpR2mL0zQTymKGiX1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27572},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0101907eddd4e5b9017d493064ca9f388a5015ad","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"sahu-01","email":"ankita.sahuof1@gmail.com"},"_npmVersion":"10.9.2","description":"Adduce SDK: Issue, Prove, Settle legal aid credentials on Solana","directories":{},"_nodeVersion":"23.8.0","dependencies":{"sas-lib":"^1.0.10","@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.32.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3"},"peerDependencies":{"snarkjs":"^0.7.4","circomlibjs":"^0.1.7","@irys/upload":"^0.0.15","@irys/upload-solana":"^0.1.8","@lightprotocol/stateless.js":"^0.23.3"},"peerDependenciesMeta":{"snarkjs":{"optional":true},"circomlibjs":{"optional":true},"@irys/upload":{"optional":true},"@irys/upload-solana":{"optional":true},"@lightprotocol/stateless.js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1778005187550_0.5559074246941051","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@adduce/sdk","version":"0.1.1","description":"Adduce SDK: Issue, Prove, Settle legal aid credentials on Solana","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc && cp src/idl.json dist/idl.json","prepublishOnly":"npm run build"},"keywords":["solana","legal-aid","credentials","zk-proofs","groth16","sas"],"license":"SEE LICENSE IN ../LICENSE","dependencies":{"@coral-xyz/anchor":"^0.32.1","@solana/web3.js":"^1.98.0","sas-lib":"^1.0.10"},"devDependencies":{"typescript":"^5.7.3"},"peerDependencies":{"snarkjs":"^0.7.4","circomlibjs":"^0.1.7","@irys/upload":"^0.0.15","@irys/upload-solana":"^0.1.8","@lightprotocol/stateless.js":"^0.23.3"},"peerDependenciesMeta":{"snarkjs":{"optional":true},"circomlibjs":{"optional":true},"@irys/upload":{"optional":true},"@irys/upload-solana":{"optional":true},"@lightprotocol/stateless.js":{"optional":true}},"_id":"@adduce/sdk@0.1.1","gitHead":"527142b1a30d6db838a1deeabc9cc524ccbd1a32","_nodeVersion":"23.8.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-iymRb/zSpnUZLJSbrOvcyMkHkTVNgJDc7VHbtPdkBcdsqSSL08gemf7hP0t9uJktTdsOBu7WcFd0dee7uOi3QQ==","shasum":"14543aea009b55d6db7b1c4497cd20e434a54794","tarball":"https://registry.npmjs.org/@adduce/sdk/-/sdk-0.1.1.tgz","fileCount":5,"unpackedSize":59851,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDSCzth4FtrBvv75qughwCxWmuIMYQFxzia627lU7x4MgIgWSEzV1GkorU9b8Zwxa8C4DAucNJB//Rw63XGblOKAc8="}]},"_npmUser":{"name":"sahu-01","email":"ankita.sahuof1@gmail.com"},"directories":{},"maintainers":[{"name":"sahu-01","email":"ankita.sahuof1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.1.1_1778010674353_0.7686033428297021"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-05T18:19:47.442Z","modified":"2026-05-05T19:51:14.632Z","0.1.0":"2026-05-05T18:19:47.708Z","0.1.1":"2026-05-05T19:51:14.503Z"},"license":"SEE LICENSE IN ../LICENSE","keywords":["solana","legal-aid","credentials","zk-proofs","groth16","sas"],"description":"Adduce SDK: Issue, Prove, Settle legal aid credentials on Solana","maintainers":[{"name":"sahu-01","email":"ankita.sahuof1@gmail.com"}],"readme":"# @adduce/sdk\n\nIssue. Prove. Settle. Legal aid credentials on Solana.\n\n## Install\n\n```bash\nnpm install @adduce/sdk\n```\n\n## Quick Start\n\n```typescript\nimport { AdduceClient, Keypair } from \"@adduce/sdk\";\n\nconst wallet = Keypair.fromSecretKey(/* your keypair */);\nconst adduce = new AdduceClient({ cluster: \"devnet\", wallet });\n\n// Open a case (court authority)\nconst { casePda, lawyerCommitment } = await adduce.openCase({\n  caseId: \"CASE-DE-2025-001\",\n  lawyerPubkey: lawyerWallet.publicKey,\n  applicant: citizenWallet.publicKey,\n  authorizedAmount: 8500,\n}, \"DE\");\n\n// Store lawyerCommitment.salt securely: lawyer needs it later\n\n// Link credential (reviewer)\nawait adduce.linkCredential({\n  caseId: \"CASE-DE-2025-001\",\n  credentialAddress: sasPda,\n  commitmentRoot: poseidonRoot,\n}, \"DE\");\n\n// Anchor document (lawyer proves identity via salt)\nawait adduce.anchorDocument(\n  { caseId: \"CASE-DE-2025-001\", documentHash: sha256Hash },\n  lawyerCommitment.salt,\n  credentialAddress\n);\n\n// Close case (reviewer)\nawait adduce.closeCase(\"CASE-DE-2025-001\", credentialAddress, \"DE\");\n\n// Mark paid (payer)\nawait adduce.markPaid({\n  caseId: \"CASE-DE-2025-001\",\n  disbursedAmount: 8500,\n  paymentReference: \"INV-2025-04-001\",\n}, \"DE\");\n```\n\n## All 14 Instructions\n\n| Method | Role | What It Does |\n|--------|------|-------------|\n| `initialize()` | Authority | Create jurisdiction config |\n| `openCase()` | Authority | Open case with lawyer commitment + authorized amount |\n| `openCaseCustodial()` | Authority | Open case for citizen without wallet |\n| `linkCredential()` | Reviewer | Bind SAS credential to case (5-point validation) |\n| `anchorDocument()` | Lawyer | Anchor document hash (proves identity via salt) |\n| `closeCase()` | Reviewer | Close case (credential liveness re-checked) |\n| `markPaid()` | Payer | Record payment (amount validated, reference stored) |\n| `reassignLawyer()` | Authority | Switch lawyer with audit trail |\n| `updateCaseStatus()` | Reviewer | Non-linear: Stayed, Appealed, Withdrawn, Remanded |\n| `reopenCase()` | Authority | Closed back to InProgress with reason |\n| `verifyZkDisclosure()` | Anyone | Verify 256-byte Groth16 proof on-chain |\n| `addDelegate()` | Authority | Add delegate reviewer (max 3) |\n| `removeDelegate()` | Authority | Remove delegate |\n| `fundOperations()` | Authority | Top up operations wallet |\n\n## Read Operations\n\n```typescript\nconst case = await adduce.getCase(\"CASE-DE-2025-001\");\nconst config = await adduce.getConfig(\"DE\");\nconst allCases = await adduce.getAllCases();\nconst closedCases = await adduce.getCasesByStatus(\"Closed\");\n```\n\n## Utilities\n\n```typescript\nimport {\n  createLawyerCommitment,\n  verifyLawyerCommitment,\n  hashCitizenId,\n  deriveConfigPda,\n  deriveCasePda,\n} from \"@adduce/sdk\";\n\n// Generate lawyer commitment (court does this during openCase)\nconst { commitment, salt } = createLawyerCommitment(lawyerPubkey);\n\n// Verify lawyer commitment (anyone can check)\nconst valid = verifyLawyerCommitment(lawyerPubkey, salt, commitment);\n\n// Hash citizen ID for custodial cases\nconst idHash = hashCitizenId(\"DE-PERSONALAUSWEIS-L01234567\");\n\n// Derive PDA addresses\nconst [configPda] = deriveConfigPda(\"DE\");\nconst [casePda] = deriveCasePda(\"CASE-DE-2025-001\");\n```\n\n## Deployed Program\n\n| Resource | Address |\n|----------|---------|\n| Program | `3f1yBTY6xb6ESdzzb9LxAozv7uVsj9Y9AMEpnAwKJRNV` |\n| SAS Program | `22zoJMtdu4tQc2PzL74ZUT7FrwgB1Udec8DdW4yw4BdG` |\n| SAS Schema | `7uKMGSgup1UZ26MnptCCMCac6rqpe6vBNXET338cDeid` |\n","readmeFilename":"README.md"}