Go4Me Skill
Send XCH to Twitter users by resolving their Go4Me addresses.
Dependencies
- sage-wallet — Required for XCH transactions
Commands
| Command | Description |
|---|---|
/go4me lookup <user> |
Get user's XCH address and profile |
/go4me send <user> <amount> |
Send XCH to user (amount in XCH or mojos) |
/go4me tip <user> |
Send 1 mojo tip |
Natural Language
"Send 1 XCH to @hoffmang"
"Tip @sage_wallet"
"What's @bramcohen's XCH address?"
"Look up DracattusDev on Go4Me"
Lookup Script
source scripts/go4me-lookup.sh
go4me_lookup "DracattusDev" # Returns JSON or exits 1
Workflow
Lookup
Strip
@from username if presentRun
go4me_lookup "<username>"Parse JSON response for
xchAddress,fullName,usernameIf exit code 1: user not found on Go4Me
Send
Lookup user (as above)
If not found, report error
Display confirmation:
Send <amount> to @<username> (<fullName>)? Address: <xchAddress> [Yes] [No]On confirm, call sage-wallet
send_xch:bash curl -s --cert $CERT --key $KEY -X POST https://127.0.0.1:9257/send_xch \ -H "Content-Type: application/json" \ -d '{"address":"<xchAddress>","amount":"<mojos>","fee":"0","memos":[],"auto_submit":true}'Report transaction result
Tip
Same as send with amount = 1 mojo.
Amount Conversion
| Input | Mojos |
|---|---|
1 (no unit) |
1 mojo |
1 mojo |
1 |
0.001 XCH |
1000000000 |
1 XCH |
1000000000000 |
Parse amount: if contains "XCH", multiply by 10^12. Default unit is mojos for small numbers, XCH for decimals.
Error Handling
| Condition | Response |
|---|---|
| User not on Go4Me | "User @{username} not found on Go4Me" |
| Invalid address | "Invalid XCH address returned from Go4Me" |
| Insufficient balance | "Insufficient balance for this transaction" |
| Network error | "Failed to connect to Go4Me" |
Data Available
| Field | Example |
|---|---|
username |
DracattusDev |
fullName |
🌱Drac 🍊 |
xchAddress |
xch1rvgc3naytvzhv4lxhzphrdr2fzj2ka340tdj8fflt4872t2wqveq9lwz7t |
description |
Bio text |
avatarUrl |
Profile image URL |
totalBadgeScore |
220 |