Contacts
All contact operations live under the eiou contact … namespace. Identifiers accept a name, an address, or a pubkey-hash — pubkey-hash is the most stable identifier across restores. From the host, prepend docker exec <container> to every command shown below. Every CLI command also accepts a --json output flag for machine-readable responses; see the API reference for the response envelope.
My info
Display wallet information including locators (HTTP/HTTPS/Tor), public key, fee earnings, and total available credit.
- Add
detailfor per-currency balance breakdowns - Add
--show-authto securely retrieve the auth code via a 5-minute tmpfs file - Auth code is never printed to logs — safe under
docker logs
eiou infoeiou info detaileiou info --show-authOverview
Dashboard summary of total balances, active contacts, pending requests, and the most recent transactions. The default limit is 5; pass an integer to show more.
eiou overvieweiou overview 10Add contact
Send an outbound contact request. The receiver sees it as a pending incoming request until they accept it. Outbound-only — for an existing accepted contact use contact currency add to propose a new currency, or contact update to change settings.
Required (positional):
<address>— the contact's node URL (http://,https://, or.onion)<name>— display name you'll use locally (quote multi-word names)
Optional flags (with defaults):
--fee— fee % you charge to relay this contact's transactions. Default0(free relay).--credit— credit limit you extend, denominated in the chosen currency. Default0, which means the relationship exists but no transactions can route through you yet (raise it later via contact update).--currency— currency code (3–9 uppercase alphanumeric). DefaultVWL.--requested-credit— credit limit you'd like the receiver to extend back to you. Sent as a suggestion only — they decide what to grant when they accept.--message— short note attached to the request (≤ 255 chars).
VWL, --fee 0, --credit 0eiou contact add http://bob:8080 Bobeiou contact add http://bob Bob --fee 0.1 --credit 1000 --currency VWLeiou contact add http://bob Bob --fee 1.0 --credit 100 --currency VWL --requested-credit 500 --message "Hey, it's Dave"Mutual-add shortcut: if both sides run contact add against each other (without either side running accept), the cross-request is auto-finalized to accepted for the matching currency. Each side keeps the fee/credit it published in its own add — they don't have to match. Use add + accept when the receiving side wants to set its own fee/credit based on what the requester proposed.
View pending requests
List incoming and outgoing pending contact requests. Each incoming row prints a paste-ready eiou contact accept/decline hint with the requester's pubkey-hash, so you can copy the line directly.
eiou contact pendingAccept contact
Accept a pending incoming contact request. Identify the request by the requester's pubkey-hash (printed by contact pending), or by their address or name. Repeat the --currency / --fee / --credit triplet to accept several currencies in one call.
Required:
- positional
<pubkey-hash | address | name>identifying the requester - at least one
--currency CCY --fee F --credit Ctriplet (each--currencymust be paired with a matching--feeand--credit)
--currency / --fee / --credit tripleteiou contact accept <pubkey-hash> --currency VWL --fee 0.1 --credit 1000eiou contact accept <pubkey-hash> --currency VWL --fee 0.1 --credit 1000 --currency EUR --fee 0.05 --credit 500Apply (batched accept/decline/defer)
When an incoming request includes several currencies, contact apply lets you act on each one in a single call: accept some, decline some, defer the rest. Declines run before accepts so a decline EUR + accept VWL can't accidentally re-add the just-declined row. Deferred currencies stay pending and can be acted on later.
Decision flags (repeatable):
--accept CCY:fee:credit— accept this currency with the given fee and credit limit--decline CCY— reject this currency (notifies the requester)--defer CCY— leave this currency pending; no notification is sent
eiou contact apply <hash> --accept VWL:0.01:1000 --decline EUR --defer XRPDecline contact
Decline every pending currency on an incoming request in one shot. Each declined currency triggers a contact_currency_declined notification so the requester's outgoing-pending row is dropped on their side; a final contact_declined rejects the contact transaction itself.
eiou contact decline <pubkey-hash>View contact
Show full contact details: addresses, status, per-currency balances, fee/credit settings, and bidirectional available credit (refreshed via the ping/pong cycle, ~5 min). Resolves by name, address, or pubkey-hash.
eiou contact view Bobeiou contact view http://bobeiou contact view <pubkey-hash>List contacts
List all contacts grouped by status. Filter with --status accepted|pending|blocked to see only one bucket.
eiou contact listeiou contact list --status acceptedeiou contact list --status pendingeiou contact list --status blockedSearch contacts
Substring-search your contact list by name. The query matches anywhere in the display name and is case-insensitive.
eiou contact search AliceUpdate contact
Update is flag-based — same shape as contact add, all fields optional. --currency is required only when --fee or --credit is set, since those are stored per-currency. Updates are local-only — the contact is not notified, and multi-field updates are not atomic across the name/per-currency boundary.
--currency needed since the display name is shared across all currencieseiou contact update Bob --name Robert--currency is required because fees are stored per-currencyeiou contact update Bob --fee 1.5 --currency VWLeiou contact update Bob --credit 500 --currency EUReiou contact update Bob --name Robert --fee 2.0 --credit 1500 --currency VWLPing contact
Check online status, response time, and per-currency chain heads. Ping verifies local chain integrity (gap detection, not just chain-head comparison); mismatches trigger an automatic sync, and unrecoverable gaps auto-propose a tx drop. Per-currency available credit values are written back to the local contact_credit table after a successful ping.
eiou contact ping BobBlock / unblock
Block a contact to reject incoming traffic from them — they cannot send transactions to you, and they cannot route P2P transactions through you. Existing balances are unchanged. unblock reverses the block.
eiou contact block Bobeiou contact unblock BobDelete contact
Removes a contact and the eIOUs associated with them from the local database. Settle outstanding balances before deleting — once the rows are gone, you can't read them back from disk.
Delete is not the same as cutting ties. If the other side still has you in their contacts, automatic background pings will resurface the contact (as a restored contact) and replay the transaction history back into your database. To actually stop interacting with someone, use block — that suspends the relationship without deleting state, and pings from the blocked side won't bring it back.
eiou contact delete BobPer-currency operations
Once a contact is accepted on one currency, additional currencies are negotiated through the contact currency namespace — not by re-running contact add. The five subcommands below cover proposing, accepting, declining, inspecting, and locally cleaning up per-currency rows on an existing contact.
contact currency add
Propose a new currency on a contact you're already connected on. The remote receives a P2P request and can accept it (with their own fee/credit terms) or decline it. --fee and --credit are required.
eiou contact currency add Bob EUR --fee 0.05 --credit 500contact currency accept
Accept a single per-currency request that's pending on an existing contact. You set your own --fee and --credit for this currency — they don't have to match the requester's.
eiou contact currency accept Alice EUR --fee 0.05 --credit 500contact currency decline
Decline an incoming per-currency proposal. A notification is sent to the requester so their outgoing-pending row drops on their side immediately — this is the right command when you want the proposer to know the answer is no.
eiou contact currency decline Alice EURcontact currency list
Show every currency configured for a single contact, with each row's status (pending / accepted / declined) and direction (incoming / outgoing). Useful when a contact spans several currencies and you want to see what's active.
eiou contact currency list Bobcontact currency remove
Remove a currency configuration from your local database. Local-only — the remote contact is not notified. Use this to clean up a stale outgoing-pending row on your side, not to reject an incoming proposal (use currency decline for that).
eiou contact currency remove Bob EUR