7.9 KiB
Transaction Sending for hermes Agents
Level: Beginner
Prerequisites: Wallet Basics (Scenario 01), AITBC CLI installed
Estimated Time: 25 minutes
Last Updated: 2026-05-02
Version: 1.0
🧭 Navigation Path:
🏠 Documentation Home → 🎭 Agent Scenarios → You are here
breadcrumb: Home → Scenarios → Transaction Sending
🎯 See Also:
- 📖 Previous Scenario: 01 Wallet Basics
- 📖 Next Scenario: 03 Genesis Deployment
- 🤖 Agent SDK: Agent SDK Documentation
- ⛓️ Blockchain: Blockchain Documentation
📚 Scenario Overview
This scenario demonstrates how hermes agents send transactions on the AITBC blockchain, including single transfers, batch transactions, and transaction monitoring.
Use Case
An hermes agent needs to send transactions to:
- Pay for GPU compute resources
- Transfer AIT tokens between wallets
- Participate in marketplace operations
- Execute smart contract calls
What You'll Learn
- Send single transactions
- Send batch transactions efficiently
- Monitor transaction status
- Estimate transaction fees
- Handle transaction failures
Features Combined
- Wallet Operations (Scenario 01)
- Blockchain Transactions: Single and batch transfers
- Transaction Monitoring: Status tracking and fee estimation
📋 Prerequisites
Knowledge Required
- Completed Scenario 01 (Wallet Basics)
- Understanding of blockchain transactions
- Transaction fee concepts
Tools Required
- AITBC CLI installed
- Wallet with AIT tokens
- Access to AITBC blockchain node
Setup Required
- Wallet created with sufficient balance
- Blockchain node running and accessible
Wallet Authentication
For transaction signing, the CLI requires wallet authentication:
# Interactive prompt (default)
aitbc transaction send --from my-wallet --to <address> --amount 100
# Password file (recommended for scripts)
aitbc transaction send --from my-wallet --to <address> --amount 100 --password-file /path/to/password.txt
# Environment variable
export KEYSTORE_PASSWORD=mypassword
aitbc transaction send --from my-wallet --to <address> --amount 100
Security Best Practices:
- Use password files with restricted permissions (chmod 600)
- Store password files outside the repository
- Avoid hardcoding passwords in scripts
🔧 Step-by-Step Workflow
Step 1: Send a Single Transaction
Transfer AIT tokens from one wallet to another.
aitbc transaction send \
--from my-agent-wallet \
--to ait1recipient123... \
--amount 100 \
--fee 1
You'll be prompted for wallet password to sign the transaction.
Output:
Transaction submitted: 0xabc123...
From: my-agent-wallet
To: ait1recipient123...
Amount: 100 AIT
Fee: 1 AIT
Step 2: Check Transaction Status
Monitor the status of your transaction.
aitbc transaction status 0xabc123...
Output:
Transaction Hash: 0xabc123...
Status: confirmed
Block Height: 12345
Timestamp: 2026-05-02 10:30:00
Step 3: Estimate Transaction Fee
Calculate the fee before sending.
aitbc transaction estimate-fee \
--from my-agent-wallet \
--to ait1recipient123... \
--amount 100
Step 4: Send Batch Transactions
Send multiple transactions efficiently.
aitbc transaction batch \
--from my-agent-wallet \
--transactions transactions.json
transactions.json:
[
{
"to": "ait1recipient1...",
"amount": 50,
"fee": 1
},
{
"to": "ait1recipient2...",
"amount": 75,
"fee": 1
}
]
Step 5: View Pending Transactions
Check transactions waiting in mempool.
aitbc transaction pending
💻 Code Examples Using Agent SDK
Example 1: Send Single Transaction
from aitbc_agent_sdk import Agent, AgentConfig
config = AgentConfig(
name="payment-agent",
blockchain_network="mainnet",
wallet_name="payment-wallet"
)
agent = Agent(config)
agent.start()
# Send transaction
tx_hash = agent.send_transaction(
to="ait1recipient...",
amount=100,
fee=1
)
print(f"Transaction sent: {tx_hash}")
# Wait for confirmation
status = agent.wait_for_confirmation(tx_hash, timeout=60)
print(f"Transaction status: {status}")
Example 2: Batch Transactions with Error Handling
from aitbc_agent_sdk import Agent, AgentConfig
import asyncio
async def send_batch_transactions():
config = AgentConfig(
name="batch-agent",
blockchain_network="mainnet",
wallet_name="batch-wallet"
)
agent = Agent(config)
await agent.start()
# Define transactions
transactions = [
{"to": "ait1recipient1...", "amount": 50, "fee": 1},
{"to": "ait1recipient2...", "amount": 75, "fee": 1},
{"to": "ait1recipient3...", "amount": 100, "fee": 1}
]
# Send batch
results = await agent.send_batch_transactions(transactions)
# Process results
for i, result in enumerate(results):
if result['success']:
print(f"Transaction {i+1}: {result['hash']} - Success")
else:
print(f"Transaction {i+1}: Failed - {result['error']}")
asyncio.run(send_batch_transactions())
Example 3: Transaction Monitoring
from aitbc_agent_sdk import Agent, AgentConfig
import asyncio
async def monitor_transaction(tx_hash):
config = AgentConfig(
name="monitor-agent",
blockchain_network="mainnet"
)
agent = Agent(config)
await agent.start()
# Monitor transaction status
while True:
status = await agent.get_transaction_status(tx_hash)
print(f"Status: {status['status']}, Block: {status.get('block_height', 'pending')}")
if status['status'] == 'confirmed':
print("Transaction confirmed!")
break
elif status['status'] == 'failed':
print("Transaction failed!")
break
await asyncio.sleep(5)
asyncio.run(monitor_transaction("0xabc123..."))
🎯 Expected Outcomes
After completing this scenario, you should be able to:
- Send single and batch transactions
- Monitor transaction status
- Estimate transaction fees
- Handle transaction failures gracefully
- Use transactions in agent workflows
🧪 Validation
Validate this scenario with the shared 3-node harness:
bash scripts/workflow/44_comprehensive_multi_node_scenario.sh
Node coverage:
aitbc1: genesis / primary node checksaitbc: follower / local node checksgitea-runner: automation / CI node checks
Validation guide:
Expected result:
- Scenario-specific commands complete successfully
- Cross-node health checks pass
- Blockchain heights remain in sync
- Any node-specific step is documented in the scenario workflow
🔗 Related Resources
AITBC Documentation
External Resources
Next Scenarios
- 06 Basic Trading - Use transactions for trading
- 21 Compute Provider Agent - Payment workflows
- 27 Cross Chain Trader - Cross-chain transactions
📊 Quality Metrics
- Structure: 10/10 - Clear transaction workflow
- Content: 10/10 - Comprehensive transaction operations
- Code Examples: 10/10 - Working Agent SDK examples
- Status: Active scenario
Last updated: 2026-05-02
Version: 1.0
Status: Active scenario document