ndStill, step by step
Bank rail → accounts → agents. Spending runs down the chain; oversight runs back up.
Set up your org
Five steps, by you, one time. Steps 2 and 3 are not the same: linking the rail reaches your bank; adding an account gives agents something to spend from.
1Complete KYC
Confirm who owns the org. Agents act on your behalf, so they skip KYC.
2Link your bank rail
Pick the US or India rail. This lets ndStill talk to your bank; it moves no money on its own.
3Add an account
Open a new account (US), or register one you already hold by number and IFSC (India). Agents spend from these.
4Create an agent
Give it a per-transfer limit, an approval threshold, and the accounts it may use. It cannot go past them.
5Create an API key
Issue a key scoped to one agent, then give it to that agent for MCP or direct API calls.
Then point the agent’s MCP client (Cursor, Claude Desktop) at ndStill with its key:
MCP config{ "mcpServers": { "ndstill": { "command": "python3", "args": ["/path/to/ndstill/mcp/server.py"], "env": { "NDSTILL_GATEWAY_URL": "<gateway url>", "NDSTILL_API_KEY": "<agent key>", "NDSTILL_ORG_ID": "<your org id>" } } } }
How the pieces fit
You own the accounts. Agents are capped delegates. A person approves the risky ones. ndStill never holds funds.
- Your bankthe rail link
- Link one rail per org: Increase in the US, or India (no banking partner live yet). It grants access, not money. ndStill never holds your funds.
- Org accountsholds the balance
- On that rail you open or register one or more real accounts. Balances sit here, live from the rail, and spending draws from them.
- Agentsspend within caps
- An agent has no account of its own. It may spend from the accounts you allow, and never past the caps you give it.
Day to day
The agent
- 1Requests a transferIt sends
POST /v1/transferswith its own key. It may pick a source account; if not, ndStill uses its default. - 2Guardrails decideInside the caps → sent on your rail from that account. Over a limit, unusual, or low confidence → held for approval.
You
- Approve held transfersWork through transfers waiting on a person.
- Watch accounts and auditLive account balances, agent spend, and a tamper-proof audit log.
- Kill switchFreeze a single agent, or every agent, in one step.
The request an agent sends
POST /v1/transfers
X-API-Key: <agent key>
{
"agent_id": "procurement-bot",
"recipient_account_id": "acct_x",
"amount_in_cents": 4000,
"llm_confidence_score": 0.86,
"source_account_id": "<optional org account>"
}
→ SUCCESS // sent on the rail
→ PENDING_APPROVAL // held for a person- Let an agent use every org account, or limit it to the ones you pick.
- The gateway enforces caps, so an agent can’t get around them.
- Sudden bursts or unusually large amounts pause for your approval.
- Virtual cards are US only; India uses NEFT/RTGS/IMPS transfers.
Every field, the MCP tools and test mode are in the reference.
Let your agents spend from your own accounts.