# Accounts

FastSet allows two types of accounts: user-driven and contract-based.

If you’re familiar with Ethereum accounts, you’ll notice FastSet accounts are similar to the externally-owned and contract accounts from Ethereum. Both user-driven and contract-based accounts can receive, hold, and send native tokens and interact with deployed contracts. Their key differences are also similar to those between Ethereum’s externally-owned accounts and contract accounts, listed as follows:

* User-driven accounts
  * cost nothing to create;
  * can submit any claim block;
  * are controlled by a pair of public and private keys.
* Contract-based accounts
  * incur a creation cost because they are using network storage;
  * can only submit claim blocks according to the prescribed scripts;
  * respond to messages from other accounts.

There can only be one user-driven account, but as many as desired contract accounts associated with it. The user-driven account has as address its public (primary) key *pk*, while the contract accounts have as address other public keys generated from the same private key *sk* of the user-driven account.

From the user-driven account, you can submit any type of claim, but contract-based accounts are specialized and can submit only the type of claims they have been instructed to. ~~What this means is that contract-based accounts have a SETL script associated with them at creation time and can only submit claims generated by that script. We’ll discuss more on this in a later section.~~


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fast.xyz/fast-archived/core-concepts/accounts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
