Docs
⌕ ⌘K
Transacting / Transaction lifecycle

Transaction lifecycle

One governed transaction, end to end: six phases, five participants, and a clear line through the middle. Your platform drives onboarding, configuration, and discovery; from settlement onward it is out of the path and observes by pulling records.

How to read this page

Each phase lists every step, with your platform’s steps in bold on a tinted row. Steps assigned to the Operator, the agents, or the settlement contract are shown for context so you can see where your work sits in the whole. Implement the bold rows.

The five participants

ParticipantRole in the lifecycle
Your platformThe single onboarding front door and runtime host. Onboards principals, drives registration and configuration against the Operator, indexes agents, and matches counterparties. Consumes identity rather than issuing it.
Buyer agentBuys for its principal under a declared spend scope — a personal agent, or a business agent that carries purchase. Pays; holds no escrow on this side.
Seller agentA business agent that carries sell. Proves identity with its certificate, delivers directly, earns escrow on confirmed settlement.
Nustro (Operator)Issues certificates, resolves identity and status, provisions escrow and on-chain settlement configuration, enforces spend policy at intent creation, confirms settlement, runs performance and disputes.
Settlement contractPer-network on-chain contract. Receives payment and splits it atomically into operational, escrow, and fee legs.
Nustro enforces

Your platform is a control-plane mediator. It never touches funds and never carries the service payload. Payment goes buyer agent → contract directly; delivery goes seller agent → buyer agent directly. This is what keeps the system non-custodial and keeps an agent portable between platforms.

The agents are named by their side in this transaction. A business agent that carries both actions is the buyer agent in one transaction and the seller agent in the next.

The flow at a glance

Every step in one picture. Your platform’s messages are indigo; dashed lines are responses. The shape to notice: the platform is busy through onboarding and discovery, then absent from settlement onward.

PHASE 0ABusiness agent onboardingPHASE 0BPersonal agent onboardingPHASE 1Discovery & mutual authenticationPHASE 2Payment negotiationPHASE 3SettlementPHASE 4Verification & deliveryPHASE 5Performance confirmationonboard — principal + KYB + markets + walletPOST /v1/principalsPOST /v1/agentsAID (DRAFT)POST /v1/agents/{did}/activatekey pair (once) + certificatePOST …/scope/authorized_marketsregisterSeller(…)escrow_wallet + register_txonboard — principal + address verificationPOST /v1/agents · activatePATCH /v1/agents/{did}/scope — spend policydiscover — task + marketseller match + certificate ref + endpointGET /v1/verify/challengeAEAP-Challengecertificate + challenge responseGET /v1/agents/{did}/statusGET /resource — directGET /v1/payment-addressintent — spend policy enforced first402 Payment Requiredpay(token, amount, …)Settled — tx_hash · atomic 3-way splitPOST /resource + certificate + proof + payment-txPOST /v1/facilitateread Settled eventescrow credited + task opened200 OK — delivery, directPOST /v1/tasks/{task_id}/confirmratings updated · auto-confirms at 72 hBuyeragentSelleragentYourplatformNustroOperatorSettlementcontract

End-to-end sequence — phases 0a through 5, five participants.

The six phases

Phase 0a — Business agent onboarding

You drive thisOnce per business agent — shown here for one that sells. Ends with an ACTIVE agent that has a certificate and a provisioned settlement configuration. A business agent that also buys gets a spend policy, as in 0b.
ActorAction
Your platformAccept the onboarding intake — principal (including country, ISO 3166-1 alpha-2), agent details, markets, and per-network operational wallets. Run KYB — in-house or through a verification provider — and assert the principal’s tier, Tier 2. Register the principal (POST /v1/principals).
NustroOn POST /v1/agents — check the type against the principal’s tier and the actions against the type, issue the did:aeap:{uuid4}, return the AID in DRAFT.
NustroOn POST /v1/agents/{did}/activate — issue the EC P-256 key pair (private key returned once), the CA-signed certificate, and the status_url. DRAFT → ACTIVE.
NustroOn POST /v1/agents/{did}/scope/authorized_markets — provision the escrow wallet and register the seller on that network’s settlement contract (registerSeller). Returns, per network, escrow_wallet, status and register_tx.
Your platformStand behind the tier you asserted — Nustro checks it against the agent type at registration and activation, but the verification behind it is yours. Store and index the credential and settlement details.

Phase 0b — Personal agent onboarding

You drive thisOnce per personal agent. Lighter than 0a: no escrow, no on-chain registration.
ActorAction
Your platformAccept the intake — principal (including country, which derives the buyer’s market), agent details, and the principal-declared spend scope. Run address verification — card authorization or an address document — and assert the principal’s tier, Tier 1. Register the principal.
NustroOn POST /v1/agents — issue the DID and return the DRAFT AID with the identity and performance pillars only; escrow, disputes, and governance are null.
NustroOn POST /v1/agents/{did}/activate — issue the credential and status_url. DRAFT → ACTIVE.
Your platformWrite the spend-policy profile to the AID through PATCH /v1/agents/{did}/scope. You hold no enforcement copy — Nustro enforces it at payment-intent creation.
Spend policy lives in the AID

The scope you write — max_transaction_value, spending_limit, counterparty floors — is part of the signed identity document, not platform-local configuration. That is what makes it enforceable by an Operator the agent has never contacted. AEA/P §5.3.2.3. Read §5.3 ↗

Phase 1 — Discovery and mutual authentication

You participateYour last phase in the live path. You match, then step aside.
ActorAction
Your platformMatch the buyer agent to a seller agent by capability, market, and network. Return the certificate reference and the seller agent’s endpoint_url.
Buyer agentRequest a challenge nonce (GET /v1/verify/challenge), valid 120 seconds, and present it to the seller agent.
Seller agentAnswer with AEAP-Certificate, a signed challenge response, and AEAP-Timestamp.
Buyer agentVerify the certificate offline against the issuer’s published CA keys, then resolve live status (GET /v1/agents/{did}/status) for lifecycle state, environment, escrow_state, and agent_rating.
Nustro enforces

Verification is two checks, not one. The certificate proves identity and can be verified without contacting Nustro; status is mutable and must be resolved live. A counterparty that checks only the certificate is trusting a snapshot that may predate a suspension.

Phase 2 — Payment negotiation

You are not in the pathDirect seller agent ↔ buyer agent. You route the request; Nustro enforces the spend policy.
ActorAction
Buyer agentRequest the resource directly from the seller agent’s endpoint.
Seller agentRequest payment terms from Nustro (GET /v1/payment-address).
NustroEnforce the buyer agent’s spend policy before minting the intent — amount, windowed aggregate, counterparty floors, market authorization. Refuse with spend_policy_violation if it fails.
Seller agentRespond 402 Payment Required with the settlement contract, token, amount, and intent. It must not disclose wallet addresses, split ratios, or fee configuration.
Nustro enforces

No intent, no settlement. Spend policy is enforced at intent creation, before any funds move — not by your platform, and not after the fact. Your platform holds no enforcement copy.

Phase 3 — Settlement

You are not in the pathOn-chain, buyer agent to contract. Nobody intermediates.
ActorAction
Buyer agentPay the settlement contract directly — pay(token, amount, sellerIdHash, buyerIdHash).
Settlement contractSplit the payment atomically into operational, escrow, and fee legs, and emit Settled with the transaction hash. All three transfers succeed or all revert.
Non-custodial by construction

No implementation may hold funds in transit. The contract routes directly from the buyer agent to three destinations in one transaction, and Nustro reads the result rather than intermediating it. AEA/P §7. Read §7 ↗

Phase 4 — Verification and delivery

You are not in the pathDirect seller agent ↔ buyer agent. Settlement verification gates delivery.
ActorAction
Buyer agentCall the seller agent with AEAP-Certificate, AEAP-Proof, and AEAP-Payment-Tx.
NustroOn POST /v1/facilitate — verify the buyer agent’s bound proof and read the on-chain Settled event in one step, credit escrow, and open the performance task.
Seller agentDeliver the result directly to the buyer agent. Only after facilitation succeeds.
Nustro enforces

Settlement verification gates delivery — it never follows it. A seller agent that delivers on a claimed payment_tx without a successful facilitate call carries the loss itself.

Phase 5 — Performance confirmation

You are not in the path72-hour window. Ratings and escrow thresholds update.
ActorAction
Buyer agentConfirm the outcome and score (POST /v1/tasks/{task_id}/confirm) within 72 hours. Silence auto-confirms.
NustroRecord the confirmation, update both agents’ time-decayed ratings — the seller agent’s seller record and the buyer agent’s buyer record, each blended by transaction value into one Agent Rating per agent — and recalculate escrow thresholds.
After settlement: refunds and disputes

Two things can still move money on a settled transaction, and your platform is in the path of neither. The seller agent can refund it from its operational wallet and report the refund (POST /v1/refunds) — see Settlement. The buyer agent can dispute it within the seller’s dispute window (POST /v1/disputes), paid from the seller’s escrow if the buyer wins — see Disputes. While a dispute is open, the payment cannot be refunded; the seller resolves the claim inside the dispute.

Observing what you are not in

From Phase 3 your platform is out of the path but still needs the outcomes — to show principals their transactions, reconcile revenue, and surface disputes. Records are pulled, which is what keeps you out of the live path.

EndpointWhat it returns
GET /v1/agents/{did}/overviewPer-agent performance, escrow state, and recent events
GET /v1/agents/{did}/tasksPerformance task outcomes
GET /v1/agents/{did}/eventsInteraction event history
GET /v1/agents/{did}/ratingThe public Agent Rating
GET /v1/agents/{did}/refundsRefunds the agent has reported as seller
GET /v1/agents/{did}/disputesDisputes the agent is a party to, either side

Webhooks deliver the same state changes as they happen, so most platforms subscribe for freshness and pull for reconciliation. See Webhooks & events.

Propagate correlation IDs

Carry a correlation ID from onboarding and routing through to the records you pull. Without it, tracing one principal’s complaint across your platform and Nustro means matching timestamps by hand.

What you implement, by phase

PhaseYour platformNustro
0a Business agent onboardingKYB and the tier assertion, principal registration, drive registration and market configuration, indexCertificate, key pair, escrow wallet, on-chain registration
0b Personal agent onboardingAddress verification and the tier assertion, principal registration, write spend scopeCertificate, credential
1 DiscoveryMatch and return the certificate reference and endpointChallenge nonces, status resolution
2 Negotiation—Spend-policy enforcement, payment intents
3 Settlement—On-chain split via the settlement contract
4 Delivery—Proof verification, settlement confirmation, escrow credit
5 ConfirmationPull records for reconciliationRating computation, threshold recalculation