Wallets, crypto payments, deployment flows, and security — answered for new users.
Agent Service Index (ASI) works differently from most APIs in two primary ways: 1. Payments on ASI are in cryptocurrency. 2. Authentication and verification work through cryptographic signing.
Not deeply, but you should understand the basic flow.
Some ASI services are free. Some services may require small payments in USDC on Base, an Ethereum Layer 2 network. When a paid service is needed, the agent should show you the exact amount before anything is paid.
For most users, the practical flow is:
ASI itself does not need your credit card details.
ASI is designed around agent-native services. Cryptographic identity gives the agent a consistent way to authenticate and own resources without needing to manage a separate API key for each service and resource. The secure process for authentication is:
Agents should explain:
For paid flows, the agent should get user approval and budget limits before starting.
A common deployment flow looks like this:
Not necessarily.
Some services may charge a one-time wallet registration fee. For example, a CDN service might charge once to register a wallet, then allow that registered wallet to create tunnels or routes for free within service limits.
That means the charge is for the wallet's registration with that service, not necessarily for each individual site.
Always check the current service quote and pricing before paying. ASI services should return an explicit payment request before funds are spent.
A service registration is usually tied to the Ethereum wallet address, not a project directory.
All design pattern skills instruct agents to store their credentials at the following location, shared by any project on your machine:
~/.asi/config.json
Global ASI credentials stored at ~/.asi/config.json include:
A service may allow free usage after registration but still enforce limits. These are to prevent abuse.
Examples might include:
The agent should read the service's live documentation and explain relevant limits before relying on the service.
If a public URL depends on a local server and a tunnel process, both processes must keep running.
For example, a local static site served through a Cloudflare Tunnel needs:
If either process stops, the public URL may stop serving until the agent or user restarts it.
The agent should use the same Ethereum identity that created the resource.
Depending on the service, cleanup might involve:
Resource ownership is usually tied to the Ethereum address, so losing the wallet may prevent cleanup.
The configuration of your local environment is entirely up to you; ASI requires no local configuration. Below are some best-practices.
uv to manage the environment?Yes, for most local ASI helper workflows, a project-local uv environment is the right choice.
Packages like eth-account, web3, and httpx are usually needed for ASI signing, payment, and service-call workflows. Keeping them local avoids polluting your system Python and makes the setup reproducible.
Recommended:
uv venv
uv pip install eth-account web3 httpx
Then run helper scripts with:
uv run python ...
or directly with:
.venv/bin/python ...
A global install is only worth it if you expect to use these packages across many unrelated projects from the same Python environment.
Not necessarily.
An agent may create local helper scripts to call ASI services, sign requests, check balances, or run deployment commands. These scripts are usually project-specific convenience code.
The Ethereum identity itself usually lives outside the repo in ~/.asi/config.json.
~/.asi/config.json used for?~/.asi/config.json stores the local Ethereum identity used to authenticate to ASI-compatible services.
It is used for three main things:
X-Public-Key, X-Signature, and X-Timestamp. The agent signs requests locally using the private key in ~/.asi/config.json.The file looks structurally like this:
{
"wallets": {
"default": {
"address": "0x...",
"private_key": "..."
}
}
}
Important details:
chmod 600 ~/.asi/config.json.The wallet is both:
This avoids API keys, manual account setup, and complicated agent-funding workflows. The wallet address can own resources across services, and the private key signs requests locally.
No. The wallet address is public by design, like an account number.
Keep these secure:
~/.asi/config.jsonprivate_key inside itPrivacy caveat: blockchain transactions are public. Someone who knows your wallet address may be able to see visible on-chain activity for that wallet.
Keep only a small working balance.
The ASI wallet should be treated as a low-value operational wallet for agents. It should not be your personal wallet, savings wallet, or primary crypto wallet.
Recommended practice:
~/.asi/config.json?You lose access to that Ethereum wallet, the cryptocurrency contained in that wallet, and any services that were bought using that wallet.
That may mean you lose the ability to manage resources owned by that wallet, such as tunnels, DNS records, leases, or registrations.
For low-value test wallets, this may not matter much. For production use, back up the wallet file securely or use a more deliberate key-management process.
Your Ethereum wallet is secure if you follow best practices. ASI never sees or touches your private key.
No.
The Ethereum wllet is self-custodied. ASI services verify signatures from your key, but they do not hold the key and cannot recover it for you.
~/.asi/config.json to my repo?No.
Never commit private keys. Add patterns like these to .gitignore if your project stores any local copies or generated secrets:
.asi/
*.key
*.pem
.env
The default ~/.asi/config.json location is outside the repo, which helps reduce accidental commits.
USDC is a dollar-denominated stablecoin. In ASI payment flows, services commonly request USDC on Base.
Important points:
Base is an Ethereum Layer 2 network. It is commonly used because transactions are cheaper and faster than Ethereum mainnet.
When funding or paying an ASI invoice, make sure the checkout or wallet says the network is Base.
You agent controls an Ethereum cryptocurrency wallet. The wallet only includes the money you deposited into it; the agent can never spend beyond the exact amount you deposited into its wallet. Using cryptocurrency ensures that your agent can act independently without having any access to your finances.
A 402 response means "Payment Required."
In ASI flows, a paid service may return a structured quote instead of completing the request immediately. The quote usually includes:
After the payment is made, the agent retries the original request with the quote ID.
No.
If funding is needed, your credit card is used through a third-party onramp or checkout page, typically Coinbase-hosted. ASI does not receive your card number.
The usual flow is:
This is not a subscription unless a specific checkout provider separately says so. For ASI service invoices, the normal pattern is one-time payment for a quoted amount.
Only if the wallet already has funds and the agent has permission to spend them.
A good agent should ask for spending permission up front, including a maximum budget. For example:
"Use ASI services if needed, but do not spend more than $3."
Check:
If anything is unclear, ask the agent to explain before funding or paying.
Crypto transactions are generally irreversible.
If a service asks for USDC on Base, make sure the checkout or wallet uses:
Sending to the wrong address or wrong network may result in lost funds.
Generally, agents will transact in small micropayments, making missteps cheap to correct.
It is secure if you treat ~/.asi/config.json like any other private key file.
What matters:
chmod 600 ~/.asi/config.json.The main security model is: your local machine holds the key, and services verify signed requests.
ASI does not vet the services available through the search endpoint. Evaluate the security of Agent Services on a case-by-case basis.
ASI services should not be able to steal your private key if it never leaves your machine. However, services can control the resources they create for you. For example, a CDN service may create a tunnel or subdomain, and a cloud service may create a compute instance.
The practical risk is low if you:
Never share:
~/.asi/config.json.Usually safe:
Treat the wallet as compromised.
Recommended response: