The smart account SDK for Stackup's onchain financial platform.
npm install makahikiThe smart account SDK for Stackup's onchain financial platform.
This library enables interactions with Simple Team Account using viem's account abstraction interface.
> Note: this SDK uses viem@2.31.4, and webauthn-p256@0.0.10. It is recommended to pin these versions to avoid typing issues.
``shell`
pnpm install makahiki
`typescript
import { http, pad } from "viem";
import { sepolia } from "viem/chains";
import { toSmartAccountV2 } from "makahiki";
const account = await toSmartAccountV2({
rootPublicKey,
signerPublicKey,
webAuthnAccount,
publicClientConfig: {
chain: sepolia,
transport: http("Your node rpc here..."),
},
// Optional fields
salt: pad("0x00", { size: 32 }),
nonceKey: 0n,
// Verifier fields
verifier: "0xffff....dddd"
verifyUserOp: async (userOp) => {
return "0xdeadbeef"
}
});
`
| Option | Description |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| rootPublicKey | A hex public key of the root admin that deployed the smart account. Equivalent to viem's webAuthnAccount.publicKey. This determines the counterfactual address. |webAuthnAccount.publicKey
| signerPublicKey | A hex public key of the current signer for outgoing transactions. Equivalent to viem's . |chain
| webAuthnAccount | The webAuthn interface for the current user. See here. |
| publicClientConfig | The same config object to initialize a viem Public Client. Note that is required. See here. |Member
| salt | A 32 byte hex string that is used to derive the smart account address. Defaults to the zero hash. (Optional) |
| nonceKey | A bigint value to set the key for the 2D nonce. Defaults to 0. (Optional) |
| verifier | The address of the off-chain permissions entity that co-signs member level transactions. (optional) |
| verifyUserOp | A hook called during the final signature phase to retrieve and return the verifier signature. (required only for transactions) |
Returns an instance of a viem SmartAccount.
Steps for setting up a local dev environment for contributing to makahiki.js.
- Node >=18.0.0
Install dependencies:
`bash`
pnpm install
Run tests:
`bash``
pnpm test
Distributed under the MIT License. See LICENSE for more information.