Platform account & KYB
Your own account is the first thing you create and the last thing that gates production. Sandbox opens the moment you verify your email; accreditation — which requires business verification — is what unlocks live certificates, escrow, and disputes.
This page is about verifying your platform, so Nustro knows who it is contracting with. Verifying your principals is a separate obligation you carry toward your own customers — see Registering principals. Neither substitutes for the other.
Creating the account
Signup asks for three things: email, password, company name. Nothing else — the company profile and the documents come later, from inside the dashboard, where you can leave and return without losing progress.
nustro_sandbox_ is shown once, at this moment. Nustro stores a hash and cannot recover it.Sandbox is never gated on business verification. Your engineers have a working integration environment on day one while your legal team assembles documents — the two tracks run in parallel by design.
Readiness states
Your account’s status is the single field that tells you what it can
do. Read it from GET /v1/platform; do not infer it from the presence of a key.
| State | Meaning | Sandbox | Production |
|---|---|---|---|
EMAIL_PENDING | Created, email not yet verified | No | No |
PROFILE_PENDING | Email verified, sandbox key issued, company profile incomplete | Yes | No |
KYB_PENDING | Profile complete, documents not yet submitted | Yes | No |
IN_REVIEW | Documents submitted, under review | Yes | No |
ACCREDITED | Approved — production key available | Yes | Yes |
Company profile
The profile is what the documents are checked against, so it is completed before submission. Some fields you set; others are filled from the verified record and become read-only.
| Field | Source |
|---|---|
| Legal company name | You — must match the certificate of incorporation |
| Platform name | You — the name your principals see; editable at any time |
| Country of incorporation | You — fixed once verified |
| Registration number | From your KYB submission |
| Registered address | From your KYB submission |
| Primary admin name and email | You — the accountable contact for the account |
Changing the admin email sends a confirmation to the new address and takes effect only when it is confirmed. A typo cannot lock you out of your own account.
Submitting documents
Four documents are required. The list is server-owned — the dashboard shows what is outstanding, what is under review, and what needs correcting.
| Document | Establishes |
|---|---|
| Certificate of incorporation | The entity exists and is registered where you say it is |
| Proof of registered address | Where the entity is legally seated |
| Director identification | Who is accountable for the entity |
| Ownership and control structure | Beneficial ownership, for sanctions and AML screening |
| Behaviour | Detail |
|---|---|
| Correcting a rejection | Re-submit the same document type. It supersedes the current one in any state — there is no case to open and nothing to withdraw. |
| Supporting documents | Append rather than replace. Submit as many as the reviewer asks for. |
| Review | Manual. There is no automated decision path, and no way to expedite from the API. |
Register a webhook endpoint for platform.verification_decided before
submitting. It is the one event with no good polling alternative, and it gates
everything downstream — without it, someone on your team is refreshing a
dashboard.
Your management key
One key per environment, sent as Nustro-Api-Key. Prefixes are readable from
GET /v1/platform as api_key_prefixes; the keys themselves are not.
null until then.This key authenticates your platform. It must never be deployed into an agent runtime, embedded in agent code, or given to a principal — agents authenticate per request with their own certificate and proof. A management key presented on a runtime economic action is rejected.
Rotation issues a replacement and revokes the previous key immediately — there is no overlap window. Deploy the new key before you rotate, not after, or every service still holding the old one starts failing.
Closing the account
Closure is refused while there is anything outstanding that closure would strand.
| Blocks closure | Why |
|---|---|
| Active agents | Revoke them first — an active certificate outliving its platform is a counterparty’s problem, not yours to leave behind. |
| Funded escrow | Balances belong to principals and are released to them before the account closes. |
| Open disputes | Cases continue to resolution; closure cannot pre-empt a decision. |
Settled history is retained after closure. It is on-chain and part of counterparties’ performance records, so it does not disappear with the account.
Common errors
| Code | Status | What it means |
|---|---|---|
email_already_in_use | 409 | An account exists for this address. Sign in or reset the password rather than creating a second. |
profile_incomplete | 409 | Document submission attempted before the company profile was completed. |
not_accredited | 409 | A production action attempted before review completed. |
key_not_provisioned | 409 | A production key requested before accreditation. |
close_blocked_escrow | 409 | Closure attempted with funded escrow or open disputes. |