Account Abstraction
What you get
Piece
Role
Provider config (explicit)
import { createCelinaClient } from "@andrewkimjoseph/celina-sdk";
import { createAAClient } from "@andrewkimjoseph/celina-sdk/aa";
import { privateKeyToAccount } from "viem/accounts";
import { celo } from "viem/chains";
const owner = privateKeyToAccount(process.env.OWNER_PRIVATE_KEY as `0x${string}`);
const aa = await createAAClient({
owner,
gasSponsorship: {
provider: "pimlico",
pimlico: {
// Your Pimlico project key — never a Celina platform secret
apiKey: process.env.PIMLICO_API_KEY!,
},
},
// Optional: tag hand-built or prepare* steps at send time
attributionTags: ["goclaim"],
});
console.log(aa.provider); // "pimlico"
console.log(aa.smartAccountAddress);
console.log(aa.attributionTags); // ["goclaim"]Send prepared transactions
Batch vs sequential
Mode
Behavior
Attribution
Derive address only
MCP / hosted Celina
Migrating an app (e.g. GoClaim)
Last updated
Was this helpful?