{"_id":"@bastion-agentic-defense/sdk","_rev":"3-baf0fe278aba8d406a000db22ae4789e","name":"@bastion-agentic-defense/sdk","dist-tags":{"latest":"0.4.1"},"versions":{"0.2.0":{"name":"@bastion-agentic-defense/sdk","version":"0.2.0","keywords":["solana","anchor","bastion","security","ai-agents","firewall","audit","multichain"],"license":"MIT","_id":"@bastion-agentic-defense/sdk@0.2.0","maintainers":[{"name":"dedanzi","email":"mzidanfatonie@gmail.com"}],"dist":{"shasum":"ad4552133578948e05165fc23ce79ab9a6f4c60c","tarball":"https://registry.npmjs.org/@bastion-agentic-defense/sdk/-/sdk-0.2.0.tgz","fileCount":9,"integrity":"sha512-hEEGvP1v9qkcd2fRpCB+SB5Ladh4cKif1EOAPecR0teBEHrADTXrbsHfyaa8BKV5/AljQUUUnNiS/VlMN28l1g==","signatures":[{"sig":"MEUCIQD4OXPZJQmBuVfCQYFhC4eTYKFRXEb6Eicf9OsAPdtshAIgfHCQWl2lQpiT0uBZBpLLgrZH8jEXSCzJeWSkdwF9rMQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24519},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"dedanzi","email":"mzidanfatonie@gmail.com"},"repository":{"url":"https://github.com/bastion-defend/bastion.git","type":"git","directory":"packages/sdk"},"description":"TypeScript SDK for Bastion AI Agent Firewall. On-chain audit, agent registry, policy engine, and circuit breaker for Solana.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"borsh":"^1.0.0","@solana/web3.js":"^1.91.0","@coral-xyz/anchor":"^0.30.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@solana/web3.js":"^1.91.0","@coral-xyz/anchor":"^0.30.1"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1779169496322_0.2977350603955633","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bastion-agentic-defense/sdk","version":"0.4.0","keywords":["solana","anchor","bastion","security","ai-agents","firewall","audit","multichain"],"license":"Apache-2.0","_id":"@bastion-agentic-defense/sdk@0.4.0","maintainers":[{"name":"dedanzi","email":"mzidanfatonie@gmail.com"}],"homepage":"https://github.com/bastion-agentique/bastion#readme","bugs":{"url":"https://github.com/bastion-agentique/bastion/issues"},"dist":{"shasum":"1894ceb1f7c4b3cfa7093c624ba0dc0f1633bc90","tarball":"https://registry.npmjs.org/@bastion-agentic-defense/sdk/-/sdk-0.4.0.tgz","fileCount":10,"integrity":"sha512-O9IKtatPa8vveFvZAfScsr7ee0inChA/NpaAikGT2X39f4vGdledW9Nqp6L9GMOuLjRKG9GtWhBmM4cR3eTN1g==","signatures":[{"sig":"MEUCIQDT2Exww9sNXrTL5hrQ08I8kcpFCnKbQzWc4zyq2j0NFQIgIyb54Z6dL/6xivtUiR2ZP/5sf4AToqFi4dbRe76KUAY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52516},"main":"dist/index.js","_from":"file:bastion-agentic-defense-sdk-0.4.0.tgz","types":"dist/index.d.ts","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"dedanzi","email":"mzidanfatonie@gmail.com"},"_resolved":"/tmp/db45004ace9c19bc9575a648a34780c1/bastion-agentic-defense-sdk-0.4.0.tgz","_integrity":"sha512-O9IKtatPa8vveFvZAfScsr7ee0inChA/NpaAikGT2X39f4vGdledW9Nqp6L9GMOuLjRKG9GtWhBmM4cR3eTN1g==","repository":{"url":"git+https://github.com/bastion-agentique/bastion.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Bastion AI Agent Firewall. On-chain audit, agent registry, policy engine, and circuit breaker for Solana.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"borsh":"^1.0.0","@solana/web3.js":"^1.91.0","@coral-xyz/anchor":"^0.30.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@solana/web3.js":"^1.91.0","@coral-xyz/anchor":"^0.30.1"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.4.0_1780845615409_0.3171976042302984","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@bastion-agentic-defense/sdk","version":"0.4.1","description":"TypeScript SDK for Bastion AI Agent Firewall. On-chain audit, agent registry, policy engine, and circuit breaker for Solana.","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/bastion-agentique/bastion.git","directory":"packages/sdk"},"publishConfig":{"access":"public"},"dependencies":{"@coral-xyz/anchor":"^0.30.1","@solana/web3.js":"^1.91.0","borsh":"^1.0.0"},"devDependencies":{"@types/node":"^20.0.0","typescript":"^5.3.0"},"peerDependencies":{"@coral-xyz/anchor":"^0.30.1","@solana/web3.js":"^1.91.0"},"keywords":["solana","anchor","bastion","security","ai-agents","firewall","audit","multichain"],"license":"Apache-2.0","scripts":{"build":"tsc","test":"jest"},"_id":"@bastion-agentic-defense/sdk@0.4.1","bugs":{"url":"https://github.com/bastion-agentique/bastion/issues"},"homepage":"https://github.com/bastion-agentique/bastion#readme","_integrity":"sha512-RCUVOQ3MK8BqUvKdCeNPXlMqrB6+ZL8ANgHj8b/dDIKb7ItMSChGrnysTwfmF24iGLv/Cosp1z/igHEl2aGLnA==","_resolved":"/tmp/624116baa95bf131aaab6cc167ca3a03/bastion-agentic-defense-sdk-0.4.1.tgz","_from":"file:bastion-agentic-defense-sdk-0.4.1.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-RCUVOQ3MK8BqUvKdCeNPXlMqrB6+ZL8ANgHj8b/dDIKb7ItMSChGrnysTwfmF24iGLv/Cosp1z/igHEl2aGLnA==","shasum":"de61fa57caf999042b88d30a1b32c3349590ef12","tarball":"https://registry.npmjs.org/@bastion-agentic-defense/sdk/-/sdk-0.4.1.tgz","fileCount":10,"unpackedSize":52516,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBm+zD3Zfev9S3fPGrCv2pKShyobY6KQ+gsXhocCF+EMAiEA0Qrdofv/etSVPnzq4LuMkEM3/VPJ/5KvyAuEter8N68="}]},"_npmUser":{"name":"dedanzi","email":"mzidanfatonie@gmail.com"},"directories":{},"maintainers":[{"name":"dedanzi","email":"mzidanfatonie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.4.1_1780848460037_0.7022170046362057"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-19T05:44:56.237Z","modified":"2026-06-07T16:07:40.306Z","0.2.0":"2026-05-19T05:44:56.478Z","0.4.0":"2026-06-07T15:20:15.546Z","0.4.1":"2026-06-07T16:07:40.183Z"},"bugs":{"url":"https://github.com/bastion-agentique/bastion/issues"},"license":"Apache-2.0","homepage":"https://github.com/bastion-agentique/bastion#readme","keywords":["solana","anchor","bastion","security","ai-agents","firewall","audit","multichain"],"repository":{"type":"git","url":"git+https://github.com/bastion-agentique/bastion.git","directory":"packages/sdk"},"description":"TypeScript SDK for Bastion AI Agent Firewall. On-chain audit, agent registry, policy engine, and circuit breaker for Solana.","maintainers":[{"name":"dedanzi","email":"mzidanfatonie@gmail.com"}],"readme":"# Bastion SDK\n\nTypeScript SDK for interacting with the Bastion on-chain audit program and REST API.\n\n## Installation\n\n```bash\nnpm install @bastion-agentique/sdk\npnpm add @bastion-agentique/sdk\nyarn add @bastion-agentique/sdk\n```\n\n## Quick Start\n\n```typescript\nimport { Connection, Keypair, PublicKey } from \"@solana/web3.js\";\nimport { BastionClient, AGENT_CAPABILITIES, DECISION } from \"@bastion-agentique/sdk\";\n\nconst connection = new Connection(\"https://api.devnet.solana.com\");\nconst client = new BastionClient({ connection });\nconst wallet = Keypair.generate();\n\n// Register an agent on-chain\nconst registerTx = await client.registerAgent(wallet, \"MyAgent\", AGENT_CAPABILITIES.TRANSFER);\nawait connection.sendTransaction(registerTx, [wallet]);\n\n// Stake SOL for higher transaction limits\nconst stakeTx = await client.stakeLamports(wallet, 5_000_000_000);\nawait connection.sendTransaction(stakeTx, [wallet]);\n\n// Set security policy\nconst jupiter = new PublicKey(\"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4\");\nconst policyTx = await client.setPolicy(wallet, [jupiter], 1, 10);\nawait connection.sendTransaction(policyTx, [wallet]);\n\n// Log an audit decision\nconst logTx = await client.logAudit(wallet, DECISION.ALLOWED, new Array(32).fill(0), \"Transaction passed all checks\");\nawait connection.sendTransaction(logTx, [wallet]);\n\n// Emergency pause\nconst pauseTx = await client.emergencyPause(wallet);\nawait connection.sendTransaction(pauseTx, [wallet]);\n```\n\n## API Reference\n\n### Agent Operations\n\n| Method | Description |\n|--------|-------------|\n| `registerAgent(signer, name, capabilities)` | Register agent on-chain |\n| `fetchAgent(authority)` | Get agent by authority |\n| `fetchAllAgents()` | Get all agents (getProgramAccounts) |\n| `getAgentAddress(authority)` | Derive agent PDA |\n| `getAgentDID(authority)` | Get W3C DID (`did:bastion:solana:{pda}`) |\n| `getAuditEntryAddress(index)` | Derive audit entry PDA |\n\n### Staking\n\n| Method | Description |\n|--------|-------------|\n| `stakeLamports(signer, amount)` | Stake SOL for higher limits |\n| `requestUnstake(signer)` | Start 7-day unstake cooldown |\n| `claimUnstake(signer)` | Claim SOL after cooldown |\n| `fetchAgentStake(authority)` | Get agent stake status |\n\n### Policy\n\n| Method | Description |\n|--------|-------------|\n| `setPolicy(signer, programs, maxSol, rateLimit)` | Set on-chain policy |\n| `fetchPolicy()` | Get current policy |\n| `getPolicyAddress()` | Derive policy PDA |\n\n### Audit\n\n| Method | Description |\n|--------|-------------|\n| `logAudit(signer, decision, simResult, reason, programId?)` | Log audit on-chain |\n| `fetchAuditState()` | Get audit stats (total, allowed, blocked) |\n| `getAuditStateAddress()` | Derive audit state PDA |\n\n### Circuit Breaker\n\n| Method | Description |\n|--------|-------------|\n| `emergencyPause(signer)` | Pause protocol |\n| `emergencyResume(signer)` | Resume protocol |\n\n### Events\n\n| Method | Description |\n|--------|-------------|\n| `addEventListener(name, callback)` | Subscribe to on-chain events |\n| `removeEventListener(id)` | Remove subscription |\n\n### Constants\n\n| Constant | Value | Description |\n|----------|-------|-------------|\n| `AGENT_CAPABILITIES.TRANSFER` | `1 << 0` | Token transfers |\n| `AGENT_CAPABILITIES.SWAP` | `1 << 1` | DEX swaps |\n| `AGENT_CAPABILITIES.NFT_MINT` | `1 << 2` | NFT minting |\n| `AGENT_CAPABILITIES.STAKE` | `1 << 4` | Staking |\n| `AGENT_CAPABILITIES.DELEGATE` | `1 << 5` | Spawn sub-agents |\n| `DECISION.ALLOWED` | `0` | Transaction allowed |\n| `DECISION.BLOCKED` | `1` | Transaction blocked |\n| `DECISION.PENDING` | `2` | Awaiting HITL override |\n\n## Program ID\n\n```\nA29V5MUVs73y7XBHHxPpPcAW7h4gGHupbDdwYSwA2n9D\n```\n\nDeployed on Solana devnet. Program source at [github.com/bastion-agentique/bastion](https://github.com/bastion-agentique/bastion).\n\n## Delegation\n\nParent agents can spawn sub-agents with delegated authority:\n\n```typescript\n// Delegate to child agent\nconst delegateTx = await client.delegateAgent(\n  parentWallet,\n  childWallet,\n  \"SubAgent-ETH\",\n  AGENT_CAPABILITIES.TRANSFER,       // restricted capabilities\n  Math.floor(Date.now() / 1000) + 86400  // 24h expiry\n);\n\n// Revoke delegation\nconst revokeTx = await client.revokeDelegation(parentWallet, childAuthority);\n\n// Fetch delegation tree\nconst tree = await client.fetchAgentTree(wallet.publicKey);\n```\n\n## Staking\n\nStake SOL to unlock higher transaction limits via StakeWeighted policy:\n\n```typescript\n// Stake 5 SOL\nconst tx = await client.stakeLamports(wallet, 5_000_000_000);\n\n// 48h minimum before unstake, 7-day cooldown\nconst unstakeTx = await client.requestUnstake(wallet);\n\n// After 7 days, claim your SOL\nconst claimTx = await client.claimUnstake(wallet);\n\n// Effective limit = base * (1 + stake/min_stake * multiplier) * decay^depth\n// Capped at 10x, floored at 0.1x\n```\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}