{"_id":"@amoeba_/bindings","name":"@amoeba_/bindings","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@amoeba_/bindings","version":"0.1.0","description":"Canonical Amoeba ABI bindings — public inputs, proof package types, contract metadata","license":"MIT","type":"module","repository":{"type":"git","url":"git+https://github.com/wurli-sh/amoeba.git","directory":"bindings"},"publishConfig":{"access":"public"},"exports":{"./publicInputs":{"types":"./dist/publicInputs.d.ts","default":"./dist/publicInputs.js"},"./proofPackage":{"types":"./dist/proofPackage.d.ts","default":"./dist/proofPackage.js"},"./contracts":{"types":"./dist/contracts.d.ts","default":"./dist/contracts.js"}},"dependencies":{"@amoeba_/js":"0.1.0"},"devDependencies":{"@types/node":"^22.10.0","typescript":"^5.7.0"},"scripts":{"build":"tsc"},"_id":"@amoeba_/bindings@0.1.0","bugs":{"url":"https://github.com/wurli-sh/amoeba/issues"},"homepage":"https://github.com/wurli-sh/amoeba#readme","_integrity":"sha512-61SaA+QQ/p1vzN8AsrNzwpwwBiXD5HWhkQJ2mNU6a146ACGYYNxn1n7ha2X4WHK7dnJ3l0WQCzrYyRYxs65v4A==","_resolved":"/tmp/d86c74e9e2ede1e93d8517bd5715522a/amoeba_-bindings-0.1.0.tgz","_from":"file:amoeba_-bindings-0.1.0.tgz","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-61SaA+QQ/p1vzN8AsrNzwpwwBiXD5HWhkQJ2mNU6a146ACGYYNxn1n7ha2X4WHK7dnJ3l0WQCzrYyRYxs65v4A==","shasum":"3f237a6b08342edcf34fb232576a70cb020b6e0c","tarball":"https://registry.npmjs.org/@amoeba_/bindings/-/bindings-0.1.0.tgz","fileCount":23,"unpackedSize":59148,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCfE12334K6rju6RdxE/ZXMhVYUn6nrpRLh5By4Mmr8wQIhAJ9gYSbhoAFGd3oIARMX0CDZiLEWs2sUijkyKl6+5Edu"}]},"_npmUser":{"name":"patlu-sh","email":"elaaprasad@gmail.com"},"directories":{},"maintainers":[{"name":"patlu-sh","email":"elaaprasad@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bindings_0.1.0_1781778270462_0.42247899731374483"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-18T10:24:30.280Z","0.1.0":"2026-06-18T10:24:30.596Z","modified":"2026-06-18T10:24:30.800Z"},"maintainers":[{"name":"patlu-sh","email":"elaaprasad@gmail.com"}],"description":"Canonical Amoeba ABI bindings — public inputs, proof package types, contract metadata","homepage":"https://github.com/wurli-sh/amoeba#readme","repository":{"type":"git","url":"git+https://github.com/wurli-sh/amoeba.git","directory":"bindings"},"bugs":{"url":"https://github.com/wurli-sh/amoeba/issues"},"license":"MIT","readme":"# Amoeba Bindings\n\nCanonical ABI and encoding rules for the compliance corridor Groth16 circuit.\n\n## Public inputs (17 fields)\n\nField order is defined in [`public-inputs.json`](public-inputs.json) and generated into:\n\n- `generated/publicInputs.ts` (TypeScript)\n- `generated/public_inputs.rs` (Rust)\n\nRun `pnpm gen:bindings` after editing the JSON sources.\n\n## Encoding rules\n\n### Address limbs\n\nStellar `Address` payloads are 32 bytes:\n\n- `hi = bytes[0..16]` as big-endian field element\n- `lo = bytes[16..32]` as big-endian field element\n\n### Timestamp\n\n`timestamp = epoch × EPOCH_LEN_SECS` (86400)\n\n### Field decimal normalization\n\nBN254 field elements may appear as negative decimal strings in Circom fixtures and positive decimals in snarkjs output. Compare cross-layer using `mod BN254_R`, not raw string equality.\n\n### Groth16 proof (Soroban)\n\nG1: 32-byte big-endian `x || y`. G2: `x_c1 || x_c0 || y_c1 || y_c0` per snarkjs `pi_b` rows. Verifier negates `pi_a` internally.\n\n### Domain-separated hashes\n\nSee `@amoeba_/js` (`computeNullifier`, `computeCorridorConfigHash`).\n\n## Fixtures\n\n| File | Purpose |\n|------|---------|\n| `fixtures/demo-transfer.json` | Demo identity bytes and transfer params |\n| `fixtures/demo-users.json` | Mock credentials and corridors |\n| `fixtures/public-inputs.valid.json` | Golden public inputs (snarkjs-normalized) |\n| `fixtures/crypto.json` | Generated crypto test vectors (`pnpm gen:crypto-fixtures`) |\n| `fixtures/addresses.json` | G-address and C-contract limb encoding samples |\n\n## Trust boundary (issuer service)\n\nThe issuer service maintains demo Merkle trees and publishes roots. Settlement still verifies proofs, roots, corridor config, and bindings on-chain.\n","readmeFilename":"README.md","_rev":"1-c005b1eeb6d444a95b0dd50027dc7034"}