EYA7KDLLXGSO3QXXHJQZXL6BA4TCAHBL
[
    "autonomous agent",
    {
        "init": "{
// attestor address and name    
        $attestor_address = 'EN3JFYJJXVJHE7Z2AY6P5YDVN322LA6L'; 
        $attestor_name = 'email';
// general variables        
        $return_fee = 1000;        
        $attested_user_id = attestation[[attestors=$attestor_address, address=trigger.address]].user_id;
        if (!$attested_user_id) bounce("Your address is not attested by "||$attestor_name||" attestor "|| $attestor_address);
        $balance_key = "user_id_"||$attested_user_id||"_balance";
    }",
        "messages": {
            "cases": [
                {
                    "if": "{!trigger.data.withdraw}",
                    "messages": [
                        {
                            "app": "state",
                            "state": "{                          
                        var[$balance_key] =  var[$balance_key] + trigger.output[[asset=base]];                     
                        response['message'] = "Total balance for your "||$attestor_name||" attested addresses will be " || var[$balance_key] || " bytes.";
                    }"
                        }
                    ]
                },
                {
                    "init": "{
                        if (!var[$balance_key]) bounce("Your address is attested but the balance for your account is not found");
                        if (typeof(trigger.data.withdraw)!='number') bounce("Please enter number of bytes in the 'withdraw' data field. Your balance is " || var[$balance_key] || " bytes.");
                        if (var[$balance_key] < trigger.data.withdraw) bounce('Not enough funds. The maximum amount you can withdraw is ' || var[$balance_key] || ' bytes.');
                        if (trigger.output[[asset=base]] < $return_fee) bounce('The sending amount is less than the transaction fee '|| $return_fee ||' bytes. Please increase it.');
                    }",
                    "messages": [
                        {
                            "app": "payment",
                            "payload": {
                                "asset": "base",
                                "outputs": [
                                    {
                                        "address": "{trigger.address}",
                                        "amount": "{trigger.data.withdraw + trigger.output[[asset=base]] - $return_fee}"
                                    }
                                ]
                            }
                        },
                        {
                            "app": "state",
                            "state": "{                            
                        response['message'] =  'Current balance: '||var[$balance_key]|| ' bytes. Withdraw: ' || trigger.data.withdraw || ' bytes. Balance after withdrawal: ' || (var[$balance_key] - trigger.data.withdraw) || ' bytes. Transaction fee: '||$return_fee|| ' bytes.';    
                        var[$balance_key] = var[$balance_key] - trigger.data.withdraw;
                    }"
                        }
                    ]
                }
            ]
        }
    }
]
Show transactions in assets: 
 No transactions found, it may be worth changing the filter 
Unit ID
Date
From
Direction
To
Amount