Clawback assets
Authorized by: Asset Clawback Address
Revoking an asset for an account removes a specific number of the asset from the revoke target account. Revoking an asset from an account requires specifying an asset sender (the revoke target account) and an asset receiver (the account to transfer the funds back to). The code below illustrates the clawback transaction.
sp = algod_client.suggested_params()# Create clawback transaction to freeze the asset in acct2 balanceclawback_txn = transaction.AssetTransferTxn( sender=acct1.address, sp=sp, receiver=acct1.address, amt=1, index=created_asset, revocation_target=acct2.address,)signed_clawback_txn = clawback_txn.sign(acct1.private_key)txid = algod_client.send_transaction(signed_clawback_txn)print(f"Sent clawback transaction with txid: {txid}")
results = transaction.wait_for_confirmation(algod_client, txid, 4)print(f"Result confirmed in round: {results['confirmed-round']}")
const clawbackTxn = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject( { from: manager.addr, to: creator.addr, // revocationTarget is the account that is being clawed back from revocationTarget: receiver.addr, suggestedParams, assetIndex, amount: 1, });
const signedClawbackTxn = clawbackTxn.signTxn(manager.privateKey);await algodClient.sendRawTransaction(signedClawbackTxn).do();await algosdk.waitForConfirmation( algodClient, clawbackTxn.txID().toString(), 3);
goal asset send -a <amount-to-revoke> --asset <asset-name> -f <address-of-revoke-target> -t <address-to-send-assets-to> --clawback <clawback-address> --creator <creator-address> -d data
See also