# Sophia types in JS SDK
| Type | Sophia | JS |
|------|--------|----|
| int | ` add_two(one: int, two: int)` | `sum(1 , 2)` |
| address | ` set_owner(owner: address)` | `set_owner("ak_1337...")` |
| bool | `is_it_true(answer : bool)` | `is_it_true(true)` |
| bits | `give_me_bits(input : bits)` | `give_me_bits([1,0,0,1,1,0])` |
| bytes | `get_bytes(test : bytes(3))` | `get_bytes(["0x01","0x1f", "0x10"])` |
| string | `hello_world(say_hello : string)` | `hello_world("Hello!")` |
| list | `have_a_few(candy : list(string))` | `have_a_few(["Skittles", "M&Ms", "JellyBelly"])` |
| functions | (Higher order) functions are not allowed in`entrypoint` params | |
| tuple | `a_few_things(things : (string * int * map(address, bool)))` | `a_few_things(["hola", 3, {"ak_1337...": true}])` |
| record | `record user = {`<br /> `name: string,` <br /> `surname: string` <br /> `}` <br /> <br /> `entrypoint golden_record(input: user) : string =` <br /> `input.surname` | `golden_record({"name": "Alfred", "surname": "Mustermann"})` |
| map | `balances(values : map(address, int))` | `balances({"ak_1337...": 123, "ak_FCKGW...": 321, "ak_Rm5U...": 999})` |
| option() | `entrypoint number_defined(value : option(int)) : bool = ` <br /> `switch(value)` <br /> `Some(int) => true` <br /> `None => false` | `number_defined(1337)` |
| hash | `a_gram(of : hash)` | `//32 bytes, eg. a1 == 1 byte` <br /> `a_gram(af01...490f)` |
| signature | | |
| Chain.ttl | `entrypoint time_remaining(value : Chain.ttl) ` | ? |
| oracle('a, 'b) | ? | ? |
| oracle_query('a, 'b) | ? | ? |
| contract | | |