TbaResource
Access via urblock.tba.
Create and manage ERC-6551 Token Bound Accounts — smart contract wallets owned by NFTs.
Methods
create(params)
Create a new Token Bound Account for an NFT.
const tba = await urblock.tba.create({
token_id: "tok_abc123",
nft_token_id: "1",
network: "polygon_amoy",
idempotency_key: "tba-001",
});
Returns: TbaResponse
list(params?)
List Token Bound Accounts.
const tbas = await urblock.tba.list({ limit: 10 });
Returns: ListResponse<TbaResponse>
retrieve(id)
Get a TBA by ID.
const tba = await urblock.tba.retrieve("tba_abc123");
Returns: TbaResponse
predictAccount(id)
Predict the deterministic address for a TBA.
const result = await urblock.tba.predictAccount("tba_abc123");
Returns: TbaAccountResponse
getToken(id)
Get the NFT that owns this TBA.
const token = await urblock.tba.getToken("tba_abc123");
Returns: TbaTokenResponse
getState(id)
Get the state (nonce) of a TBA.
const state = await urblock.tba.getState("tba_abc123");
Returns: TbaStateResponse
getBalance(id)
Get ETH and token balances for a TBA.
const balance = await urblock.tba.getBalance("tba_abc123");
Returns: TbaBalanceResponse
execute(id, params)
Execute a call from the TBA.
const tx = await urblock.tba.execute("tba_abc123", {
to: "0x...",
value: "0",
data: "0x...",
idempotency_key: "tba-exec-001",
});
Returns: TransactionShortResponse
executeBatch(id, params)
Execute multiple calls from the TBA in a single transaction.
const tx = await urblock.tba.executeBatch("tba_abc123", {
calls: [
{ to: "0xAAA...", value: "0", data: "0x..." },
{ to: "0xBBB...", value: "100", data: "0x..." },
],
idempotency_key: "tba-batch-001",
});
Returns: TransactionShortResponse
isValidSignature(id, hash, signature)
Verify an EIP-1271 signature.
const result = await urblock.tba.isValidSignature(
"tba_abc123",
"0xabc...",
"0xdef...",
);
Returns: TbaIsValidSignatureResponse
isValidSigner(id, signer)
Check if an address is a valid signer for this TBA.
const result = await urblock.tba.isValidSigner("tba_abc123", "0x...");
Returns: TbaIsValidSignerResponse
getAccountImplementation(id)
Get the implementation address of the TBA.
const result = await urblock.tba.getAccountImplementation("tba_abc123");
Returns: TbaRegistryImplementationResponse
getTotalAccounts(id)
Get the total number of TBAs created by the registry.
const result = await urblock.tba.getTotalAccounts("tba_abc123");
Returns: TbaRegistryTotalAccountsResponse
getByNft(tokenId, nftTokenId)
Get a TBA by its parent NFT.
const tba = await urblock.tba.getByNft("tok_abc123", "1");
Returns: TbaResponse